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

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
213
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…