Excel 07/ Pb macro VB/ Remplacer formule
lejepie
-
lejepie -
lejepie -
Bonjour,
Novice de chez novice en VBA, je sollicite votre aide...
Mon problème: remplacer dans chaque cellule de F5 à F130 la formule
=DROITE(etab2!$A$3;NBCAR(etab2!$A$3)-41) par
=DROITE(GAUCHE(etab2!$A$3;31);2),
sachant que cette formule est celle de la cellule F5, en F6, etab2 sera remplacé par etab3...
Voilà ce que j'ai essayé de faire:
Sub Boucle()
Dim Cellule As Range
Dim Formule As String
For Each Cellule In Range("F5:F135")
Formule = Replace(Cellule.Formula, Right(Cellule, 21), "31);2")
Formule = Replace(Cellule.Formula, "droite(", "droite(gauche(")
Cellule.Formula = Formule
Next Cellule
End Sub
Mais ça ne marche pas... J'ai le message erreur d'execution 13...
Merci pour votre aide
Novice de chez novice en VBA, je sollicite votre aide...
Mon problème: remplacer dans chaque cellule de F5 à F130 la formule
=DROITE(etab2!$A$3;NBCAR(etab2!$A$3)-41) par
=DROITE(GAUCHE(etab2!$A$3;31);2),
sachant que cette formule est celle de la cellule F5, en F6, etab2 sera remplacé par etab3...
Voilà ce que j'ai essayé de faire:
Sub Boucle()
Dim Cellule As Range
Dim Formule As String
For Each Cellule In Range("F5:F135")
Formule = Replace(Cellule.Formula, Right(Cellule, 21), "31);2")
Formule = Replace(Cellule.Formula, "droite(", "droite(gauche(")
Cellule.Formula = Formule
Next Cellule
End Sub
Mais ça ne marche pas... J'ai le message erreur d'execution 13...
Merci pour votre aide
A voir également:
- Excel 07/ Pb macro VB/ Remplacer formule
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule si et excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Liste déroulante excel - Guide
- Excel mise en forme conditionnelle formule - Guide
2 réponses
bonjour
Comme ceci ?
J'ai juste repris ta formule de départ.
Comme ceci ?
Formule = "=DROITE(GAUCHE(etab2!$A$3;31);2)"
For Each Cellule In Range("F5:F135")
Cellule.FormulaLocal = Formule
Next Cellule
J'ai juste repris ta formule de départ.
Le Pb c'est que on aura la formule "=DROITE(GAUCHE(etab2!$A$3;31);2)" que dans la cellule F5, en F6 on aure "=DROITE(GAUCHE(etab3!$A$3;31);2)" et ainsi de suite... d'où mon idée de mettre right pour ne pas m'embêter avec les différents etab...
Sub Boucle()
Sheets("bdd").Select
Dim Cellule As Range
Dim Formule As String
For Each Cellule In Range("F5:F135")
Formule = Replace(Cellule.FormulaLocal, Right(Formule, 21), "31);2")
Là je remplace les 21 derniers caractères de Formule par 31);2
Formule = Replace(Cellule.FormulaLocal, "droite(", "droite(gauche(")
Là je remplace droite( par droite(gauche(
Cellule.FormulaLocal = Formule
Next Cellule
End Sub
Sub Boucle()
Sheets("bdd").Select
Dim Cellule As Range
Dim Formule As String
For Each Cellule In Range("F5:F135")
Formule = Replace(Cellule.FormulaLocal, Right(Formule, 21), "31);2")
Là je remplace les 21 derniers caractères de Formule par 31);2
Formule = Replace(Cellule.FormulaLocal, "droite(", "droite(gauche(")
Là je remplace droite( par droite(gauche(
Cellule.FormulaLocal = Formule
Next Cellule
End Sub
Par contre, il ne me remplace rien du tout... Le contenu des cellules n'a pas changé! Do you know why?
Sub Boucle()
Sheets("bdd").Select
Dim Cellule As Range
Dim Formule As String
For Each Cellule In Range("F5:F135")
Formule = Replace(Cellule.FormulaLocal, Right(Formule, 21), "31);2")
Formule = Replace(Cellule.FormulaLocal, "droite(", "droite(gauche(")
Cellule.FormulaLocal = Formule
Next Cellule
End Sub