Effacer contenu d'une cellule selon valeur d'une autre cellule Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
T
Twino2_99
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 11 juillet 2018
Version d'Excel : 2010

Message par Twino2_99 » 11 juillet 2018, 06:13

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.
Selon condition.xlsx
Épuré ;)
(9.96 Kio) Téléchargé 5 fois
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 4'282
Appréciations reçues : 497
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 11 juillet 2018, 06:53

Bonjour Twino2_99 le forum
ton fichier en retour
a+
Papou :)
Twino2_99 V1.xlsm
(16.15 Kio) Téléchargé 15 fois
1 membre du forum aime ce message.
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 11 juillet 2018, 06:55

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
1 membre du forum aime ce message.
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
T
Twino2_99
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 11 juillet 2018
Version d'Excel : 2010

Message par Twino2_99 » 11 juillet 2018, 12:14

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.
T
Twino2_99
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 11 juillet 2018
Version d'Excel : 2010

Message par Twino2_99 » 11 juillet 2018, 12:18

paritec a écrit :
11 juillet 2018, 06:53
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
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 11 juillet 2018, 14:47

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...)
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 4'282
Appréciations reçues : 497
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 11 juillet 2018, 16:16

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 :)
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
T
Twino2_99
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 11 juillet 2018
Version d'Excel : 2010

Message par Twino2_99 » 11 juillet 2018, 20:08

Ho Yess

Les tests sont concluant!

Merci pour tout, mon problème est maintenant résolut
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message