[VBA] Aide pour un script
Résolu
thepatatane
Messages postés
180
Date d'inscription
Statut
Membre
Dernière intervention
-
thepatatane Messages postés 180 Date d'inscription Statut Membre Dernière intervention -
thepatatane Messages postés 180 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vous explique mon cas.
Dans un premier tableau j'ai une liste de noms avec une valeur devant chaque noms.
Dans une autres feuille, j'ai un tableau avec plusieurs "validation des données" qui me permettent d'avoir une liste déroulante de tous les noms. J'aimerais que quand on choisissent un nom, un petit message avec la valeur qui lui correspond s'affiche (et que si la valeur est 0, il n'y est pas de message).
J'ai pensé à un commentaire dans la cellule du nom. J'ai commencé à faire un petit macro en VBA sur une feuille vierge pour tester. Voila :
Je n'arrive pas : a masquer le commentaire; mettre la valeur de la cellule correspondante; le faire pour plusieurs ligne de nom
Si je me suis mal exprimé ou que certains points ne sont pas claires n'hésitez pas. Et si vous avez d'autres propositions pour résoudre mon problème je vous écoute.
Un grand merci d'avance.
Bonne soirée.
Edit 1 :
Je vous explique mon cas.
Dans un premier tableau j'ai une liste de noms avec une valeur devant chaque noms.
Dans une autres feuille, j'ai un tableau avec plusieurs "validation des données" qui me permettent d'avoir une liste déroulante de tous les noms. J'aimerais que quand on choisissent un nom, un petit message avec la valeur qui lui correspond s'affiche (et que si la valeur est 0, il n'y est pas de message).
J'ai pensé à un commentaire dans la cellule du nom. J'ai commencé à faire un petit macro en VBA sur une feuille vierge pour tester. Voila :
Sub Test()
If Range("J7").Value Like "0" Then
Range("I7").Comment.Visible = False
Else:
Range("I7").Comment.Text Text:="valeur de la cellule J7"
End If
End Sub
Je n'arrive pas : a masquer le commentaire; mettre la valeur de la cellule correspondante; le faire pour plusieurs ligne de nom
Si je me suis mal exprimé ou que certains points ne sont pas claires n'hésitez pas. Et si vous avez d'autres propositions pour résoudre mon problème je vous écoute.
Un grand merci d'avance.
Bonne soirée.
Edit 1 :
Sub Test()
If Range("J7").Value Like "0" Then
Range("I7").Comment.Delete
Else:
Range("I7").AddComment
Range("I7").Comment.Text Text:="valeur"
End If
End Sub
A voir également:
- [VBA] Aide pour un script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Excel compter cellule couleur sans vba - Guide
- Script cmd - Guide
3 réponses
Bonsoir,
Pour moi, ce que tu demandes n'est pas clair... Je n'ai pas compris ce que tu veux comme message. Parce que afficher ce que tu es en train de choisir, je ne vois pas bien l'intérêt...
m@rina
Pour moi, ce que tu demandes n'est pas clair... Je n'ai pas compris ce que tu veux comme message. Parce que afficher ce que tu es en train de choisir, je ne vois pas bien l'intérêt...
m@rina
Bonjour,
En effet, sans les positons des différents tableaux et liste de validation, pas simple, mais code a mettre dans VBA de la feuille en adaptant a vos tableaux
si j'ai bien compris votre besoin, une façon de faire:
En effet, sans les positons des différents tableaux et liste de validation, pas simple, mais code a mettre dans VBA de la feuille en adaptant a vos tableaux
si j'ai bien compris votre besoin, une façon de faire:
Private Sub Worksheet_Change(ByVal Target As Range) 'liste de validation de donnees If Not Application.Intersect(Target, Range("C1:C7")) Is Nothing And Target <> "" Then 'recherche dans table de noms la ligne pour "voir" la valeur de la cellule colonne suivante Ln = Application.WorksheetFunction.Match(Target, Range("A1:A7"), 0) If Range("B" & Ln).Value = 0 Then Target.Comment.Delete 'efface le commentaire Else: 'creation commentaire avec effacement pour mise a jour si changement de valeur With Range("C" & Target.Row) .Comment.Delete .AddComment .Comment.Text Text:=CStr(Range("B" & Ln)) .Comment.Visible = False End With End If End If End Sub