Autres Macro trop longue

Panda79360

XLDnaute Nouveau
Bonjour,

Je veux d'un simple clic effacer le contenu de 53 cellules sur 30 onglets, étant novice j'avais écris ca qui fonctionnait sur 3 onglets en test mais sur les 30 onglets ca me met "Procédure trop grande", pourriez vous m'aider à la raccourcir svp, e=je vous en mets qu'un bout car j'ai répété pour les 30 onglets.

Les onglets concernés vont de 2 à 31 :

Sub CLEARALL()
ActiveWorkbook.Unprotect
If MsgBox("Voulez-vous effacer toutes les données du rapport ?", vbQuestion + vbYesNo + vbDefaultButton2, "Demande de confirmation") = vbYes Then
'Updateby Extendoffice
Sheets("RAPPORT DETAILLE").Range("D2").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("H2").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("H4").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("D4").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("D6").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("F8").ClearContents
Sheets("RAPPORT DETAILLE").Range("H8").ClearContents
Sheets("RAPPORT DETAILLE").Range("C9").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("F11").ClearContents
Sheets("RAPPORT DETAILLE").Range("H11").ClearContents
Sheets("RAPPORT DETAILLE").Range("C12").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("F14").ClearContents
Sheets("RAPPORT DETAILLE").Range("C15").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C19").ClearContents
Sheets("RAPPORT DETAILLE").Range("E19").ClearContents
Sheets("RAPPORT DETAILLE").Range("G19").ClearContents
Sheets("RAPPORT DETAILLE").Range("I19").ClearContents
Sheets("RAPPORT DETAILLE").Range("C20").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C24").ClearContents
Sheets("RAPPORT DETAILLE").Range("E24").ClearContents
Sheets("RAPPORT DETAILLE").Range("H24").ClearContents
Sheets("RAPPORT DETAILLE").Range("C25").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("G27").ClearContents
Sheets("RAPPORT DETAILLE").Range("C28").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("F30").ClearContents
Sheets("RAPPORT DETAILLE").Range("H30").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C32").ClearContents
Sheets("RAPPORT DETAILLE").Range("E32").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C34").ClearContents
Sheets("RAPPORT DETAILLE").Range("E34").ClearContents
Sheets("RAPPORT DETAILLE").Range("G34").ClearContents
Sheets("RAPPORT DETAILLE").Range("C35").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("H37").ClearContents
Sheets("RAPPORT DETAILLE").Range("H40").ClearContents
Sheets("RAPPORT DETAILLE").Range("C38").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C41").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C44").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("H46").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("E48").ClearContents
Sheets("RAPPORT DETAILLE").Range("G48").ClearContents
Sheets("RAPPORT DETAILLE").Range("I48").ClearContents
Sheets("RAPPORT DETAILLE").Range("G50").ClearContents
Sheets("RAPPORT DETAILLE").Range("I50").ClearContents
Sheets("RAPPORT DETAILLE").Range("G52").ClearContents
Sheets("RAPPORT DETAILLE").Range("I52").ClearContents
Sheets("RAPPORT DETAILLE").Range("G54").ClearContents
Sheets("RAPPORT DETAILLE").Range("I54").ClearContents
Sheets("RAPPORT DETAILLE").Range("C56").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("F56").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C58").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("F58").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("C60").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE").Range("B49").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Visible = True
Sheets("RAPPORT DETAILLE (2)").Range("D2").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H2").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H4").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("D4").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("D6").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("F8").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H8").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C9").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("F11").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H11").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C12").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("F14").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C15").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C19").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("E19").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("G19").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("I19").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C20").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C24").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("E24").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H24").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C25").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("G27").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C28").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("F30").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H30").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C32").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("E32").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C34").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("E34").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("G34").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C35").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H37").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H40").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C38").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C41").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C44").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("H46").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("E48").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("G48").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("I48").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("G50").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("I50").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("G52").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("I52").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("G54").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("I54").ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C56").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("F56").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C58").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("F58").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("C60").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Range("B49").MergeArea.ClearContents
Sheets("RAPPORT DETAILLE (2)").Visible = False
Sheets("RAPPORT DETAILLE (3)").Visible = True

Merci par avance,
 
Solution
Bonsoir Panda79360,

Les 53 lignes de code concernant la feuille "RAPPORT DETAILLE" peuvent s'écrire en 2 lignes :
VB:
Sheets("RAPPORT DETAILLE").Range("D2,H2,H4,D4,D6,F8,H8,C9,F11,H11,C12,F14,C15,C19,E19,G19,I19,C20,C24,E24,H24,C25,G27,C28,F30,H30,C32,E32") = ""
Sheets("RAPPORT DETAILLE").Range("C34,E34,G34,C35,H37,H40,C38,C41,C44,H46,E48,G48,I48,G50,I50,G52,I52,G54,I54,C56,F56,C58,F58,C60,B49") = ""
Faites de même pour les autres feuilles.

PS : pour les cellules fusionnées il faut que la cellule mentionnée soit celle située en haut à gauche de la plage.

Bonne nuit.

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Une proposition en pièce jointe. (pas sûr que ça marche... :()

VB:
Sub EffacerToutesLesFeuilles()
'
    EffacerUneFeuille ("RAPPORT DETAILLE")
    EffacerUneFeuille ("RAPPORT DETAILLE (2)")
'    etc.

End Sub

Sub EffacerUneFeuille(NomFeuille As String)
'
    Sheets(NomFeuille).Range("D2,H2,H4,D4,D6,F8,H8,C9,F11,H11,C12,F14,C15,C19,E19,G19,I19,C20,C24,E24,H24,C25,G27,C28,F30,H30,C32,E32").ClearContents
    Sheets(NomFeuille).Range("C34,E34,G34,C35,H37,H40,C38,C41,C44,H46,E48,G48,I48,G50,I50,G52,I52,G54,I54,C56,F56,C58,F58,C60,B49").ClearContents

End Sub
 

Pièces jointes

  • Panda.xlsm
    22.4 KB · Affichages: 6
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir Panda79360,

Les 53 lignes de code concernant la feuille "RAPPORT DETAILLE" peuvent s'écrire en 2 lignes :
VB:
Sheets("RAPPORT DETAILLE").Range("D2,H2,H4,D4,D6,F8,H8,C9,F11,H11,C12,F14,C15,C19,E19,G19,I19,C20,C24,E24,H24,C25,G27,C28,F30,H30,C32,E32") = ""
Sheets("RAPPORT DETAILLE").Range("C34,E34,G34,C35,H37,H40,C38,C41,C44,H46,E48,G48,I48,G50,I50,G52,I52,G54,I54,C56,F56,C58,F58,C60,B49") = ""
Faites de même pour les autres feuilles.

PS : pour les cellules fusionnées il faut que la cellule mentionnée soit celle située en haut à gauche de la plage.

Bonne nuit.
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour le forum,

Je n'avais pas vu le message de TooFatBoy, désolé.

Dans le même esprit on peut aussi écrire :
VB:
Dim adr1$, adr2$
adr1 = "D2,H2,H4,D4,D6,F8,H8,C9,F11,H11,C12,F14,C15,C19,E19,G19,I19,C20,C24,E24,H24,C25,G27,C28,F30,H30,C32,E32"
adr2 = "C34,E34,G34,C35,H37,H40,C38,C41,C44,H46,E48,G48,I48,G50,I50,G52,I52,G54,I54,C56,F56,C58,F58,C60,B49"
Sheets("RAPPORT DETAILLE").Range(adr1) = ""
Sheets("RAPPORT DETAILLE").Range(adr2) = ""
Sheets("RAPPORT DETAILLE (2)").Range(adr1) = ""
Sheets("RAPPORT DETAILLE (2)").Range(adr2) = ""
' etc
A+
 

TooFatBoy

XLDnaute Barbatruc
Je n'avais pas vu le message de TooFatBoy, désolé.
Il n'y a pas de problème. ;)
D'autant que Panda79360 ne semble pas non plus m'avoir vu, ni ici, ni sur son autre fil de discussion.

MonAvatarXLD.jpg
 
Dernière édition:

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel