XL 2021 séparateur de liste

clausen

XLDnaute Occasionnel
Bonjour

dans le code suivant quelle est l'erreur ?

Je veux effacer dans les feuilles 1 2 et 3 les cellules A1:F10


Sub test()
Sheets("feuil1,feuil2,feuil3").Select
Range("A1:F10").Select
Selection.ClearContents
End Sub


Merci d’avance pour votre réponse et bonne journée
 

Dudu2

XLDnaute Barbatruc
Bonjour,
VB:
Sub Test()
    Call EffacePlage("A1:F10", Sheets(1), Sheets(2), Sheets(3))
End Sub

Sub EffacePlage(Plage As String, ParamArray TabFeuilles() As Variant)
    Dim i As Integer
 
    For i = LBound(TabFeuilles) To UBound(TabFeuilles)
        TabFeuilles(i).Range(Plage).ClearContents
    Next
End Sub

Edit: Tu peux passer autant de feuilles que tu veux en arguments.
 
Dernière édition:

clausen

XLDnaute Occasionnel
ça joue pas

Sub macro()

Range("D4:F65").Select
Selection.ClearContents

Range("I4:I34").Select
Selection.ClearContents
Range("K4:K34").Select
Selection.ClearContents
Range("M4:M34").Select
Selection.ClearContents

Range("U4:T34").Select
Selection.ClearContents


Call EffacePlage("D4:F65", Sheets(Janvier), Sheets(Février), Sheets(Mars), Sheets(Avril), Sheets(Mai), Sheets(Juin), Sheets(Juillet), Sheets(Août), Sheets(Septembre), Sheets(Octobre), Sheets(Novembre), Sheets(Décembre))

End Sub


La première partie fonctionne la fonction Call efface ????
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Si Janvier, Février, ..., Décembre sont des noms de feuilles, il faut les mettre entre double-quotes.
"Janvier", "Février", ..., "Décembre"

De plus tu n'as pas besoin de sélectionner le Range pour y faire un ClearContents.
Et un Range il faut toujours le qualifier. Il appartient à une feuille.
With <Feuille>
.Range("D4:F65").ClearContents ça suffit
End With
 
Dernière édition:

clausen

XLDnaute Occasionnel
Merci tout le monde . J'ai utilisé la version de "mapomme" et tout fonctionne.

Je me pose une question si il y a pas de problème au changement d'année

Sub macro()
For i = 1 To 12: Sheets(Format(CDate(i & "/2000"), "mmmm")).Range("D4:F65").ClearContents: Next i
For i = 1 To 12: Sheets(Format(CDate(i & "/2000"), "mmmm")).Range("I4:I34").ClearContents: Next i
For i = 1 To 12: Sheets(Format(CDate(i & "/2000"), "mmmm")).Range("K4:K34").ClearContents: Next i
For i = 1 To 12: Sheets(Format(CDate(i & "/2000"), "mmmm")).Range("M4:M34").ClearContents: Next i
For i = 1 To 12: Sheets(Format(CDate(i & "/2000"), "mmmm")).Range("Q4:T34").ClearContents: Next i

End Sub



Bonne soirée à tous
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Je me pose une question si il y a pas de problème au changement d'année
Pas de problème puisque format(...) ne retourne que le mois en texte. L'année n'a donc pas d'importance.

On peut écrire l'effacement en une seule instruction:
VB:
Sub macro()
Dim i As Long
For i = 1 To 12: Sheets(Format(CDate(i & "/2000"), "mmmm")).Range("D4:F65,I4:I34,K4:K34,M4:M3,Q4:T34").ClearContents: Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly