macro pour effacer deux cellule sous condition

  • Initiateur de la discussion Initiateur de la discussion nicho
  • 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 !

nicho

XLDnaute Occasionnel
Salut à vous tous;
je vous explique mon problème
je veut que les cellules (F8 & F9) s'efface automatiquement si deux cellule sont identique (D5=F5)

nb: les cellules (F8 & F9) sont ouverte, { on peut pas mettre de fonction dans (F8 & F9) }

je met un exemple de ce que je souhaite faire

je vous remercie infiniment pour votre aide
 

Pièces jointes

Re : macro pour effacer deux cellule sous condition

Bonsoir et bienvenu sur le forum Nicho,

Voici ci-dessous la macro à écrire sur ton onglet concerné : "Feuil1"

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$D$5" Then
        If Target.Value = Range("F5") Then
            Range("D7") = ""
            Range("D8") = ""
            Range("D9") = ""
        Else
            Range("D7") = "Remplir les informations"
            Range("D8") = "Information 01"
            Range("D9") = "Information 02"
        End If
   End If
End Sub

Macro qui peut également s'écrire ainsi (plus courte) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$D$5" Then
        If Target.Value = Range("F5") Then
            For Ligne = 7 To 9
                 Range("D" & Ligne) = ""
            Next Ligne
        Else
            Range("D7") = "Remplir les informations"
            Range("D8") = "Information 01"
            Range("D9") = "Information 02"
        End If
   End If
End Sub

La seconde version est légèrement plus complexe, mais très formatrice car elle utilise la boucle For... To... Next..., pour éviter de répéter la ligne de code 3 fois!

Tu connais toutes les commandes utilisées, où tu as besoin de plus d'explication?

Bonne fin de semaine
Cordialement
 
Re : macro pour effacer deux cellule sous condition

salut et merci pour ta réponse chère Excel-lent mais c'est les cellules F8 et F9 que je veut effacer via une macro automatique conditionnel car je ne peut pas mette de condition dans ces cellules parce que l'utilisateur les remplis manuellement.

SVP aidez moi
 
Re : macro pour effacer deux cellule sous condition

Bonsoir Nicho,

Tu es sûr d'avoir compris les deux macros? Ou au moins la première?????


Car regarde la réponse à ta question :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$D$5" Then
        If Target.Value = Range("F5") Then
            Range("F8") = ""
            Range("F9") = ""
        End If
   End If
End Sub

Il suffisait de remplacer :
Range("D7") = ""
Range("D8") = ""
Range("D9") = ""

Par :
Range("F8") = ""
Range("F9") = ""

Et d'enlever la partie ci-dessous qui ne sert à rien, puisque tu veux l'effectuer via une fonction :
VB:
Else
     Range("D7") = "Remplir les informations"
     Range("D8") = "Information 01"
     Range("D9") = "Information 02"
 End If

Le but de ce forum est de répondre à vos questions mais aussi que vous compreniez la réponse. Vous permettant ainsi de progresser, et le cas échéant pouvoir réparer/améliorer/adapter la solution 😉

Donc si tu as des questions, n'hésite pas. Il n'y a pas de questions bêtes, juste des réponses idiotes.

Bonne fin de journée
Cordialement
 
Re : macro pour effacer deux cellule sous condition

je te remercie infiniment mon ami, j'avoue que j'ai pas bien compris cette macro qui marche a merveille, mais maintenant avec ton explication je me dit que j'avait la réponse à coté de moi et je voyais loin, je me son bête 🙄
merci merci merci mille fois
très bonne fin de soirée
 
Re : macro pour effacer deux cellule sous condition

Salut Nicho,

Voici l'explication de la macro :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
' La macro se lance automatiquement à chaque fois qu'une cellule est modifié sur l'onglet où se trouve la macro
   If Target.Address = "$D$5" Then
   'Si la cellule modifié est la cellule D5 alors ...
        If Target.Value = Range("F5") Then
        'Si le contenu de la cellule modifié : D5 et égale à la cellule F5 alors ...
            Range("F8") = ""
            'ne rien écrire dans la cellule F8 / sous-entendu effacer l'ancien contenu
            Range("F9") = ""
            'ne rien écrire dans la cellule F9 / sous-entendu effacer l'ancien contenu
        End If
   End If
End Sub

Bonne fin de soirée
Cordialement
 
- 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

Réponses
9
Affichages
506
Retour