Microsoft 365 Correction d'une syntaxe

sgangbadjo

XLDnaute Nouveau
Bonsoir L'equipe

Please, SOS pour l'amelioration du Code ci-dessous. Apres le Deuxième Msgbox, j'ai inseré GoTo pour retouner au debut du Userform. Mais malheureusement, cette syntaxe aboutie a une boucle interminable qui ne donne pas la possibilité à l'utilisateur d'abandonner et de quitter le Userform:

Please help, je suis a mes débuts

Code:
Private Sub UserForm_Activate()

Dim F1 As Worksheet
Set F1 = Sheets("TRACKING")
line1:
    ligne = InputBox("Quel est le numéro de la ligne de la réquisition")

    If IsNumeric(ligne) = False Then
        MsgBox ("Veuillez saisir une valeur en format numerique")
        GoTo line1:
    End If
    
  With F1
 
    If ligne > (F1.Range("A" & .Rows.Count).End(xlUp).Row) Then
        
        MsgBox "Vous devez saisir le numéro d'ordre d'une transaction existante dans la base de données"
        GoTo line1:
      
    Else
      
        Me.TextBox1.Value = F1.Cells(ligne + 1, 3).Value
        Me.TextBox2.Value = F1.Cells(ligne + 1, 4).Value

    End If
End With
End Sub
 

Wayki

XLDnaute Impliqué
Bonjour,
Merci @Wayki pour ta proposition. Malheureusement, elle n'a pas marché. Apparemment, on ne peut ajouter vbRetryCancel au Msgbox, sans que cela soit une déclaration comme dans le cas d'un IF.
Faux, vbRetryCancel est une option du msgbox.
Mais si vous avez "option explicit" avant votre code, alors vous devez déclarer "réponse" "as integer".
Voyez https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/msgbox-function
A +
 

Wayki

XLDnaute Impliqué
Bonjour,
Essayez :
Private Sub UserForm_Activate()

Dim F1 As Worksheet
Set F1 = Sheets("TRACKING")
line1:
ligne = InputBox("Quel est le numéro de la ligne de la réquisition")

If IsNumeric(ligne) = False Then
Réponse = MsgBox("Veuillez saisir une valeur en format numerique", vbRetryCancel)
If Réponse = 4 then
GoTo line1
Else
Exit sub
End if
End If

With F1

If ligne > (F1.Range("A" & .Rows.Count).End(xlUp).Row) Then

MsgBox "Vous devez saisir le numéro d'ordre d'une transaction existante dans la base de données"
GoTo line1:

Else

Me.TextBox1.Value = F1.Cells(ligne + 1, 3).Value
Me.TextBox2.Value = F1.Cells(ligne + 1, 4).Value

End If
End With
End Sub

Reproduire le premier msgbox pour le 2eme
A +
 

sgangbadjo

XLDnaute Nouveau
Bonjour,
Essayez :
Private Sub UserForm_Activate()

Dim F1 As Worksheet
Set F1 = Sheets("TRACKING")
line1:
ligne = InputBox("Quel est le numéro de la ligne de la réquisition")

If IsNumeric(ligne) = False Then
Réponse = MsgBox("Veuillez saisir une valeur en format numerique", vbRetryCancel)
If Réponse = 4 then
GoTo line1
Else
Exit sub
End if
End If

With F1

If ligne > (F1.Range("A" & .Rows.Count).End(xlUp).Row) Then

MsgBox "Vous devez saisir le numéro d'ordre d'une transaction existante dans la base de données"
GoTo line1:

Else

Me.TextBox1.Value = F1.Cells(ligne + 1, 3).Value
Me.TextBox2.Value = F1.Cells(ligne + 1, 4).Value

End If
End With
End Sub

Reproduire le premier msgbox pour le 2eme
A +
Merci @Wayki pour ta proposition. Malheureusement, elle n'a pas marché. Apparemment, on ne peut ajouter vbRetryCancel au Msgbox, sans que cela soit une déclaration comme dans le cas d'un IF.
 

sgangbadjo

XLDnaute Nouveau
Bonsoir L'equipe

Please, SOS pour l'amelioration du Code ci-dessous. Apres le Deuxième Msgbox, j'ai inseré GoTo pour retouner au debut du Userform. Mais malheureusement, cette syntaxe aboutie a une boucle interminable qui ne donne pas la possibilité à l'utilisateur d'abandonner et de quitter le Userform:

Please help, je suis a mes débuts

Code:
Private Sub UserForm_Activate()

Dim F1 As Worksheet
Set F1 = Sheets("TRACKING")
line1:
    ligne = InputBox("Quel est le numéro de la ligne de la réquisition")

    If IsNumeric(ligne) = False Then
        MsgBox ("Veuillez saisir une valeur en format numerique")
        GoTo line1:
    End If
   
  With F1
 
    If ligne > (F1.Range("A" & .Rows.Count).End(xlUp).Row) Then
       
        MsgBox "Vous devez saisir le numéro d'ordre d'une transaction existante dans la base de données"
        GoTo line1:
     
    Else
     
        Me.TextBox1.Value = F1.Cells(ligne + 1, 3).Value
        Me.TextBox2.Value = F1.Cells(ligne + 1, 4).Value

    End If
End With
End Sub
@goube ; @ikookoo78 @metidji chawki @Abdoul aziz Please help pour mon soucis ci-dessus
 

sgangbadjo

XLDnaute Nouveau
Bonsoir L'equipe

Please, SOS pour l'amelioration du Code ci-dessous. Apres le Deuxième Msgbox, j'ai inseré GoTo pour retouner au debut du Userform. Mais malheureusement, cette syntaxe aboutie a une boucle interminable qui ne donne pas la possibilité à l'utilisateur d'abandonner et de quitter le Userform:

Please help, je suis a mes débuts

Code:
Private Sub UserForm_Activate()

Dim F1 As Worksheet
Set F1 = Sheets("TRACKING")
line1:
    ligne = InputBox("Quel est le numéro de la ligne de la réquisition")

    If IsNumeric(ligne) = False Then
        MsgBox ("Veuillez saisir une valeur en format numerique")
        GoTo line1:
    End If
   
  With F1
 
    If ligne > (F1.Range("A" & .Rows.Count).End(xlUp).Row) Then
       
        MsgBox "Vous devez saisir le numéro d'ordre d'une transaction existante dans la base de données"
        GoTo line1:
     
    Else
     
        Me.TextBox1.Value = F1.Cells(ligne + 1, 3).Value
        Me.TextBox2.Value = F1.Cells(ligne + 1, 4).Value

    End If
End With
End Sub
Please @eric.rollin , @Kroupec , @djidji59430 Help
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 789
Membres
101 817
dernier inscrit
carvajal