Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un
espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2).
Alors j'ai écrit:
ActiveCell.Formula = "=CONCATENATE(B5,"
",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))"
Malheuereusement, j'obtiens un message du type erreur de Compilation /
Erreur de Syntaxe.
Je ne connaissais pas le truc du double guillemet. J'en étais resté à chr(34), ce qui fait parfois lourd dans une formule. Comme quoi, j'en apprends ici tous les jours... ;-)
Le problème vient de ce que le guillemet permet de distinguer une chaine de caractères d'autres éléments comme les varaibles, les constantes, ...
Afin qu'il n'y ait pas d'ambiguïté entre la fin d'une chaîne de caractères et un guillemet situé à l'intérieur d'une chaîne de caractères, celui-ci doit être remplacé par un double guillemet.
Il faut donc que tu remplaces
"=CONCATENATE(B5," ",...
par
"=CONCATENATE(B5,"" "",...
C'est également valable pour les anciennes macros, XL4.
Par ailleurs, la fonction CONCATENER n'a d'éventuel intérêt que si ses arguments sont très nombreux. De manière générale, elle est avantageu- sement remplacée par l'opérateur "&" :
¡ & " " & B1
équivaut à
=CONCATENER(A1;" ";B1)
C'est plus court à écrire, et le résultat est au moins aussi lisible.
Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2). Alors j'ai écrit: ActiveCell.Formula = "=CONCATENATE(B5," ",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))" Malheuereusement, j'obtiens un message du type erreur de Compilation / Erreur de Syntaxe.
Je ne vois pas mon erreur. Merci de votre aide.
Christophe
Bonsoir,
Je ne connaissais pas le truc du double guillemet. J'en étais resté à
chr(34), ce qui fait parfois lourd dans une formule.
Comme quoi, j'en apprends ici tous les jours... ;-)
Le problème vient de ce que le guillemet permet de distinguer une
chaine
de caractères d'autres éléments comme les varaibles, les constantes,
...
Afin qu'il n'y ait pas d'ambiguïté entre la fin d'une chaîne de
caractères et un guillemet situé à l'intérieur d'une chaîne de
caractères, celui-ci doit être remplacé par un double guillemet.
Il faut donc que tu remplaces
"=CONCATENATE(B5," ",...
par
"=CONCATENATE(B5,"" "",...
C'est également valable pour les anciennes macros, XL4.
Par ailleurs, la fonction CONCATENER n'a d'éventuel intérêt que si ses
arguments sont très nombreux. De manière générale, elle est avantageu-
sement remplacée par l'opérateur "&" :
¡ & " " & B1
équivaut à
=CONCATENER(A1;" ";B1)
C'est plus court à écrire, et le résultat est au moins aussi lisible.
Cette formule fonctionne à merveille. Maintenant, j'aimerais
inclure un espace entre le le résultat de B et celui de
VLOOKUP(B5,CountryData,2). Alors j'ai écrit:
ActiveCell.Formula = "=CONCATENATE(B5,"
",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))"
Malheuereusement, j'obtiens un message du type erreur de Compilation
/ Erreur de Syntaxe.
Je ne connaissais pas le truc du double guillemet. J'en étais resté à chr(34), ce qui fait parfois lourd dans une formule. Comme quoi, j'en apprends ici tous les jours... ;-)
Le problème vient de ce que le guillemet permet de distinguer une chaine de caractères d'autres éléments comme les varaibles, les constantes, ...
Afin qu'il n'y ait pas d'ambiguïté entre la fin d'une chaîne de caractères et un guillemet situé à l'intérieur d'une chaîne de caractères, celui-ci doit être remplacé par un double guillemet.
Il faut donc que tu remplaces
"=CONCATENATE(B5," ",...
par
"=CONCATENATE(B5,"" "",...
C'est également valable pour les anciennes macros, XL4.
Par ailleurs, la fonction CONCATENER n'a d'éventuel intérêt que si ses arguments sont très nombreux. De manière générale, elle est avantageu- sement remplacée par l'opérateur "&" :
¡ & " " & B1
équivaut à
=CONCATENER(A1;" ";B1)
C'est plus court à écrire, et le résultat est au moins aussi lisible.
Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2). Alors j'ai écrit: ActiveCell.Formula = "=CONCATENATE(B5," ",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))" Malheuereusement, j'obtiens un message du type erreur de Compilation / Erreur de Syntaxe.
Je ne vois pas mon erreur. Merci de votre aide.
Christophe
Michel Gaboly
Re,
CountryData est probablement une variable définie dans VBA.
Une formule de la feuille de calcul n'a aucun moyen de la reconnaître, ce qui explique le message d'erreur.
Il faut décomposer l'argument passé à Formula en chaîne de caractères et variables :
Merci FX. J'ai testé. Je n'ai plus de message d'erreur de compilation en revanche le résulat dans la cellule n'est plus bon puisque j'obtiens désormais #NAME? Qu'en penses-tu?
Christophe "FxM" a écrit dans le message de news:%
Bonsoir,
Non testé : remplace ton espace (soit les trois caractères " ") par chr(32)
Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2). Alors j'ai écrit: ActiveCell.Formula = "=CONCATENATE(B5," ",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))" Malheuereusement, j'obtiens un message du type erreur de Compilation / Erreur de Syntaxe.
Je ne vois pas mon erreur. Merci de votre aide.
Christophe
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Re,
CountryData est probablement une variable définie dans VBA.
Une formule de la feuille de calcul n'a aucun moyen de la reconnaître,
ce qui explique le message d'erreur.
Il faut décomposer l'argument passé à Formula en chaîne de caractères
et variables :
Merci FX. J'ai testé. Je n'ai plus de message d'erreur de compilation en
revanche le résulat dans la cellule n'est plus bon puisque j'obtiens
désormais #NAME?
Qu'en penses-tu?
Christophe
"FxM" <fxmanceaux@chello.fr> a écrit dans le message de
news:%23cQmqvquDHA.1888@TK2MSFTNGP10.phx.gbl...
Bonsoir,
Non testé :
remplace ton espace (soit les trois caractères " ") par chr(32)
Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un
espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2).
Alors j'ai écrit:
ActiveCell.Formula = "=CONCATENATE(B5,"
",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))"
Malheuereusement, j'obtiens un message du type erreur de Compilation /
Erreur de Syntaxe.
Merci FX. J'ai testé. Je n'ai plus de message d'erreur de compilation en revanche le résulat dans la cellule n'est plus bon puisque j'obtiens désormais #NAME? Qu'en penses-tu?
Christophe "FxM" a écrit dans le message de news:%
Bonsoir,
Non testé : remplace ton espace (soit les trois caractères " ") par chr(32)
Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2). Alors j'ai écrit: ActiveCell.Formula = "=CONCATENATE(B5," ",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))" Malheuereusement, j'obtiens un message du type erreur de Compilation / Erreur de Syntaxe.
Je ne vois pas mon erreur. Merci de votre aide.
Christophe
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Michel Gaboly
De rien ;-))
Une bonne technique pour s'en sortir si on bloque pour transcrire en VBA une formule qui fonctionne dans une feuille Excel, c'est l'enregistrement auto.
Classique mais efficace : cela t'aurait permis de découvrir ;-))) le "truc" du double guillemet.
Il ne faut pas mépriser cet enregistrement auto, qui peut souvent dépanner facilement ;-)))
Bonsoir,
Je ne connaissais pas le truc du double guillemet. J'en étais resté à chr(34), ce qui fait parfois lourd dans une formule. Comme quoi, j'en apprends ici tous les jours... ;-)
Le problème vient de ce que le guillemet permet de distinguer une chaine de caractères d'autres éléments comme les varaibles, les constantes, ...
Afin qu'il n'y ait pas d'ambiguïté entre la fin d'une chaîne de caractères et un guillemet situé à l'intérieur d'une chaîne de caractères, celui-ci doit être remplacé par un double guillemet.
Il faut donc que tu remplaces
"=CONCATENATE(B5," ",...
par
"=CONCATENATE(B5,"" "",...
C'est également valable pour les anciennes macros, XL4.
Par ailleurs, la fonction CONCATENER n'a d'éventuel intérêt que si ses arguments sont très nombreux. De manière générale, elle est avantageu- sement remplacée par l'opérateur "&" :
¡ & " " & B1
équivaut à
=CONCATENER(A1;" ";B1)
C'est plus court à écrire, et le résultat est au moins aussi lisible.
Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2). Alors j'ai écrit: ActiveCell.Formula = "=CONCATENATE(B5," ",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))" Malheuereusement, j'obtiens un message du type erreur de Compilation / Erreur de Syntaxe.
Je ne vois pas mon erreur. Merci de votre aide.
Christophe
-- Cordialement,
Michel Gaboly http://www.gaboly.com
De rien ;-))
Une bonne technique pour s'en sortir si on bloque pour transcrire
en VBA une formule qui fonctionne dans une feuille Excel, c'est
l'enregistrement auto.
Classique mais efficace : cela t'aurait permis de découvrir ;-)))
le "truc" du double guillemet.
Il ne faut pas mépriser cet enregistrement auto, qui peut souvent
dépanner facilement ;-)))
Bonsoir,
Je ne connaissais pas le truc du double guillemet. J'en étais resté à
chr(34), ce qui fait parfois lourd dans une formule.
Comme quoi, j'en apprends ici tous les jours... ;-)
Le problème vient de ce que le guillemet permet de distinguer une
chaine
de caractères d'autres éléments comme les varaibles, les constantes,
...
Afin qu'il n'y ait pas d'ambiguïté entre la fin d'une chaîne de
caractères et un guillemet situé à l'intérieur d'une chaîne de
caractères, celui-ci doit être remplacé par un double guillemet.
Il faut donc que tu remplaces
"=CONCATENATE(B5," ",...
par
"=CONCATENATE(B5,"" "",...
C'est également valable pour les anciennes macros, XL4.
Par ailleurs, la fonction CONCATENER n'a d'éventuel intérêt que si ses
arguments sont très nombreux. De manière générale, elle est avantageu-
sement remplacée par l'opérateur "&" :
¡ & " " & B1
équivaut à
=CONCATENER(A1;" ";B1)
C'est plus court à écrire, et le résultat est au moins aussi lisible.
Cette formule fonctionne à merveille. Maintenant, j'aimerais
inclure un espace entre le le résultat de B et celui de
VLOOKUP(B5,CountryData,2). Alors j'ai écrit:
ActiveCell.Formula = "=CONCATENATE(B5,"
",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))"
Malheuereusement, j'obtiens un message du type erreur de Compilation
/ Erreur de Syntaxe.
Une bonne technique pour s'en sortir si on bloque pour transcrire en VBA une formule qui fonctionne dans une feuille Excel, c'est l'enregistrement auto.
Classique mais efficace : cela t'aurait permis de découvrir ;-))) le "truc" du double guillemet.
Il ne faut pas mépriser cet enregistrement auto, qui peut souvent dépanner facilement ;-)))
Bonsoir,
Je ne connaissais pas le truc du double guillemet. J'en étais resté à chr(34), ce qui fait parfois lourd dans une formule. Comme quoi, j'en apprends ici tous les jours... ;-)
Le problème vient de ce que le guillemet permet de distinguer une chaine de caractères d'autres éléments comme les varaibles, les constantes, ...
Afin qu'il n'y ait pas d'ambiguïté entre la fin d'une chaîne de caractères et un guillemet situé à l'intérieur d'une chaîne de caractères, celui-ci doit être remplacé par un double guillemet.
Il faut donc que tu remplaces
"=CONCATENATE(B5," ",...
par
"=CONCATENATE(B5,"" "",...
C'est également valable pour les anciennes macros, XL4.
Par ailleurs, la fonction CONCATENER n'a d'éventuel intérêt que si ses arguments sont très nombreux. De manière générale, elle est avantageu- sement remplacée par l'opérateur "&" :
¡ & " " & B1
équivaut à
=CONCATENER(A1;" ";B1)
C'est plus court à écrire, et le résultat est au moins aussi lisible.
Cette formule fonctionne à merveille. Maintenant, j'aimerais inclure un espace entre le le résultat de B et celui de VLOOKUP(B5,CountryData,2). Alors j'ai écrit: ActiveCell.Formula = "=CONCATENATE(B5," ",VLOOKUP(B5,CountryData,2),VLOOKUP(B5,CountryData,3))" Malheuereusement, j'obtiens un message du type erreur de Compilation / Erreur de Syntaxe.