Changer formule en vb dans une cellule dans plusieurs feuilles

bou6 -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai un classeur avec une centaine de page je veux écrire un script VBA qui fait que la cellule A1 de chaque page reçoit une formule;j'ai trouvé ça sur le net

range("A1").formula = "=maFormule"

Pourtant avec ça je vais passer par les pages un à un et exécuter la macro, je veux bien que ça sera automatique.

Merci d'avance

1 réponse

  1. bou6
     
    Bonjour,

    J'ai trouvé la solution en fait il faut juste rajouter une boucle qui parcours tous les feuilles,voici ma macro

    Sub WorksheetLoop2()

    ' Declare Current as a worksheet object variable.
    Dim Current As Worksheet

    ' Loop through all of the worksheets in the active workbook.
    For Each Current In Worksheets

    Current.Range("A1").Formula = "=MaFormmule"
    Next
    End Sub

    Pourtant j'ai fait ca ca n'a pas marche
    Current.Range("A1").Formula = "=RECHERCHEV(B2;'Reference'!B$1:H478;3;FAUX)"

    Est ce que vous avez une idée?
    0
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour

      Current.Range("A1").Formulalocal = "=RECHERCHEV(B2;'Reference'!B$1:H478;3;FAUX)" 

      mais pourquoi une boucle ?

      Avec l'engistreur de macro, tu sélectionne la 1° feuille et en maintenant la touche "maj enfoncée tu écris la formule

      un exemple de ce que tu obtiens
      Sheets(Array("Feuil1", "Feuil2", "Feuil3")).Select
      Sheets("Feuil1").Activate
      ActiveCell.FormulaR1C1 = "=R[1]C+R[1]C[1]"

      tu peux remplacer
      ActiveCell.FormulaR1C1
      peu explicite à mon avis
      par
      Sheets("Feuil1").Activate
      ActiveCell.Formulalocal="=A2+B2"

      mais le + simple est de ne pas utiliser VBA: "avant de penser VBA, penser Excel" :o)
      0