Effacer le contenu des cellules non vérouillés

Hello !

J'ai un tableau excel qui contient des cellules vérouillées et d'autres ouvertes à la saisie.

Je cherche une solution pour que le contenu des cellules non vérouillées soit effacé en fontion du contenu d'une autre cellule.

J'ai une feuille qui contient 300 lignes. Certaines de ces lignes sont "quittancées" par un X à la dernière collone (G) de la feuille.

J'aimerais pouvoir effacer le contenu des cellules en fonction du X de la collone G.

Par excemple :

Le contenu des cellules A1, B1 et D1 et G1 doit être effacé si la cellule G1 contient un X. Les cellules C1, E1 et F1 sont protégées car elles contiennent des formules.

J'aimerais que cela s'applique à toute la feuille.

Quelqu'un peut m'aider ?

Merci infiniment.

Bonjour et bienvenue,

Peux-tu envoyer la feuille, afin de tester

Amicalement

Claude

Salut !

Merci pour ta réactivité !

Voici un exemple du fichier.

J'espère que tu pourras m'aider.

A +

Bonjour

Regarde si le code de ce fichier correspond à ton attente :

Amicalement

Nad

Merci Nad !

Ca pourrait effectivement me convenir mais je n'arrive pas à reproduire le code sur le fichier original.

Je me permets de te le remettre ci-joint en espérant que tu puisses refaire la macro sur ce fichier.

Les cellules A à K, O et Q et U ne sont pas protégées. Toutes les autres oui.

A + et encore Merci.

Re

Il aurait été plus simple que tu me donnes le mot de passe de la protection.

Je l'ai fait sauté et remplacé par : Maurinho78

Pense à le modifier dans la feuille puis dans le code.

Amicalement

Nad

Bonsoir à tous,

Autre façon avec filtre élaboré,

code + long mais + rapide si beaucoup de lignes

Mot de passe à régler

Sub EffaceX()
If Application.CountA(Range("u:u")) < 4 Then Exit Sub
Dim Lg%, Plg As Range
    Application.ScreenUpdating = False
    ActiveSheet.Unprotect Password:="Maurinho78"
    Range("n2") = "=u18=""x""" 'critère filtre

    Lg = Range("L65536").End(xlUp).Row
    Set Plg = Range("a17:u" & Lg)
    '--- filtre
    Plg.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Range("n1:n2"), Unique:=False
    '--- efface
    Set Plg = Plg.Offset(1, 0).SpecialCells(xlCellTypeVisible)
    Plg.SpecialCells(xlCellTypeConstants, 3).ClearContents
    Range("n2").ClearContents
        On Error Resume Next
        ActiveSheet.ShowAllData
    ActiveSheet.Protect Password:="Maurinho78"
End Sub

Salut Nad, j'ai repris ton fichier

Amicalement

Claude

édit: Ajouté ce contrôle au début

If Application.CountA(Range("u:u")) < 4 Then Exit Sub
100effacelignesx.zip (23.62 Ko)

Merci Nad !

C'est effectivement ce que je voulais.

Merci beaucoup pour ton coup de main.

A+

Bonjour à tous,

Je souhaiterais effacer le contenu de toutes les cellules qui ne sont pas verrouillées dans ma feuille, sans condition tel le "X" de l'exemple précédant.

En fait, ce sont des cartes de pointages qu'il faut remplir chaque mois, donc je voudrais supprimer toutes les heures pointées (ce sont les seules cellules non verrouillées, colonnes "HN" "HS10" "HS30" "HSf") pour réutiliser le fichier directement le mois suivant.

Je débute juste dans les macro Excel et donc n'y arrive pas...

Merci de votre aide,

cordialement

Thomas

Rechercher des sujets similaires à "effacer contenu verouilles"