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

Effacer le contenu d'une ligne en fonction de la valeur d'une cellule

  • Initiateur de la discussion Initiateur de la discussion Doezli
  • Date de début Date de début

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 !

Doezli

XLDnaute Nouveau
Bonjour,

Je travaille sur un fichier que je souhaiterais automatiser. Il s'agit d'un tableau de données occupant constamment la plage A29 à BR329 (la ligne 29 contient les intitulés de colonnes et les données commencent à partir de la ligne 30).

Ce que je souhaite faire :

Si la valeur de la cellule E30 est égale à "0", je veux supprimer le contenu des cellules (pas la ligne) allant de B30 à BR30.
Si la cellule E31 est égale à "0", je veux supprimer le contenu des cellules (pas la ligne) allant de B31 à BR31 et ainsi de suite jusqu'à la ligne 329.

Je ne parviens pas à écrire un code qui s'exécute correctement car je débute en la matière. Si cela parle à quelqu'un, je le remercie vivement pour son aide!

Cordialement,
 
Re : Effacer le contenu d'une ligne en fonction de la valeur d'une cellule

Bonjour,

Je dirais, à placer dans le module de la feuille de calcul :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E30:E329")) Is Nothing Then
    If Target = "" Then
        Range("B" & Target.Row & ":BR" & Target.Row).ClearContents
    End If
End If
End Sub
 
Re : Effacer le contenu d'une ligne en fonction de la valeur d'une cellule

Serait-il possible d'obtenir le même résultat en utilisant un système de filtre. Par exemple, si je filtre la colonne E avec le critère "0" et que je supprime le contenu des cellules visibles (sur la plage B30:BR329 mais uniquement les cellules visibles après application du filtre). Comment dois-je écrire cela en VBA ?

Merci.
 
Re : Effacer le contenu d'une ligne en fonction de la valeur d'une cellule

Je crains de pas avoir compris la question ...

Effacer la zone filtrée en VBA ?
Code:
Range("_FilterDataBase").Clearcontents
Voilà, voilà

Mais je crains de ne pas avoir compris la question... ?
 
Re : Effacer le contenu d'une ligne en fonction de la valeur d'une cellule

Comme je débute, j'ai conscience de ne pas être très clair. Je n'ai aucune formation en informatique et encore moins en programmation...
En fait, je veux créer cette macro dans le cadre professionnel et il me faudra l'expliquer à mon responsable. Or comme je débute, je n'ai pas compris votre code vba dans son intégralité... C'est pourquoi je vous demande s'il n'y aurait pas moyen de faire une macro en utilisant le système de filtre (que je saurai réexpliquer).
Je voudrais donc que la macro applique un filtre sur la colonne E, ensuite qu'elle sélectionne les valeurs égales à 0 et qu'elle efface le contenu des lignes ainsi filtrées. Est-ce possible ?

Merci pour votre aide dans tous les cas!
 
Re : Effacer le contenu d'une ligne en fonction de la valeur d'une cellule

Bonsoir,

Ca doit être possible oui. Tu ne donnes pas assez de précisions (un petit fichier exemple vaut souvent mieux que beaucoup d'explications vagues) mais par rapport à ce que j'ai cru comprendre, tu peux essayer de tester ceci :
VB:
Sub test()
Dim c As Range
    Range("E2").AutoFilter Field:=2, Criteria1:="=A*" 'Filtre sur la 5ème colonne du tableau qui comprend E2 des cellules qui commencent par la lettre A
    For Each c In Range("_FilterDataBase").SpecialCells(xlCellTypeVisible)
        If c = 0 Then ' cherche les 0 dans le tableau une fois le filtre sur la colonne E appliqué
            c.ClearContents 'on les efface"
        End If
    Next c
    Range("E7").AutoFilter
End Sub

Ce code est à placer dans un module standard (Alt+F11 pour ouvrir VBE, Insertion/Module et y placer le code...)
 
Re : Effacer le contenu d'une ligne en fonction de la valeur d'une cellule

Bonsoir Doezli, Softmamma, le fil, le forum

Doezli
Le plus simple pour un aide efficace:
C'est de joindre un fichier exemple (sans données confidentielles) avec :
• ce tu as (AVANT la macro)
• puis le résultat souhaité (APRÈS la macro)

Pour ce faire:
1) Édites ton message en cliquant sur Modifier le message
2 puis choisis dans Options complémentaires -> Gérer les pièces jointes
 
Dernière édition:
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…