Formule avec TextBox

Bonjour à tous !

J'aimerai insérer la valeur d'une TextBox dans une formule comme ceci :

Sachant que ma UserForm créer une Feuille avec comme nom de feuille : TextBox4.

Par contre, j'ai une erreur en me surlignant """)" :

Erreur de compilation :

Attendu : fin d'instruction

Sheets("Synthèse").Cells(i + 1, 2).FormulaR1C1 = "=INDIRECT("""&TextBox4.Value!D4&""")"

Merci de l'aide

Fred

Bonsoir,

un essaie en passant...

VBA se perd quelque fois dans les différents " et/ou &" etc...

Il faut donc l'aider un peu en ajoutant des espaces, et d'entourer correctement la variable de VBA :

Sheets("Synthèse").Cells(i + 1, 2).FormulaR1C1 = "=INDIRECT(""" & TextBox4.Value & "!D4"")"

A voir

@ bientôt

LouReeD

Bonjour à vous deux,

Juste une petite remarque en passant : ce serait mieux d'utiliser .Formula plutôt que .FormulaR1C1 ; ce dernier est à utiliser quand il y a des références relatives du genre R[-1]C[2] ; ce n'est pas le cas ici, car il n'y a que D4.

dhany

Bonsoir,

un essaie en passant...

VBA se perd quelque fois dans les différents " et/ou &" etc...

Il faut donc l'aider un peu en ajoutant des espaces, et d'entourer correctement la variable de VBA :

Sheets("Synthèse").Cells(i + 1, 2).FormulaR1C1 = "=INDIRECT(""" & TextBox4.Value & "!D4"")"

A voir

@ bientôt

LouReeD

Merci ça fonctionne ! J'ai compris pourquoi

Bonjour à vous deux,

Juste une petite remarque en passant : ce serait mieux d'utiliser .Formula plutôt que .FormulaR1C1 ; ce dernier est à utiliser quand il y a des références relatives du genre R[-1]C[2] ; ce n'est pas le cas ici, car il n'y a que D4.

dhany

Salut dhany, le R1C1 est plus exigeant en ressources ? Ou c'est juste que dans cet exemple, c'est purement inutile ?

Bonjour Fr3d, LouReeD,

Tu a écrit :

le R1C1 est plus exigeant en ressources ? ou c'est juste que dans cet exemple, c'est purement inutile ?

Comme il n'y a pas de référence style R1C1 dans la formule, je pense que .FormulaR1C1 n'est pas utile ici ; donc même s'il n'est pas plus exigeant en ressources, autant utiliser : .Formula


Extrait de l'aide VBA :

screen

Exemple :

ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,'Feul1'!R[" & c1.Row & "]C[" & c2.Column + 1 & "]:R[" & c2.Row & "]C[" & c2.Column + 1 & "])"

dhany

Edit : j'ai modifié le début de ma réponse de 15:10 : https://forum.excel-pratique.com/viewtopic.php?p=645103#p645103

dhany

Rechercher des sujets similaires à "formule textbox"