Microsoft 365 Erreur else sans if

Jacko17

XLDnaute Nouveau
j'ai un petit souci pour imbriquer des conditions avec des boutons option.

il me met comme "erreur else sans if"

pouvez-vous m'aider s'il vous plait ?



VB:
Private Sub CommandButton1_Click()

If Me.Option_sortie = True Then
    If Me.Cbx_agent <> "" And Me.Cbx_article <> "" And Me.Cbx_activite <> "" And Me.Txt_nombre <> "" Then

    With Me.List_order
        .AddItem
        .List(memoire, 0) = Me.Cbx_article
        .List(memoire, 1) = Me.Txt_nombre
        .List(memoire, 2) = Me.Cbx_activite
    End With

    memoire = memoire + 1
    Me.Cbx_article = ""
    Me.Txt_nombre = ""
    Me.Cbx_activite = ""
    Me.Cbx_agent = ""

    End If
End If

Else

If Me.Option_entree = True Then
    If Me.Txt_facture = "" And Me.Cbx_article = "" And Me.Cbx_activite = "" And Me.Txt_nombre = "" And Me.Cbx_fournisseur And Me.Cbx_order = "" Then
    MsgBox ("Information Incomplètes !!")
    Else
With Me.List_order
        .AddItem
        .List(memoire, 0) = Me.Cbx_article
        .List(memoire, 1) = Me.Txt_nombre
        .List(memoire, 2) = Me.Cbx_activite
    End With

    memoire = memoire + 1
    Me.Cbx_article = ""
    Me.Txt_nombre = ""
    Me.Cbx_activite = ""

    End If

  End If

End Sub
 
Solution
Bonjour Jacko17, Marcel32,

je propose cette optimisation de ton code VBA :
VB:
Private Sub Job()
  With List_order
    .AddItem
    .List(memoire, 0) = Cbx_article
    .List(memoire, 1) = Txt_nombre
    .List(memoire, 2) = Cbx_activite
  End With
  Cbx_article = "": Txt_nombre = "": Cbx_activite = ""
  memoire = memoire + 1
End Sub

Private Sub CommandButton1_Click()
  If Option_sortie Then _
    If Cbx_agent <> "" And Cbx_article <> "" And Cbx_activite <> "" _
      And Txt_nombre <> "" Then Job: Cbx_agent = ""
  If Option_entree Then
    If Txt_facture = "" And Cbx_article = "" And Cbx_activite = "" _
      And Txt_nombre = "" And Cbx_fournisseur And Cbx_order = "" _
        Then MsgBox "Informations incomplètes !!" Else Job...

soan

XLDnaute Barbatruc
Inactif
Bonjour Jacko17, Marcel32,

je propose cette optimisation de ton code VBA :
VB:
Private Sub Job()
  With List_order
    .AddItem
    .List(memoire, 0) = Cbx_article
    .List(memoire, 1) = Txt_nombre
    .List(memoire, 2) = Cbx_activite
  End With
  Cbx_article = "": Txt_nombre = "": Cbx_activite = ""
  memoire = memoire + 1
End Sub

Private Sub CommandButton1_Click()
  If Option_sortie Then _
    If Cbx_agent <> "" And Cbx_article <> "" And Cbx_activite <> "" _
      And Txt_nombre <> "" Then Job: Cbx_agent = ""
  If Option_entree Then
    If Txt_facture = "" And Cbx_article = "" And Cbx_activite = "" _
      And Txt_nombre = "" And Cbx_fournisseur And Cbx_order = "" _
        Then MsgBox "Informations incomplètes !!" Else Job
  End If
End Sub
comme je n'ai pas ton classeur Excel, c'est non testé, bien sûr ;
mais d'après moi, ça devrait marcher. 😜 attention :

ça ira si ta variable « memoire » est une variable globale du
module de ton UserForm, sinon, tu devras la mettre en
argument de la sub Job :
Private Sub Job(memoire&)
puis l'ajouter dans les 2 appels : Job memoire

soan
 

Discussions similaires

Réponses
4
Affichages
194

Statistiques des forums

Discussions
312 104
Messages
2 085 335
Membres
102 865
dernier inscrit
FreyaSalander