Retranscrire formule Excel en VBA

Bonjour,

Je souhaiterais pouvoir adapter une formule en VBA ou, si trop complexe pouvoir l'appliquer à chaque feuille de mon classeur.

Le problème est que je ne sais pas comment l'affecter à chaque feuille active de mon classeur. Pour la Feuil1 cela donne la formule suivante en case A1 ="TEST: "&TEXTE(Feuil1!A2;"0,0%")

Mais comment faire pour la feuille 2, 3, 4... ?

Range ("A1") .Formula ="TEST: "&TEXTE(XX!ZZ;"0,0%")

XX représente le nom de la feuille active

ZZ représente la cellule qui contient la valeur

J'aurais bien besoin de votre aide svp :)

Merci !

JB

Bonjour

Essayez avec ce code

Sub test()
Dim i As Byte
For i = 1 To 4
    Sheets(i).Range("A1").FormulaR1C1 = "=""TEST: ""&TEXT(" & Sheets(i).Name & "!R[1]C,""0,0%"")"
Next i
End Sub

Si ok -->

Cordialement

Bonjour JeanBaptisteP, Dan,

En passant par un format personnalisé pour la cellule A1. Puis une fois la cellule formatée, en A1 taper= A2

image

Le format de la cellule A1 est le suivant.

image

Copier ce format dans les autres feuilles en cellule A1.

image

@X Cellus : Ah ben oui bien plus simple que de faire un code ! Bien vu !

Bonjour Dan, XCellus,

Tout d'abord, merci à vous deux pour vos propositions. Le code VBA me convient puisque mes onglets sont déjà créés.

Le code VBA sera placé dans chaque feuille et appelé avec une autre macro donc pas besoin de boucler dans mon cas

Par contre la cellule ou il faut appliquer la formule se trouve en N1 et la valeur à récupérer se trouve en Z5. Comment modifier la macro de Dan en ce sens ?

Activesheet.Range("N1").FormulaR1C1 = "=""TEST: ""&TEXT(" & Activesheet & "!R[1]C,""0,0%"")"

Quoi mettre ici ? => R[1]C,"

Merci encore !

JB

A nouveau,

@Dan,

Après, tout dépend aussi, du nombre de feuilles...

Un petit clic sur une macro et cela roule tout seul . Une fois qu'on a fait l'effort de la réaliser.

Le code VBA sera placé dans chaque feuille et appelé avec une autre macro donc pas besoin de boucler dans mon cas

Placé dans chaque feuille ??? bah non, ce n'est pas bon cela.

Mettez le dans un module puis dans votre autre macro, vous mettez ceci

Call "nom de votre macro pour la formule en N2"

Par contre la cellule ou il faut appliquer la formule se trouve en N1 et la valeur à récupérer se trouve en Z5. Comment modifier la macro de Dan en ce sens ?

le code que je vous ai proposé ne change pas à partir du moment où vous spécifiez ceci :

Range("N1")

Autre question, pourquoi mettez vous "activesheet" ?
Ecrit comme vous l'avez fait, cela va buguer...

Bonsoir Dan

Bien vu pour le module avec le code de la formule. J'ai procédé différemment, j'ai modifié le format de ma cellule sur une de mes feuilles et ensuite j'ai copié/collé cette cellule sur mes autres feuilles. La formule est donc appliqué pour sa feuille respective. J'avais écrit cela car le code était placé dans une macro qui scrutait chaque feuille I*** de mon classeur.

Merci beaucoup pour votre aide en tout cas !

Bonne soirée

JB

Rechercher des sujets similaires à "retranscrire formule vba"