ouvrir un userform en fonction de la valeur d'une cellule adjacente à une autre

taupivin

XLDnaute Junior
Bonjour,

Après moultes recherches sur internet et de nombreuses tentatives, je n'arrive pas à faire ce que je veux.

A partir de mon userform MAJ_Recla, j'aimerai, lors de la saisie d'un numéro ouvrir un autre userform en fonction du numéro saisie dans le textbox.

Par exemple, si je saisie "toto" dans le textbox, le programme doit trouver "toto" dans la feuille "essai",colonne B
Et si la valeur à gauche de "toto" est "Retour", ouvrir le userform Retour_MR.

Vous trouverez le fichier pièce jointe.

J'espère que vous aurez une idée car je sèche sur ce bout de code depuis 3 jours... (j'ai essayé avec match, offset, find...) mais je n'y arrive pas.

Je vous remercie par avance pour votre aide.
 

Pièces jointes

  • Mondial Relayv2.xlsm
    43.1 KB · Affichages: 50

PMO2

XLDnaute Accro
Re : ouvrir un userform en fonction de la valeur d'une cellule adjacente à une autre

Bonjour,

Essayez de changer le code de la procédure Suivant_MAJ_Click par ce code
Code:
Private Sub Suivant_MAJ_Click()

Dim gls_track As String
Dim rg As Range

If GLS_Track_ID_MAJ.Value = "" Then
  MsgBox "Veuillez saisir un GLS Track ID"
  Exit Sub
End If

'selectionner le userform en fonction du gls track id

'///ajout
Dim S As Worksheet
Dim Plage As Range
Set S = Sheets("essai")
Set Plage = S.Range(S.Cells(2, 2), S.Cells(S.[b2].End(xlDown).Row, 2))
For Each rg In Plage
  If UCase(rg) = UCase(GLS_Track_ID_MAJ) Then
    If rg.Offset(0, -1).Value = "Retour" Then
      Unload MAJ_Recla
      Retour_MR.Show
    End If
  End If
Next rg
'///

End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : ouvrir un userform en fonction de la valeur d'une cellule adjacente à une autre

Bonsoir à tous,

Un autre essai.

Le code du bouton "Suivant":
VB:
Private Sub Suivant_MAJ_Click()
Dim rg As Range

  If GLS_Track_ID_MAJ = "" Then
    MsgBox "Veuillez saisir un GLS Track ID"
  ElseIf Type_No_Colis = "GLS Track ID" Then
    'selectionner le userform en fonction du gls track id
    Set rg = Sheets("essai").Columns(2).Find(GLS_Track_ID_MAJ.Text, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False)
    If Not rg Is Nothing Then
      If rg.Offset(, -1) = "Retour" Then
        Application.OnTime Now() + 1# / 24 / 60 / 60 / 10, "Afficher"
        Unload Me
      End If
    Else
      MsgBox "Le GLS Track ID '" & GLS_Track_ID_MAJ & "' n'a pas été trouvé !"
      GLS_Track_ID_MAJ.SetFocus
    End If
  End If
End Sub

Le code de la procédure UserForm_Initialize() du userform "Retour_MR"
VB:
Private Sub UserForm_Initialize()
  Unload MAJ_Recla
End Sub

Le code de la procédure "Afficher" dans module1
VB:
Sub afficher()
  Retour_MR.Show
End Sub
 

Pièces jointes

  • taupivin- Mondial Relayv2-v1.xlsm
    35.5 KB · Affichages: 77

Discussions similaires