Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Code vba pour ouverture d'un userform

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Maya1966

XLDnaute Nouveau
Bonjour,

Je voudrais qu'un userform s'ouvre lorsque je selectionne une cellule de la colonne A et que la cellule adjacente dans la colonne B comporte la valeur 0

Auriez-vous une piste en VBA ?

Merci d'avance pour votre aide

Olivier
 
Bonjour Eric,

Merci pour ta prompte réponse et pour ton aide.
le code fonctionne très bien, cependant j'aurais aimer que le Userform s'ouvre après avoir choisi une option dans la liste déroulante de la colonne A et qui selon la selection va afficher une valeur dans la colonne B et si celle-ci et zéro, alors le Userform s'ouvre.
j'ai créé l'exemple dans la feuille du fichier joint

merci d'avance 🙂

Maya1966
 

Pièces jointes

Bonjour le fil
Bonjour Philippe

Il est vrai que assez souvent, les questions se finalisent en plusieurs étapes 🙂.
Par ailleurs, je n'avais pas ajouté de limite de cellule (variable) dans la mesure où il y avait une liste de validation qui canalisait dans le présent cas, la "zone d'action".
Bonne journée à toutes & à tous
@+ Eric c
 


Bonjour @Maya1966 , Eric

J'ai légèrement revu le code d'Eric (de SelectionChange à Change) et j'ai rajouté une variable

@Phil69970
 
Bonjour Phil69970,

Merci pour le code qui fonctionne à merveille.
je voudrais utiliser le même code pour la colonne M depuis la cellule M10 et la cellule adjacente en 22 = colonne AI

Le UserForm1 s'ouvre dans la cellule M10 mais dans les cellules plus basses il ne s'ouvre pas alors que la valeur est à 0

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Derlig&
Derlig = Feuil1.Cells(Feuil1.Rows.Count, "M").End(xlUp).Row
If Not Application.Intersect(Target, Range("M10:M" & Derlig)) Is Nothing Then
If Target.Offset(, 22) = "0" Then UserForm1.Show
End If
End Sub

merci pour votre aide

Maya1966
 
Re le fil

@Maya : 😡 Dans ton fichier mis en ligne : Si l'entête de ton tableau "Liste" débute en A"9", l'entête de celui nommé "Montant" doit débuter en AI"9" et non AI"10".
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Derlig&
Derlig = Feuil1.Cells(Feuil1.Rows.Count, "M").End(xlUp).Row
If Not Application.Intersect(Target, Range("M10:M" & Derlig)) Is Nothing Then
    If Target.Offset(, 22) = "0" Then MsgBox "coucou"
End If
 End Sub
Bonne soirée à toutes & à tous
@+ Eric c
 
Bonsoir à tous,

J'écrirais plus simplement :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target(1), Range("M10:M" & Rows.Count)) Is Nothing Then If Target(1, 23) = 0 Then UserForm1.Show
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
406
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Réponses
6
Affichages
195
Réponses
6
Affichages
432
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…