Effacer contenu d'une cellule selon valeur d'une autre cellule

Bonjour,

Premièrement, je dois avouer que c'est mon premier message.

Je suis généralement très à l'aide avec Excel et ses formules amis tellement nul en VBA!

Seulement, certaine option ne sont disponible que par VBA alors, me voici.

J'ai une liste de donnée qui s'allonge de jour en jour.

Chaque utilisateur, rentre les données dans les colonnes A à K.

Puis lorsque l'action sera fait, un autre utilisateur changera (via une liste de la validation de donnée) la colonne en L pour Oui ou Infaisable.

J'ai besoin d'effacer le NE (Contenu de la colonne E) lorsque "oui" sera sélectionné dans la colonne L.

Mon problème c'est que la macro doit être fait:

  • de façon automatique;
  • selon la référence de la ligne;

J'ai fouillé et j'ai compris (c'est un bien grand mot) que je devrai surement utiliser ceci dans mon code:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(...) Then

().ClearContents

End If

End Sub

Mais en fait, j'y perds mon latin avec les Dim, As, Range, Target, Column, ... etc

J'aimerais vraiment comprendre ce que je fais en tout premier lieu.

Votre aide me sera très précieuse si jamais vous avez quelques minutes à m'accorder pour me déprendre!

Merci beaucoup et bonne journée

PS: à noter que le fichier Excel est seulement en référence et ne contient pas toutes les informations mais les positions des informations sont exacte.

Bonjour Twino2_99 le forum

ton fichier en retour

a+

Papou

220twino2-99-v1.xlsm (16.15 Ko)

Bonjour,

A mettre dans le module de la feuille concernée. Commentaires dans le code :

Private Sub Worksheet_Change(ByVal Target As Range)

    'gestion de la zone d'impact
    If Target.Column <> 12 Then Exit Sub 'seulement la colonne L
    If Target.Count > 1 Then Exit Sub 'une seule cellule
    If Target.Row = 1 Then Exit Sub 'évite la ligne d'entêtes

    'si la valeur de la cellule ciblé est différente de "oui", fin
    'la fonction UCase() (tout en majuscule) permet de s'affranchir de l(orthographe du mot
    If UCase(Target.Value) <> "OUI" Then Exit Sub

    'suspend le gestionnaire d'événements...
    Application.EnableEvents = False

    'applique la modification (vide la cellule)
    Target.Offset(, -7).Value = ""

    '...puis rétabli la gestion
    Application.EnableEvents = True

End Sub

Wow, merci pour les explications et pour le code.

Si je comprends bien:

- dans cette partie je peux changer pour:

If Target.Row < 6 Then Exit Sub puisque ma première ligne de la liste commence plutôt à A7?

- Target.Offset signifie la coordonné à partir de la Target.Colomn?

J'ai compris qu'en premier tu programmais la boucle en premier pour que le système ne se perde pas en essaie constant.

Par contre, je n'ai pas saisie le pourquoi du gestionnaire d'événement... je crois que je vais faire quelques petites recherches lol.

Merci je vais tester tantôt le tout.

Bonjour Twino2_99 le forum

ton fichier en retour

a+

Papou

Je susi allé voir la feuille et je constate qu'on peut arriver à ses fins de diverses moyens!

Pourquoi avoir deux code différend? l'une dans le Whorksheet et l'autre dans module?

Merci

Re,

Pourquoi avoir deux code différend? l'une dans le Whorksheet et l'autre dans module?

Le code que je t'ai donné fonctionne de façon automatique à partir du moment où tu changes une valeur dans la feuille. il s'exécute d'un bout à l'autre si tu changes cette valeur dans la colonne L et comme tu le dis en ayant adapté l'instruction :

If Target.Row = 1 Then Exit Sub

pour commencer seulement à la ligne 7 avec :

If Target.Row < 6 Then Exit Sub

Pourquoi dans le module de la feuille ? Et bien tout simplement parce que les procédures événementielles pour pouvoir être exécutées doivent se trouver dans le module concerné !

La procédure donné par papou (que je salut bien !) doit être exécutée manuellement (à l'aide d'un bouton en l'ayant attachée à ce dernier, Onglet "Développeur" ---> bouton "Macros", F5 dans le VBE, etc...)

Bonjour Theze le forum

non je l'ai mis sur un événementiel le lancement de la macro, dans la feuille pour traiter toutes les lignes au cas ou!!!

a+

Papou

Ho Yess

Les tests sont concluant!

Merci pour tout, mon problème est maintenant résolut

Rechercher des sujets similaires à "effacer contenu valeur"