Problème de concaténation dans VBA

Résolu
Kimbo78300 Messages postés 5 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 26 février 2010 - 26 févr. 2010 à 11:21
Kimbo78300 Messages postés 5 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 26 février 2010 - 26 févr. 2010 à 12:37
Bonjour

J'ai un petit problème de concaténation dans mon code VBA, ce qu'il me renvoie me crée une erreur dans la cellule de destination.

ActiveCell.FormulaR1C1 = "=" & TextBox_Ref_New_Prod.Value & "!B1"

Et dans la cellule il m'écrit : ='100015Y06'!'B1'
Au lieu de : ='100015Y06'!B1

Je ne veux pas des (') de chaque côté de B1.

(TextBox_Ref_New_Prod.Value renvoie au nom d'une feuille qui vient d'être créée, ici la feuille a été appelé 100015Y06)

Merci pour votre aide

6 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
26 févr. 2010 à 12:02
Non, Excel n'est pas c..
Il suffit d'utiliser les bonnes propriétés :

FormulaR1C1, comme sont nom l'indique, est sensé recevoir des formules au format R1C1, c'est à dire en désignant les lignes (R) et colonnes (C) par des chiffres : B1 --> R(1)C(2)

En utilisant Formula, on peut utiliser la formulation avec le nom de colonne sous forme de lettre B1

En mettant B1 dans un FormulaR1C1, B1 ne répondant pas à la bonne syntaxe, il est considéré comme le nom personnalisé d'un Range, d'où l'ajout des '

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
26 févr. 2010 à 11:34
Utilise plutôt une mélange de deux formules EXCEL pour faire ce que tu veux, ça sera plus simple.

=INDIRECT(ADRESSE(1;2;;;"100015Y06"))

Molenn
0
Kimbo78300 Messages postés 5 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 26 février 2010
26 févr. 2010 à 11:41
Il semblerait qu'il y ait un problème dans ta formule, il me renvoie un message d'erreur sur le ";" situé entre 1 et 2...

"Erreur de compilation - Attendu, séparateur de liste ou ) "
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
26 févr. 2010 à 11:52
Ca dépend je pense où tu rentres ta formule, parce qu'EXCEL est très c... pour ça

Il faut mettre des ";" si tu écris la formule dans une cellule de ta feuille EXCEL.
Par contre, lorsque tu passes en VBA, il faut mettre des ",".
De la même façon, suivant ta version d'EXCEL et la propriété que tu vas utiliser, tu vas peut-être devoir mettre la formule Internationale et non française.
Le plus simple, Enregistreur de macro et tu écris une fois la formule dans ta cellule, tu auras la syntaxe

Molenn
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kimbo78300 Messages postés 5 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 26 février 2010
26 févr. 2010 à 11:58
Ok ça va mieux, mais ça bloque sur la fonction ADRESSE, c'est une fonction d'origine? ou bien ajoutée?

Et sinon une idée de pourquoi ma concaténation ne marche pas?

En tout cas merci de te pencher sur mon problème Molenn
0
Kimbo78300 Messages postés 5 Date d'inscription jeudi 18 février 2010 Statut Membre Dernière intervention 26 février 2010
26 févr. 2010 à 12:37
Merci Jack !
Maintenant ça marche, et surtout j'en sais un peu plus !
0
Rejoignez-nous