Ajout de texte dans les formules des cellules sélectionnées

Bonjour,

Je débute en VBA et je ne comprends pas ce qui ne fonctionne pas dans mon code.

Le but étant de créer un bouton qui, quand je clique dessus, modifie les cellules que j'ai sélectionné auparavant.

Exemple simplifié : en D1, D2 et D3 j'ai respectivement, =A1*J1 , =A2*J2-120 et =A3*J3*S3-25

je sélectionne D1,D2 et D3

je clique sur mon bouton qui déclenche ma macro

et j'obtiens en D1 : =(A1*J1)/C1 en D2 : =(A2*J2-120)/C2 et en D3 : =(A3*J3*S3-25)/C3

Au minimum j'aimerais obtenir, toujours dans le même exemple, en D1 : =(A1*B1) en D2 : =(A2*J2-120) et en D3 : =(A3*J3*S3-25)

J'ai beaucoup de cellule à modifier et elles sont éparpillées par paquet, c'est pour cela que j'ai besoin d'utiliser la sélection.

Sub ajout_parenthese()
Dim rng As Range

For Each rng In Selection

rng.Value = "'" & rng.Formula  'je met la cellule sous forme de texte pour pouvoir modifier cette formule
Selection.Replace "=", "=(" 'j'ajoute une parenthèse et la c'est la panique, il m'en met 1 puis 2 puis 3 etc...
rng = rng & ")"       'la j'ai une erreur à chaque fois, que je mette d seul, d.Value ou d.Formula
Next

End Sub

Voilà, pour l'instant je n'ai essayé que d'ajouter les parenthèses mais vu que je n'ai pas réussi je n'ai pas été plus loin.

J'ai conscience que mon code est tout pourri mais j'ai essayé 50 façons différentes et je n'y arrive toujours pas donc je vous sollicite humbles professionnelles !!

Merci pour votre aide

Bonjour et bienvenu(e)

Une dans le code

Sub ajout_parenthese()
Dim rng As Range

  For Each rng In Selection

    rng.Value = "'" & rng.Formula  'je met la cellule sous forme de texte pour pouvoir modifier cette formule
    rng.Replace "=", "=("  'j'ajoute une parenthèse et la c'est la panique, il m'en met 1 puis 2 puis 3 etc...
    rng = rng & ")"       'la j'ai une erreur à chaque fois, que je mette d seul, d.Value ou d.Formula
  Next

End Sub

Oh mon dieu ca marche !!

Super merci beaucoup !!!

Pour le reste du problème par contre je ne vois pas bien comment faire :

je voudrais que, toujours dans ma sélection, on ajoute, à la fin de la formule : /Ci avec i étant le numéro de la ligne sur laquelle je me trouve.

Exemple : j'ai maintenant en D1 : =(A1*B1) et je veux =(A1*B1)/C1 idem pour D2 : =(A2*B2)/C2 et toutes les cellules sélectionnées

voila merci

(j'en demande peut être un peu trop mais je tente quand même )

Bonjour

ghorghorbey a écrit :

Oh mon dieu ca marche !!

Appelle moi simplement Banzai64

Modifie ton code

Sub ajout_parenthese()
Dim rng As Range

  For Each rng In Selection
    rng.Value = "'" & rng.Formula  'je met la cellule sous forme de texte pour pouvoir modifier cette formule
    rng.Replace "=", "=("  'j'ajoute une parenthèse et la c'est la panique, il m'en met 1 puis 2 puis 3 etc...
    rng = rng & ")/C"& rng.Row    'la j'ai une erreur à chaque fois, que je mette d seul, d.Value ou d.Formula
 Next

End Sub
Banzai64 a écrit :

Bonjour

ghorghorbey a écrit :

Oh mon dieu ca marche !!

Appelle moi simplement Banzai64

Non Dieu ca te va bien je trouve

Merci beaucoup pour ta réactivité et tes réponses !!

Rechercher des sujets similaires à "ajout texte formules selectionnees"