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

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
 

Maya1966

XLDnaute Nouveau
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

  • Maya.xlsm
    18.5 KB · Affichages: 4

Eric C

XLDnaute Barbatruc
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
 

Maya1966

XLDnaute Nouveau


Bonjour @Maya1966 , Eric

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

@Phil69970
 

Maya1966

XLDnaute Nouveau
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
 

Eric C

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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+
 

Maya1966

XLDnaute Nouveau
Bonjour à tous,

vos propositions fonctionnent à merveille sauf lorsque je désire supprimer les valeurs de plusieurs cellules à la fois dans la colonne A





merci pour votre aide
Maya1966
 

Pièces jointes

  • Maya USF V1.xlsm
    18.9 KB · Affichages: 1

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour le fil

@Maya : Teste le fichier joint - A adapter en ce qui concerne le bouton
Bonne journée à toutes & à tous
@+ Eric c
 

Pièces jointes

  • Maya USF V2.1.xlsm
    25.8 KB · Affichages: 3
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…