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

API, COM et SDKs Delphi Discussion :

formule RechercheV ne marche pas


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut formule RechercheV ne marche pas
    bonjour,
    j'essaye de mettre cette formule dans une cellule mais cela ne fonctionne pas

    excel.cells[1,4].formula := '=RECHERCHEV(A7;''[PPM_customer groups-liste.xls]Feuil1''!$A:$C;3;FAUX)';

    j'ai été obligé de doubler les apostrophes pour que cela soit pris comme une chaine caractères ! C'est peut être la cause ?

    la formule dans excel :

    =RECHERCHEV(A7;'[PPM_customer groups-liste.xls]Feuil1'!$A:$C;3;FAUX)

    elle marche très bien.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    j'ai essayé de décomposer la chaine

    a:= '=RECHERCHEV(A7;';
    b:= '''[PPM_customer groups-liste.xls]Feuil1''';
    c:= '!$A:$C;3;FAUX)';
    showmessage(a+b+c);
    excel.cells[1,4].formula := a+b+c;


    mais toujours probleme OLE 800A03EC pourtant le showmessage m'indique exactement ce que je veux mettre dans la cellule (la même chose que dans excel)

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    Citation Envoyé par franckMenant Voir le message
    j'ai essayé de décomposer la chaine

    a:= '=RECHERCHEV(A7;';
    b:= '''[PPM_customer groups-liste.xls]Feuil1''';
    c:= '!$A:$C;3;FAUX)';
    showmessage(a+b+c);
    excel.cells[1,4].formula := a+b+c;


    mais toujours probleme OLE 800A03EC pourtant le showmessage m'indique exactement ce que je veux mettre dans la cellule (la même chose que dans excel)
    Salut,

    et avec
    b := Quotedstr('[PPM_customer groups-liste.xls]Feuil1');

    Ou votre problème viens du $A et $C

    A voir aussi :

    http://www.developpez.net/forums/d55...bleme-formule/

    http://www.pcreview.co.uk/forums/ole...-t3683209.html

    http://forum.pcsoft.fr/thread.awp?gr...5&start=71&v=2

    http://www.developpez.net/forums/d11...ession-lignes/


    http://www.fast-report.com/en/forum/index.php?showtopic=1964


    Bye

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    Juste par curiosité, que donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.cells[1,4].formula := '=A1';
    Qui est "PPM_customer groups-liste.xls" ? c'est le même fichier ? un autre fichier ?
    l'Exe Delphi et le XLS sont-ils dans le même répertoire ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    Salut les gars,
    pour répondre a buzz, c'est pareil avec

    b := Quotedstr('[PPM_customer groups-liste.xls]Feuil1');

    pour shailetroll, j'ai la même erreur en faisant

    excel.cells[1,4].formula := '=A1';


    PPM_customer groups-liste.xls est un autre fichier
    l'exe n'est pas dans le même repertoire
    je viens d'essayer en mettant PPM dans le même repertoire et c'est pareil.

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    Ton problème n'est donc pas la Formule si "=A1" ne fonctionne pas, qui est pourtant une formule de base, c'est que tu as un problème en amont

    tu ne précise pas la feuille, cela utilise-t-il ActiveSheet par défaut ?
    Cells, tu es sûr de cette propriété ? n'est-ce pas Range ?
    D'ailleurs, tu donnes des coordonnées numériques, mais Excel utilise son propre système de coordonné Lettre+Nombre

    ton code devrait plutôt être


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Excel := GetActiveOleObject('Excel.Application');
    Feuille := Excel.WorkSheets['Feuil1'];
    Feuille.Range['A4'].Formula := '=A1';
    // Feuille.Cells[1,4].Formula := '=A1'; // A tester, cela doit aussi fonctionner !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    je viens de trouver pourquoi excel.cells[1,3].formula := '=A1' ne marchait pas. J'avais un processus EXCEL de trop d'ouvert. en le fermant cela s'est arrangé !

    par contre

    a := '=RECHERCHEV(A2;';
    b := Quotedstr('[mon PPM.xlsx]Feuil1'); // j'ai créer un autre PPM au cas ou que j'ai mis dans le même repertoire
    c:= '!$A:$C;3;FAUX)';
    excel.cells[1,3].formula := a+b+c;

    ne marche toujours pas

  8. #8
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut


    utilise l'icone # pour ajouter [CODE ] et [/CODE ]

    Essaye avec le nom complet du fichier 'c:\dossier\fichier.xls'
    xlsx ? Excel 2007 et plus donc !

    Est-ce que ceci fonctionne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.cells[1,4].formula := '=RECHERCHEV(A7;A1:C5;3;FAUX)';
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.cells[1,4].formula := '=RECHERCHEV(A7;''[c:\dossier\mon PPM.xlsx]Feuil1''!A1:C5;3;FAUX)';
    ...


    Commence par une formule simple, puis complexifie jusqu'à obtenir ta formule, tu trouveras ainsi l'élément gênant !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    Les deux lignes de codes me donnent le même rejet OLE
    j'ai essayé avec les chemins des fichiers = pareil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.cells[1,4].formula := '=RECHERCHEV(A7;A1:C5;3;FAUX)';
    ce code ne fonctionne pas. Même erreur OLE.

    j'ai créé en B1 dans la feuille excel une cellule avec rechercheV qui recherche sur la meme feuille. La fonction réussie.
    =RECHERCHEV(A1;$C:$E;3;FAUX)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.cells[1,6].formula := '=B1';
    La copie de la cellule garde bien la formule mais ce n'est pas ce que je veux!
    j'essaye de bricoler mais rien ne vient...

  10. #10
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    Citation Envoyé par franckMenant Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    excel.cells[1,4].formula := '=RECHERCHEV(A7;A1:C5;3;FAUX)';
    ce code ne fonctionne pas. Même erreur OLE.
    Peut-être que FAUX pose problème, as-tu essayé avec 0 ou FALSE ?

    As-tu essayé l'inverse juste pour voir !
    tu mets la formule voulu dans Excel en A4 [1,4]
    et tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(excel.cells[1,4].formula);
    Est-ce que le contenu est le même ?
    ou est-ce que Excel enregistre une version modifiée de la formule ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    J'ai essayé avec False et 0 = pareil erreur OLE

    le fonction showmessage de la formule me provoque la même erreur OLE.
    je ne peux pas récupérer la formule.

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 23
    Par défaut
    j'avais encore des problèmes de processus EXCEL d'ouverts car pour les essais je ne ferme pas tout bien comme il faudrait.

    je viens de refaire le showmessage de la formule de la cellule et la !!!!!!!

    =VLOOKUP(A1,$C:$E,3,FALSE)

    Mon office est installé en français. VB également ???

    pas étonnant que cela ne marche pas du tout

    Thanks A lot Mr ShaiLeTroll. You're the best !

  13. #13
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 041
    Par défaut
    Il me semblait bien qu'Excel conservait les formules dans la langue native, l'anglais !
    En plus c'est écrit dans la FAQ : Comment manipuler des formules ?, je savais bien que je l'avais lu, j'avais déjà manipuler les formules aussi mais cela restait du basique genre =A1+A2-A3
    Utilise FormulaLocal au lieu de Formula, si tu préfères le Français !

    Pour fermer tes Excels quoi qu'il arrive

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Excel := GetActiveOleObject('Excel.Application');
    try
      Feuille := Excel.WorkSheets['Feuil1'];
      Feuille.Range['A4'].Formula := '=A1';
    finally
      Excel := Unassigned;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  14. #14
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Par défaut
    @Salut,

    Bon si au moins tu aurais lu la totalité de mon premier lien

    http://www.developpez.net/forums/d55...bleme-formule/

    et paticulièrement ce que dit gi130 à 13/10/2003, 18h49
    je site :

    Oui, cette histoire d'anglissisme....

    Alors voilà comment ça marche:
    sachant que ligne se dit Row...

    Enfin, ce que j'en dis....

    j'te jure...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] formule RechercheV ne fonctionne pas
    Par gilou41 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2012, 20h07
  2. Réponses: 4
    Dernier message: 11/03/2010, 22h55
  3. RechercheV qui ne marche pas
    Par Homer091 dans le forum Excel
    Réponses: 1
    Dernier message: 27/10/2008, 11h56
  4. formule Remplacer marche pas
    Par cuterate dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 12/06/2008, 09h56
  5. recherchev marche pas
    Par bibi5883 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2007, 10h32

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