Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !

michel2000

XLDnaute Occasionnel
Bonjour Forum;

Vous trouverez ci-dessous une partie d'une macro qui a pour but de "vider" les cellules tout en n'affectant pas les formules. Je dois vider plus de 24 feuilles. En utilisant l'enregistreur de macro j'ai obtenu ce qui suit (ne représente que 2 feuilles seulement).

Est-ce qu'il y a une autre façon d'écrire un code équivalent car je trouve que ce qui suit comporte une redondance et qu'il y a certainement une autre façon de coder le tout.

Merci de votre attention
Michel

Sheets("v_Novembre").Range("A3:g3").ClearContents
Sheets("v_Novembre").Range("N5:Q5").ClearContents
Sheets("v_Novembre").Range("A7:g100").ClearContents
Sheets("v_Novembre").Range("N5:Q5").ClearContents
Sheets("v_Novembre").Range("Q7:Q100").ClearContents
Sheets("v_Novembre").Range("k7:k100").ClearContents
Sheets("v_Novembre").Range("l7:l100").ClearContents
Sheets("v_Novembre").Range("m7:m100").ClearContents

Sheets("v_Decembre").Range("A3:g3").ClearContents
Sheets("v_Decembre").Range("N5:Q5").ClearContents
Sheets("v_Decembre").Range("A7:g100").ClearContents
Sheets("v_Decembre").Range("N5:Q5").ClearContents
Sheets("v_Decembre").Range("Q7:Q100").ClearContents
Sheets("v_Decembre").Range("k7:k100").ClearContents
Sheets("v_Decembre").Range("l7:l100").ClearContents
Sheets("v_Decembre").Range("m7:m100").ClearContents
 
Re : Vider cellules

Bonsoir


Et comme cela ?

Code:
Sub test2ok()
Dim s As Worksheet
For Each s In Worksheets
If s.Name Like "V_*" Or s.Name Like "D_*" Then
[B][COLOR="Blue"]s.Cells.SpecialCells(xlCellTypeConstants, 23).ClearContents[/COLOR][/B] ' excel 2000
's.UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers).ClearContents ' excel 2007
End If
Next
End Sub

J'ai testé sur ton fichier joint , çà marche non ?
 
Re : Vider cellules

Bonsoir vbacrumble,

Bon là c'est vrai, ça fonctionne avec le "s.Cells."

Il n'y a plus de données sur les feuilles et c'est très bien.

Avec le "s.UsedRange" ça ne fonctionnait pas malgré que j'utilise Excel 2007.
On ferme le dossier 🙂

Je te remercie beaucoup pour ton aide et ta patience. Je l'apprécie
Bonne fin de soirée
Michel
 
Re : Vider cellules autre question

Bonjour Forum et vbacrumble;

La macro fonctionne bien mais...

La macro efface toutes les données inscrites par l'usager et c'est parfait.

Mais comment conserver les entêtes de colonnes (ligne 3 et 4 de V_Janvier)
et celle de la feuille D_janvier (ligne 3).

Merci et bonne journée
Michel
 

Pièces jointes

Re : Vider cellules

Bonsoir

EDITION: j'ai essayer une autre méthode dans cette pièce jointe :Regarde la pièce jointe videcel.zip

PS: J'ai réduit le nombre de lignes à 20 pour alléger le fichier


Essaie cette nouvelle mouture

 
Dernière édition:
Re : Vider cellules

Bonjour vbacrumble;

BRAVO ! exactement ce que je désirais. Là mon programme (contenant 12 feuilles de ventes et 12 feuilles dépenses (12 mois)) fonctionne mais vraiment bien.

Là je vais étudier la macro ligne par ligne afin de bien comprendre le tout.

Un super de gros merci vbacrumble
Et bonne journée
Michel
 
Re : Vider cellules

Bonsoir Forum et vbacrumble;

Une toute petite question. Comme tu as limité le nombre de lignes " (...J'ai réduit le nombre de lignes à 20 pour alléger le fichier)", j'ai tenté de plusieurs façons à étendre à 150 lignes. Mais il y a quelque chose que je ne saisi pas et je n'arrive pas à réussir cette modification.

Pour que je comprenne bien, tu peux me dire de quelle façon et me noter par le fait même à quel endroit (quelle ligne) dans la macro?

Merci beaucoup et bonne fin de soirée
Michel
 
Re : Vider cellules

Bonjour


Voici la macro , plus les commentaires

Code:
Sub test5ok()
[COLOR="Green"]'déclarations[/COLOR]
Dim s As Worksheet, ck$, z$
Dim NL&, NC&, I&, j&, k&, L&
[COLOR="Green"]'figer écran + mode calcul manuel[/COLOR]
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
[COLOR="Green"]'début effacement[/COLOR]
For Each s In Worksheets[COLOR="Green"]'Pour tous les feuilles du classeur[/COLOR]
NL = s.UsedRange.SpecialCells(xlLastCell).Row
[COLOR="Green"]'On détermine le nombre de lignes utilisées :NL[/COLOR]
NC = s.UsedRange.SpecialCells(xlLastCell).Column
[COLOR="Green"]' le nombre de colonnes utilisées : NC[/COLOR]
    ck = Left(s.Name, 2)
[COLOR="Green"]' on prend les deux caractères de gauche du nom des feuilles[/COLOR]
 z = Chr(61)[COLOR="Green"] ' le caractère ASCII 61 correspond au signe égal[/COLOR]
    Select Case ck[COLOR="Green"] 'si ck[/COLOR]
        Case "D_" [COLOR="Green"]' est égal à D_[/COLOR]
            For I = 4 To NL[COLOR="Green"] 'alors on regarde de la ligne 4 à NL[/COLOR]
                For j = 1 To NC'[COLOR="Green"] et de la colonne 1 à NC[/COLOR]
[COLOR="Green"]' si le premier caractère de chaque cellule est différent de z (z valant = )[/COLOR]
                    If Left(s.Cells(I, j).Formula, 1) <> z Then
                        s.Cells(I, j).ClearContents[COLOR="Green"]'  on efface le contenu de la cellule[/COLOR]
                    End If
                Next j
            Next I
        Case "V_" [COLOR="Green"]'ici on fait de même pour les feuilles V_[/COLOR]
            For k = 6 To NL '[COLOR="Green"]sauf qu'on commence à la ligne 6[/COLOR]
                For L = 1 To NC
                    If Left(s.Cells(k, L).Formula, 1) <> z Then
                        s.Cells(k, L).ClearContents
                    End If
                Next L
            Next k
    End Select
Next
[COLOR="Green"]'fin effacement[/COLOR]

[COLOR="Green"]'défiger écran + mode calcul automtique[/COLOR]
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
 
Re : Vider cellules

Bonsoir vbacrumble;

Je ne peux rien demander de plus. Alors là, tes commentaires me sont vraiment utiles. Je comprend maintenant.
Je vais garder le tout précieusement pour références.

Merci beaucoup et surtout merci pour les commentaires.
Bonne fin de soirée
Michel
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…