Récupération valeur textbox dans formule

mvcs

XLDnaute Nouveau
Bonjour,
J'ai créé un petit utilitaire tout simple pour comparer les cellules de deux versions d'un classeur Excel.
Dans une feuille vierge, je lance un formulaire avec 4 TextBox dans lequel l'utilisateur saisit :
TextBox1 - ClasseurVersion1.xls
TextBox2 - Feuille1 du ClasseurVersion1
TextBox3 - ClasseurVersion2.xls
TextBox4 - Feuille1 du ClasseurVersion2
Ensuite j'ai un bouton qui, au clic, lance un module où il y a une formule que je copie sur les cellules à comparer.
Je n'arrive à trouver comment récupérer les valeurs de ces TextBox dans cette formule suivante (en gras) :
=SI('C:\chemin d'accès\[TextBox1]TextBox2'!A1='C:\chemin d'accès\[TextBox3]TextBox4'!A1;"O";"N")
Elle permet de visualiser dans quelles cellules se trouvent les différences, là où il y a un "N"
Merci pour votre aide.
Cordialement
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

A vue de nez, à tester:

VB:
Dim formule As String
formule="=IF('C:\chemin d'accès\[" & TextBox1.Value &"]" & TextBox2.value & _
            "'!A1='C:\chemin d'accès\[" & TextBox3.value & "]" & _
                TextBox4.Value & "'!A1;""O"";""N"")"
range("A1").Formula = formule
OU
VB:
formule = Replace("=IF('C:\chemin d'accès\[TextBox1]TextBox2'!A1='C:\chemin d'accès\[TextBox3]TextBox4'!A1;""O"";""N"")", "TextBox1", TextBox1.Value)
formule = Replace(Replace(Replace(formule, "TextBox2", TextBox2.Value), "TextBox3", TextBox3.Value), "TextBox4", TextBox4.Value)
Range("A1").Formula = formule

Bonne après-midi
 

mvcs

XLDnaute Nouveau
Merci Roblochon pour cette réponse rapide.
J'ai essayé la première solution. La première ligne pour constituer la formule avec les données TextBox fonctionne bien mais ça bloque à la deuxième ligne.
Il me dit : Erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet.
PS : j'aime bien votre pseudo (je suis de Haute-Savoie) à part que c'est Reblochon mais j'imagine que c'est un clin d'œil ;)
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re Bonjour,

Je ne peux pas vous venir en aide sur simple constat d'accident de macro. Il faut nous faire parvenir le véhicule (fichier exemple) car nos experts ne se déplacent pas.

A vous relire

P.S Reblochon est une AOC depuis 1958 (mon année de n'aissance) puis AOP Roblochon ne l'est pas à ma connaissance :)
 

mvcs

XLDnaute Nouveau
Oui effectivement, c'est mieux avec le fichier.
Le voilà donc.
Le formulaire s'active à l'ouverture du fichier ou avec Ctrl+C (Macro "Comparer") s'il est déjà ouvert.
Merci.
 

Pièces jointes

  • comparer-V4.xlsm
    102 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Re Bonsoir,

Avec plus de vigilance j'aurais pu voir qu'il fallait remplacer les ";" de la formule par des ",".....

Soit (qui fonctionne):

VB:
Private Sub CommandButton1_Click()
Dim formule As String
formule = "=IF('C:\Users\Desktop\[" & TextBox1.Value & "]" & TextBox3.Value & _
            "'!A1='C:\Users\Desktop\[" & TextBox2.Value & "]" & _
                TextBox4.Value & "'!A1,""O"",""N"")"
Range("A1").Formula = formule
Range("A1").AutoFill Destination:=Range("A1:A300"), Type:=xlFillValues
Range("A1:A300").Select
Selection.AutoFill Destination:=Range("A1:DE300"), Type:=xlFillValues
Range("A1").Select
Unload UserForm1

Bonne soirée
 

mvcs

XLDnaute Nouveau
Mais oui bien sûr et j'aurais pu le voir aussi. Des ";" dans excel mais des "," dans VBA !
Le pire est que je m'étais déjà fait piégé une fois et je n'y ai plus pensé ...
En tout cas merci bien et je penserai à vous lors de ma prochaine tartiflette :)
Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo