appliquer une macro a plusieurs feuilles

highlander

XLDnaute Nouveau
bonjour,

J'ai créer un bouton qui permet de supprimer la couleur et le contenue de cellule.

voici le code :

Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

If MsgBox("Voulez vous vider l'EDT ?", vbInformation + vbYesNo, "Voulez vous vider l'EDT ?") = vbYes Then

Range("C4:AC10").ClearContents
Range("C4:AC10").Interior.ColorIndex = xlNone

Range("C12:AC18").ClearContents
Range("C12:AC18").Interior.ColorIndex = xlNone

Range("C20:AC26").ClearContents
Range("C20:AC26").Interior.ColorIndex = xlNone

Range("C28:AC34").ClearContents
Range("C28:AC34").Interior.ColorIndex = xlNone

Range("C36:AC42").ClearContents
Range("C36:AC42").Interior.ColorIndex = xlNone

Else
Exit Sub
End If

End Sub

ce bouton se trouve dans l'onglet feuil01 (le nom de l'onglet dépend d'une autre macro qui lui donne un nom)
je voudrais qu'en doublecliquant sur le bouton la macro marche pour les feuil03 à feuil63

merci
 

Temjeh

XLDnaute Accro
Supporter XLD
Re : appliquer une macro a plusieurs feuilles

Bonjour

Voici un début tu peux surement la finir:

If MsgBox("Voulez vous vider l'EDT ?", vbInformation + vbYesNo, "Voulez vous vider l'EDT ?") = vbYes Then
For i = 3 To 63
Sheets(i).Range("C4:AC10").ClearContents
...
Next i
End if
A+

Temjeh
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : appliquer une macro a plusieurs feuilles

Bonjour,

Code:
Dim i As Byte
For i = 3 To 63
  With Sheets("feuil" & Format(i, "00"))
    .Range("C4:AC10").ClearContents
    .Range("C4:AC10").Interior.ColorIndex = xlNone
    '--------
  End With
Next

A+
 

job75

XLDnaute Barbatruc
Re : appliquer une macro a plusieurs feuilles

Re,

Noter qu'on peut grouper les Range :

Code:
Dim i As Byte
'------------
For i = 3 To 63
  With Sheets("feuil" & Format(i, "00")).Range("C4:AC10,C12:AC18,C20:AC26,C28:AC34,C36:AC42")
    .ClearContents
    .Interior.ColorIndex = xlNone
  End With
Next

A+
 

job75

XLDnaute Barbatruc
Re : appliquer une macro a plusieurs feuilles

Re,

Précisions.

Sheets("feuil" & Format(i, "00")) devient successivement :

Sheets("feuil03") (attention, il y a un zéro)
Sheets("feuil04")
'--------------
Sheets("feuil62")
Sheets("feuil63")


Il y a bug si une feuille ainsi nommée n'existe pas.

S'il y a des "trous" dans la liste des feuilles, on peut mettre On Error Resume Next avant la boucle.

A+
 

highlander

XLDnaute Nouveau
Re : appliquer une macro a plusieurs feuilles

en gros sur l'onglet 1 j'ai le bouton
sur d'autres onglet de la couleur et de l'écrit

voici le code qui marche :

Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

If MsgBox("Voulez vous vider l'EDT ?", vbInformation + vbYesNo, "Voulez vous vider l'EDT ?") = vbYes Then



For CompteurDeFeuille = 3 To worksheets.Count
worksheets(CompteurDeFeuille).Range("C4:AC10").ClearContents
worksheets(CompteurDeFeuille).Range("C4:AC10").Interior.ColorIndex = xlNone
worksheets(CompteurDeFeuille).Range("C12:AC18").ClearContents
worksheets(CompteurDeFeuille).Range("C12:AC18").Interior.ColorIndex = xlNone
worksheets(CompteurDeFeuille).Range("C20:AC26").ClearContents
worksheets(CompteurDeFeuille).Range("C20:AC26").Interior.ColorIndex = xlNone
worksheets(CompteurDeFeuille).Range("C28:AC34").ClearContents
worksheets(CompteurDeFeuille).Range("C28:AC34").Interior.ColorIndex = xlNone
worksheets(CompteurDeFeuille).Range("C36:AC42").ClearContents
worksheets(CompteurDeFeuille).Range("C36:AC42").Interior.ColorIndex = xlNone
worksheets(CompteurDeFeuille).Range("C45:AC50").ClearContents
worksheets(CompteurDeFeuille).Range("C45:AC50").Interior.ColorIndex = xlNone

Next
Else
Exit Sub
End If

End Sub


j'ai dans un module 2 :

Sub reset()

End Sub


maintenant je veux reprendre ca et le mettre sur un autre fichier qui est en faite le bon fichier

le probleme c'est que sur le nouveau fichier, j'ai déja ca sur la page 1 :

Private Sub CommandButton1_Click()
For CompteurDeFeuille = 1 To Worksheets.Count
Worksheets(CompteurDeFeuille).Name = Worksheets(CompteurDeFeuille).Range("A1")
Next
End Sub

comment doije faire svp
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : appliquer une macro a plusieurs feuilles

Re,

Jusqu'à maintenant je fonctionnais sur la base de votre post #1 :

je voudrais qu'en doublecliquant sur le bouton la macro marche pour les feuil03 à feuil63

et à mon sens il valait mieux utiliser le nom des feuilles plutôt que leur index.

Mais si vous préférez utiliser leur index (variable CompteurDeFeuille), alors voyez cette macro, qui utilise le simple clic au lieu du double-clic :

Code:
Private Sub CommandButton1_Click()
Dim CompteurDeFeuille As Integer
For CompteurDeFeuille = 1 To Worksheets.Count
  Worksheets(CompteurDeFeuille).Name = Worksheets(CompteurDeFeuille).Range("A1")
  If CompteurDeFeuille > 2 Then
    With Worksheets(CompteurDeFeuille).Range("C4:AC10,C12:AC18,C20:AC26,C28:AC34,C36:AC42,C45:AC50")
      .ClearContents
      .Interior.ColorIndex = xlNone
    End With
  End If
Next
End Sub

A+
 

job75

XLDnaute Barbatruc
Re : appliquer une macro a plusieurs feuilles

Re,

Ah j'oubliais la MsgBox :

Code:
Private Sub CommandButton1_Click()
Dim CompteurDeFeuille As Integer
For CompteurDeFeuille = 1 To Worksheets.Count
  Worksheets(CompteurDeFeuille).Name = Worksheets(CompteurDeFeuille).Range("A1")
  If CompteurDeFeuille > 2 Then
    If CompteurDeFeuille = 3 Then
      If MsgBox("Voulez vous vider l'EDT ?", vbInformation + vbYesNo, "Voulez vous vider l'EDT ?") = vbNo Then Exit Sub
    End If
    With Worksheets(CompteurDeFeuille).Range("C4:AC10,C12:AC18,C20:AC26,C28:AC34,C36:AC42,C45:AC50")
      .ClearContents
      .Interior.ColorIndex = xlNone
    End With
  End If
Next
End Sub

A+
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 853
Membres
103 975
dernier inscrit
denry