Macro pour supprimer contenu cellule selon donnée d'une autre

Bonjour,

J'ai un tableau "SYSTEME CLASSIFICATION" où j'ai une désignation en liste déroulante en F et une quantité en G, je voudrais par exemple, que si le contenue en F4 est vide ou égale à "EMPLACEMENT INEXISTANT" que le contenu en G4 et F4 se vide. et je voudrais que cela s'applique à toutes les lignes de mon tableau. Pouvez vous m'aider svp?

Merci d'avance

Bonjour

Code Module

Sub Purge()
Dim Cel As Range
For Each Cel In Range("F3", Range("F3").End(xlDown))
If Cel = "EMPLACEMENT INEXISTANT" Or IsEmpty(Cel) Then
Cel.ClearContents
Cel.Offset(0, 1).ClearContents
End If
Next Cel
End Sub

Sur le fichier, tu cliques sur la cellule Jaune "PURGER"

Cordialement

Merci de votre solution ! J'aimerai que cette macro fonctionne automatiquement pour tout mon tableau au lieu de purger manuellement. Comment faire? J'ai mit le code dans Feuil3 sous cette forme:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Cel As Range

For Each Cel In Range("F3", Range("F3").End(xlDown))

If Cel = "EMPLACEMENT INEXISTANT" Or IsEmpty(Cel) Then

Cel.ClearContents

Cel.Offset(0, 1).ClearContents

End If

Next Cel

End Sub

Peut être qu'il faudrait faire une boucle? Merci d'avance!

Bonjour

J'aimerai que cette macro fonctionne automatiquement pour tout mon tableau

Oui, mais quel doit être l'élément déclencheur du code ?

L'ouverture du fichier? L'enregistrement? La sélection de la feuille?

Un exemple: Ici, la purge se fait lors de la sélection de la feuille avec ce code de Feuille qui déclenche la macro "Purge"

Private Sub Worksheet_Activate()
Call Purge
End Sub

Cordialement

Je voudrais que cette macro soit active dès l'ouverture du fichier pour que le contenu des cellules de la colonne G soit modifier automatiquement.

Cordialement,

Bonjour

Code dans This WorkBook

Private Sub Workbook_Open()
Sheets("SYSTEME CLASSIFICATION").Activate
Call Purge
End Sub

Cordialement

Bonjour,

Je me suis mal exprimé, je voudrais que la macro soit active constamment, d'où mon idée d'intégrer une boucle afin que je n'ai plus besoin d'appuyer sur un bouton ou de ré-ouvrir le fichier. Merci j'ai fait un grand pas vers ma solution!

Bonjour

d'où mon idée d'intégrer une boucle

On revient à l'élément déclencheur car une macro ne peut s'activer que quand tu lui dis de se déclencher avec une instruction précise.

Voir ma réponse précédente sur le sujet.

Cordialement

Bonjour,

J'ai finalement choisi la méthode avec le bouton pour purger les colonnes, j'ai essayé d'adapter le même principe pour les autres colonnes (h et j), en rajoutant des boutons en plus. Mais je remarque que ma macro et bouton lié à la colonne J fait burger mon fichier. Savez-vous d'où vient mon problème?

Bien cordialement,

Bonjour

Savez-vous d'où vient mon problème?

Oui. Tu testes sans aucune valeur en colonne J.

Le test se fait alors inutilement sur toute la colonne vide.

Donc, modification du Code

Sub purge3()
Dim Cel As Range, Val
'On teste le nombre de valeurs de la colonne
Val = Application.WorksheetFunction.CountA(Range("J3", Range("J3").End(xlDown)))
'Si le nombre est de 0, (colonne vide), la macro s'arrête.
If Val = 0 Then Exit Sub
For Each Cel In Range("J3", Range("J3").End(xlDown))
If Cel = "EMPLACEMENT INEXISTANT" Or IsEmpty(Cel) Then
Cel.ClearContents
Cel.Offset(0, 1).ClearContents
End If
Next Cel
End Sub

Cordialement

Rechercher des sujets similaires à "macro supprimer contenu donnee"