[VBA] , end if sans bloc if

Bonjour à tous, erreur je pense que certains arriveront à corriger sans problème mais à force d'avoir la tête dedans impossible de savoir à quel niveau j'ai cette erreur.

Merci

Private Sub createbt_Click()
Dim i As Long
'si sublan est vide je ne fais rien
If Me.sublan24 = "" Then

Else
'si sublan n'est pas vide et lantype=LBH alors
    If lantype = "LBH" Then
                With TS_lan
                i = Application.Match(Me.sublan24, .ListColumns("Subnet IP").DataBodyRange, 0)
                .ListRows(i).Range.Interior.ColorIndex = 43
                .ListColumns("Designation").DataBodyRange(i) = Me.descriplan
                .ListColumns("VLAN").DataBodyRange(i) = Val(Me.vlanlan)
                .ListColumns("Commentaire").DataBodyRange(i) = Me.commfinal3 & "Sans SNAT (LB en GW)"
                End With

                Dim Ligne_Inser
                With TS_spine
                Set Ligne_Inser = .ListRows.Add: i = Ligne_Inser.index
                Ligne_Inser.Range.Interior.ColorIndex = 43

                .DataBodyRange(i, "A") = Me.vrflan
                .DataBodyRange(i, "M") = Me.vlanlan
                .DataBodyRange(i, "K") = Me.descriplan
                .DataBodyRange(i, "O") = Me.descriplan
                .DataBodyRange(i, "H") = Me.sublan24
                .DataBodyRange(i, "E") = Me.commfinal3
                .DataBodyRange(i, "C") = Me.vpninst
                .DataBodyRange(i, "B") = "V" & Me.vrflan
                .DataBodyRange(i, "G") = "Compute sans SNAT (LB en GW)"
                .DataBodyRange(i, "N") = "0" & Me.vlanlan
                .DataBodyRange(i, "L") = ""
                .DataBodyRange(i, "S") = ""
                .DataBodyRange(i, "T") = ""
                .DataBodyRange(i, "U") = ""
                .DataBodyRange(i, "V") = ""
                .DataBodyRange(i, "W") = ""

                If dhcp.Value = True Then
                .DataBodyRange(i, "AD") = "10.5.230.48"
                .DataBodyRange(i, "AE") = "Serveur DHCP UNIX"
                .DataBodyRange(i, "AF") = "10.5.224.13"
                .DataBodyRange(i, "AG") = "Serveur DHCP SOLARIS 10"
                .DataBodyRange(i, "AH") = "10.5.224.13"
                .DataBodyRange(i, "AI") = "Serveur DHCP SOLARIS 11"
                Else
                End If
                End With

                With TS_L2
                Set Ligne_Inser = .ListRows.Add: i = Ligne_Inser.index
                Ligne_Inser.Range.Interior.ColorIndex = 43
                .DataBodyRange(i, "A") = "0" & Me.vlanlan
                .DataBodyRange(i, "B") = Me.descriplan
                .DataBodyRange(i, "C") = "Compute sans SNAT (LB en GW)"
                .DataBodyRange(i, "D") = "oui"
                .DataBodyRange(i, "E") = "oui"
                .DataBodyRange(i, "F") = "non"
                .DataBodyRange(i, "G") = "oui"
                .DataBodyRange(i, "H") = "non"
                End With

                With TS_orion
                Set Ligne_Inser = .ListRows.Add: i = Ligne_Inser.index
                Ligne_Inser.Range.Interior.ColorIndex = 43
                .DataBodyRange(i, "A") = "0" & Me.vlanlan
                .DataBodyRange(i, "C") = "0" & Me.vlanlan
                .DataBodyRange(i, "D") = "0" & Me.vlanlan
                .DataBodyRange(i, "E") = "0" & Me.vlanlan
                .DataBodyRange(i, "B") = Me.descriplan
                .DataBodyRange(i, "F") = Me.descriplan
                .DataBodyRange(i, "G") = Me.commfinal3
                .DataBodyRange(i, "H") = "oui"
                .DataBodyRange(i, "I") = "oui"
                .DataBodyRange(i, "J") = "non"
                .DataBodyRange(i, "K") = "non"
                End With

                With TS_lb
                Set Ligne_Inser = .ListRows.Add: i = Ligne_Inser.index
                Ligne_Inser.Range.Interior.ColorIndex = 43

                .DataBodyRange(i, "A") = Me.vrflan & Me.vpninst
                .DataBodyRange(i, "C") = Me.vrflan & Me.vpninst
                .DataBodyRange(i, "D") = Me.descriplan
                .DataBodyRange(i, "E") = Me.vlanlan
                .DataBodyRange(i, "K") = ""
                .DataBodyRange(i, "L") = ""
                .DataBodyRange(i, "M") = ""

                If MultiPage1.Value + 1 < MultiPage1.Pages.Count Then MultiPage1.Value = MultiPage1.Value + 1
                End If
                Call Tri_macro
   
 'si lantype est différent de LBH alors j'applique le code suivant

    Else

            With TS_lan
            i = Application.Match(Me.sublan24, .ListColumns("Subnet IP").DataBodyRange, 0)
            .ListRows(i).Range.Interior.ColorIndex = 43
            .ListColumns("Designation").DataBodyRange(i) = Me.descriplan
            .ListColumns("VLAN").DataBodyRange(i) = Val(Me.vlanlan)
            .ListColumns("Commentaire").DataBodyRange(i) = Me.commfinal3
            End With

            Dim Ligne_Inser
            With TS_spine
                Set Ligne_Inser = .ListRows.Add: i = Ligne_Inser.index
            Ligne_Inser.Range.Interior.ColorIndex = 43

            .DataBodyRange(i, "A") = Me.vrflan
            .DataBodyRange(i, "M") = Me.vlanlan
            .DataBodyRange(i, "K") = Me.descriplan
            .DataBodyRange(i, "O") = Me.descriplan
            .DataBodyRange(i, "H") = Me.sublan24
            .DataBodyRange(i, "E") = Me.commfinal3
            .DataBodyRange(i, "C") = Me.vpninst
            .DataBodyRange(i, "B") = "V" & Me.vrflan
            .DataBodyRange(i, "G") = Me.commfinal3
            .DataBodyRange(i, "N") = "0" & Me.vlanlan
            .DataBodyRange(i, "L") = "undo shutdown"

               If dhcp.Value = True Then
                .DataBodyRange(i, "AD") = "10.5.230.48"
                .DataBodyRange(i, "AE") = "Serveur DHCP UNIX"
                .DataBodyRange(i, "AF") = "10.5.224.13"
                .DataBodyRange(i, "AG") = "Serveur DHCP SOLARIS 10"
                .DataBodyRange(i, "AH") = "10.5.224.13"
                .DataBodyRange(i, "AI") = "Serveur DHCP SOLARIS 11"
                Else
                End If
            End With

            With TS_L2
            Set Ligne_Inser = .ListRows.Add: i = Ligne_Inser.index
            Ligne_Inser.Range.Interior.ColorIndex = 43
            .DataBodyRange(i, "A") = "0" & Me.vlanlan
            .DataBodyRange(i, "B") = Me.descriplan
            .DataBodyRange(i, "C") = Me.commfinal3
            .DataBodyRange(i, "D") = "oui"
            .DataBodyRange(i, "E") = "oui"
            .DataBodyRange(i, "F") = "non"
            .DataBodyRange(i, "G") = "oui"
            .DataBodyRange(i, "H") = "non"
            End With

            With TS_orion
            Set Ligne_Inser = .ListRows.Add: i = Ligne_Inser.index
                Ligne_Inser.Range.Interior.ColorIndex = 43
                .DataBodyRange(i, "A") = "0" & Me.vlanlan
                .DataBodyRange(i, "C") = "0" & Me.vlanlan
                 .DataBodyRange(i, "D") = "0" & Me.vlanlan
                .DataBodyRange(i, "E") = "0" & Me.vlanlan
                .DataBodyRange(i, "B") = Me.descriplan
                .DataBodyRange(i, "F") = Me.descriplan
                .DataBodyRange(i, "G") = Me.commfinal3
                .DataBodyRange(i, "H") = "oui"
                .DataBodyRange(i, "I") = "oui"
                .DataBodyRange(i, "J") = "non"
                .DataBodyRange(i, "K") = "non"
                 End With
                If MultiPage1.Value + 1 < MultiPage1.Pages.Count Then MultiPage1.Value = MultiPage1.Value + 1
                End If
              Call Tri_macro
       End If

End If

End Sub

Bonjour,

A 1ère vue, remplace les 2 End If par End With juste devant les lignes "Call Tri_macro"

Sans filets...

Salut Camarade!

Il semblerait que ce soit bien cela puisque cela fonctionne!

Gracias

Bonjour, Par contre si tu ne fais rien quand c'est vide alors sortir de la macro non ?

Dim i As Long
'si sublan est vide je ne fais rien
If Me.sublan24 = "" Then
Exit sub
Else

@Xmenpl milles excuses pour ma réponse tardive. Je viens seulement de la voir! Effectivement cela est une idée. Débutant, j'avoue ne pas maitrisé encore assez toutes les subtilités. Merci pour cette remarque pertinente

Rechercher des sujets similaires à "vba end bloc"