IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

mise au format a partir d'excel


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Points : 17
    Points
    17
    Par défaut mise au format a partir d'excel
    bonjour
    je suis debutant en C
    j'ai une fonction qui prends en argument des array genre double monarray[][]
    ces valeurs sont dans une zone dans un fichier excel
    je voudrais savoir si vous savez quelle est la struct ou type que range(xx).value ennvoie pour pouvoir transformer ca tranqillement en double monarray[]

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Et tu interagis comment avec Excel, exactement? Parce que le C ne sait pas qu'Excel existe...

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    je fais appel a une fonction dans une dll a partir d'excel
    je veux faire passer a cette fonction des valeurs qui sont dans un range.value

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Tu veux dire que c'est Excel qui appelle une fonction (en VB, probablement)?
    Dans ce cas, les forums consacrés à Windows me semblent plus appropriés.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    le truc c'est que j'ai envie de creer un type sur c qui prend en charge les "variant" que excel genere quand je fais un truc du genre foo=range("A1:B3").value...
    en gros c'est une question traitre entre excel et C

  6. #6
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Les Variant sont un type VB qui n'existent pas en C, il faut convertir la valeur de ton Range en flottant ou entier.
    Attention, il faut que la taille des données passées en parametre, soient les memes des 2 cotés
    Si par exemple la dll ecrite en C attend un int, il faudra que dans le "Declare" VB, le parametre soit un entier d'une taille equivalente (4 octets).
    Referre toi à la doc de VB pour connaitre les tailles des types VB

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    donc il n'est pas possible dans C d'avoir un type qui saura reconnaitre les valeurs du genre range("xx").value!!
    je pense que si je ne fais passer qu'un seul element ca irait mais la j'essaie de faire passer des tableaux
    en C ma fonction prend idealement des
    double example[2][19]
    est ce qu'il n'y a pas une astuce intermediaire ...
    je suis a cours d'idee (normal pour un debutant)

  8. #8
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Euh non, je pense pas que tu puisses envoyer un tableau comme ça
    Un moyen serait de "sérialiser" les données que tu veux passer dans une chaine et ensuite d'analyser cette chaine dans le programme C
    Ex, tu pourrais passer cette chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {01,01,valeur chaine se trouvant aux coordonnées (1;1) dans la selection}{01,02,autre valeur}{01,03,etc..}

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    j'ai essayé de faire ca...
    je met les donnes en une seule dimension sur VB
    puis
    http://rp.developpez.com/vb/tutoriels/dll/
    puis remettre en forme les donnees en C
    ca ne marche pas trop pour l'instant

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    j'ai l'impression que le premier parametre ne passe pas... je ne sais pas pourquoi!!!
    je le retrouve enregistré dans le second etc...
    et a la fin j'ai un dernier parametre qui ne ve rien dire et qui fait bugger la dll

  11. #11
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Peut être que ton "Declare" ne correspond pas a ta fonction C

  12. #12
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Ah oui, d'apres le tuto, il faut que les chaines VB passées soient NullTerminated (elles le sont pas par defaut)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine = String(255, vbNullChar)

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/11/2011, 17h56
  2. [PPT-2010] Mise à jour automatique PPSM à partir d'un fichier Excel
    Par frene dans le forum Powerpoint
    Réponses: 0
    Dernier message: 01/11/2010, 18h21
  3. Mise en format au de cellule Excel
    Par Temse dans le forum Excel
    Réponses: 2
    Dernier message: 29/08/2008, 17h09
  4. Réponses: 2
    Dernier message: 25/04/2008, 13h40
  5. Réponses: 1
    Dernier message: 19/04/2008, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo