[Résolu] Amélioration de lignes de Code VBA (sélection pour effacement-reset)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Webperegrino

XLDnaute Impliqué
Supporter XLD
Le Forum,
Rebonjour,
J'ai composé une ligne pour vidanger des valeurs de plusieurs zones de cellules.
J'ai été amené à envisager une extension des zones (en nombre de lignes à vider).

Vous trouverez ci-dessous mon cheminement de conception de la codification.
Je souhaite bénéficier de vos connaissances pour obtenir, si possible, la conception d'une phase n° 3 encore plus réduite que ce que j'ai appliqué et qui fonctionne déjà bien.

Phase 1 :
VB:
…
Range("C7:E44,H7:J44,M7:O44,R7:T44,W7:Y44,AB7:AD44,AG7:AI44,AL7:AN44,AQ7:AS44,AV7:AX44"). ClearContents
…

Phase 2, pour étendre la zone à traiter :
VB:
…
dl = Sheets("SAISIE").Cells(Application.Rows.Count, 2).End(xlUp).Row
Range("C7:E" & dl).ClearContents
Range("H7:J" & dl).ClearContents
Range("M7:O" & dl).ClearContents
Range("R7:T" & dl).ClearContents
Range("W7:Y" & dl).ClearContents
Range("AB7:AD" & dl).ClearContents
Range("AG7:AI" & dl).ClearContents
Range("AL7:AN" & dl).ClearContents
Range("AQ7:AS" & dl).ClearContents
Range("AV7:AX" & dl).ClearContents
…

Merci à l’avance pour votre partage de connaissance,
Webperegrino
 
Dernière édition:
Re : Amélioration de lignes de Code VBA (sélection pour effacement-reset)

Bonjour

Tu as au moins deux solutions différentes:
VB:
With Sheets("SAISIE")
    dl = .Cells(.Rows.Count, 2).End(xlUp).Row
    For i = 3 To 48 Step 5
        .Range(.Cells(7, i), .Cells(dl, i + 3)).ClearContents
    Next i
End With
ou

VB:
Sheets("SAISIE").Range("C7:E" & dl & ",H7:J" & dl & ",M7:O" & dl & ",R7:T" & dl & ",W7:Y" & dl & ",AB7:AD" & dl & ",AG7:AI" & dl & ",AL7:AN" & dl & ",AQ7:AS" & dl & ",AV7:AX" & dl & "").ClearContents

Cordialement
 
Re : Amélioration de lignes de Code VBA (sélection pour effacement-reset)

Le Forum,
Bonjour Efgé,
C'est justement sur la deuxième composition que je bloquais.
Merci beaucoup pour ta proposition que j'applique immédiatement. Ça fonctionne avec ce qui suit.
Juste une précision pour les autres lecteurs : dl est calculée sur la Feuille SAISIE.
Dans la feuille où je purge on retire tout simplement l'expression "Sheets("SAISIE")." dans la ligne Sheets("SAISIE").Range("C7:E" & dl & ",H7... ... ).ClearContents
Cela donne donc Range("C7:E" & dl & ",H7... ... ).ClearContents
Merci encore,
Webperegrino
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour