Un peu d'aide svp.
Résolu
Mathbenjo
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
Mathbenjo Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
Mathbenjo Messages postés 30 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je dévelloppe une petite macro en vb/vba pour excel. Une partie de cette dernière consiste à reprendre la formule d'une cellule existance et de la compléter par le contenu d'un conbobox.
Rien de folichon. J'ai donc ecrit le code suivant :
Sheets("feuil1").Select
Range("C3").Select
Dim tt
tt = Range("C1").Formula
ActiveCell.Formula = tt + "+" + ComboBox1.Value + "!R[3]C[0]"
La formule en C1 est : =Feuil2!C4+Feuil3!C4
il devrait me sortir cela : =Feuil2!C4+Feuil3!C4+Feuil2!C6 (si j'ai choisi Feuil2 dans ma combobox)
mais il me sort cela : =Feuil2!$D:$D+Feuil3!$D:$D+Feuil2!C6
Cela doit venir d'un guillement qui manque ou je c pas trop. Si quelqu'un peut m'aider.
MErci
Je dévelloppe une petite macro en vb/vba pour excel. Une partie de cette dernière consiste à reprendre la formule d'une cellule existance et de la compléter par le contenu d'un conbobox.
Rien de folichon. J'ai donc ecrit le code suivant :
Sheets("feuil1").Select
Range("C3").Select
Dim tt
tt = Range("C1").Formula
ActiveCell.Formula = tt + "+" + ComboBox1.Value + "!R[3]C[0]"
La formule en C1 est : =Feuil2!C4+Feuil3!C4
il devrait me sortir cela : =Feuil2!C4+Feuil3!C4+Feuil2!C6 (si j'ai choisi Feuil2 dans ma combobox)
mais il me sort cela : =Feuil2!$D:$D+Feuil3!$D:$D+Feuil2!C6
Cela doit venir d'un guillement qui manque ou je c pas trop. Si quelqu'un peut m'aider.
MErci
3 réponses
Bonjour,
C'est le mélange entre les deux modes de notation de formule qui pose problème :
La notation de type "C4" et la notation relative de type "R[3]C[0]"
Il faut opter pour l'une ou l'autre. Par exemple ce code fonctionne :
Sheets("Feuil1").Select
Range("C3").Select
Dim tt As String
tt = Range("C1").Formula
ActiveCell.Formula = tt & "+" & ComboBox1.Value & "!C6"
Remarque : Il vaut mieux utiliser l'opérateur de concaténation & et déclarer tt en texte
A+
EDIT : pardon je viens de corriger en remettant ComboBox1.Value
C'est le mélange entre les deux modes de notation de formule qui pose problème :
La notation de type "C4" et la notation relative de type "R[3]C[0]"
Il faut opter pour l'une ou l'autre. Par exemple ce code fonctionne :
Sheets("Feuil1").Select
Range("C3").Select
Dim tt As String
tt = Range("C1").Formula
ActiveCell.Formula = tt & "+" & ComboBox1.Value & "!C6"
Remarque : Il vaut mieux utiliser l'opérateur de concaténation & et déclarer tt en texte
A+
EDIT : pardon je viens de corriger en remettant ComboBox1.Value
Re bonjour,
Pour être exhaustif, voici le code qui fonctionne en relatif :
Sheets("Feuil1").Select
Range("C3").Select
Dim tt As String
ActiveCell.Formula = Range("C1").Formula
ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & ComboBox1.Value & "!R[3]C[0]"
En effet, il faut d'abord recopier la formule en C3 car si on prend le texte brut de la formule en C1, la référence relative n'est plus bonne pour C3
A+
Pour être exhaustif, voici le code qui fonctionne en relatif :
Sheets("Feuil1").Select
Range("C3").Select
Dim tt As String
ActiveCell.Formula = Range("C1").Formula
ActiveCell.FormulaR1C1 = ActiveCell.FormulaR1C1 & "+" & ComboBox1.Value & "!R[3]C[0]"
En effet, il faut d'abord recopier la formule en C3 car si on prend le texte brut de la formule en C1, la référence relative n'est plus bonne pour C3
A+