XL 2016 RESOLU: Ouvrir un formulaire en cliquant sur une cellule

Mulder

XLDnaute Junior
Bonjour,

Je souhaite pouvoir ouvrir un formulaire en cliquant sur une cellule.
Je m'explique :
- j'ai une base de données, sommaire, qui contient des codes de produits en colonne A ;
- je souhaite, en cliquant sur le logo en colonne B, afficher un UserForm qui m'affiche les caractéristiques du produit (caractéristiques contenues dans une autre feuille) ;
- l'idée est donc que le formulaire se lance en cliquant sur la cellule, et également qu'il soit capable de se remplir en fonction de la valeur de la colonne d'à côté ;

L'exemple ci-joint pour mieux me comprendre.
Je n'ai pas codé le UserForm pour l'instant, l'idée est déjà que dans un premier temps, on puisse le lancer (en cliquant sur B1) et que s'y affiche les caractéristiques relatives au code produit en A1. Le reste, je saurai faire.

Edit : il va de soi que, comme la liste de codes peut s'allonger, je ne vais pas créer une macro par article? Je pense que l'on peut automatiser cela.

D'avance merci !!
 

Fichiers joints

vgendron

XLDnaute Barbatruc
Hello

en mettant ce code dans la feuille Feuill1
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
UserForm1.Show
End Sub
 

Mulder

XLDnaute Junior
Bonjour vgendron,

Merci pour ta réponse.
Je viens de tester en adaptant à mon fichier, ça fonctionne mais... (faut bien compliquer les choses) :
J'ai des sauts dans ma base de donnée, où les lignes sont vides.
Je pensais adapter de cette manière :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column <> 8 And Target.Value <> "" Then Exit Sub
UserForm1.Show
End Sub
Mais du coup ça fonctionne n'importe où... Bizarre si je conditionne avec "And" ?
Deuxième chose, comment j'affiche dans le UserForm, le code article de la case Ax (où x est la ligne où je clique) dans le Label2, qui me permettra d'alimenter le reste des informations ?
 

vgendron

XLDnaute Barbatruc
essaie avec
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column <> 8 or Target.Value = "" Then Exit Sub
UserForm1.Show
End Sub
:-D
 

Mulder

XLDnaute Junior
Impeccable pour la première partie des points en suspens.

Reste à gérer : "Deuxième chose, comment j'affiche dans le UserForm, le code article de la case Ax (où x est la ligne où je clique) dans le Label2, qui me permettra d'alimenter le reste des informations ?"

Une idée ?
 

Mulder

XLDnaute Junior
Bon, je pense avoir trouvé en tâtonnant :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column <> 2 Or Target.Value = "" Then Exit Sub
    UserForm1.Label10.Caption = Target.Offset(0, -1).Value
    UserForm1.Show
End Sub
Ca fonctionne a priori sans problèmes...
Merci vgendron pour tes indications qui m'ont débloqué pour le reste !!
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas