Appel de fonction

Bonjour à tous,

Petit mot en passant, je suis en train de faire les tutod de la page de VBA, très très cool

Maintenant mon petit problème que je ne comprends pas, je fais appel à deux méthodes à deux différents endroits, et le premier fonctionne mais pas le deuxième, et je ne vois pas pourquoi. Les méthodes concernées genfichier(region) et genQuebec(), se sont pour le moment de simple msgbox, mais il ne s'affiche quand dans le premier appel dans le "for j" mais pas dans le "else if"

Pourtant les msgbox des différents if s'affichent pas le résultats des deux méthodes.

Dim debut As Integer
Dim fin As Integer
Dim distance As Integer

Sub Annuler_Click()
    Unload Me
End Sub

Sub UserForm_Initialize()
    Dim colonne As Integer

    ListeChoix.AddItem "All"

    colonne = 1
    Sheets("Trades").Select
    Sheets("Trades").Cells(1, 1).Select

    While Sheets("Trades").Cells(1, colonne) <> "Name FR"
        colonne = colonne + 1
    Wend

    colonne = colonne + 1
    debut = colonne

    While Sheets("Trades").Cells(1, colonne) <> "Paid Leave"
        ListeChoix.AddItem Cells(1, colonne).Value
        colonne = colonne + 1
    Wend

    fin = colonne
    distance = fin - debut

End Sub

Sub OK_Click()

    Dim tabChoix(10)

    For i = 0 To distance
        If ListeChoix.Selected(i) Then
            tabChoix(i) = ListeChoix.List(i)
        End If
    Next

    For x = 0 To distance
        If tabChoix(x) = "All" Then
            For j = debut To fin - 1
                regionName = Cells(1, j).Value
                If regionName = "Quebec" Then
                    genQuebec
                Else
                    genFichier (regionName)
                End If
            Next
            Unload Me
        ElseIf tabChoix(x) <> "All" And tabChoix(x) <> "" Then
            If tabChoix(x) = "Quebec" Then
                genQuebec
                MsgBox "genere la region du Quebec"
            Else
                MsgBox "genere region du " + tabChoix(x)
                genFichier (tabChoix(x))
            End If
        Else
            Unload Me
        End If

    Next

End Sub

Sub genFichier(region)

    MsgBox "voici " + region

End Sub

Sub genQuebec()

    MsgBox "Spácial la région du Quebec"

End Sub

Op et voici le fichier xlsm pour l'exemple complet

78bugappelmethod.xlsm (28.66 Ko)

Bonsoir Bartoon

Essaye ceci

Sub OK_Click()
  Dim TabChoix() As String, sTmp As String
  ' Initialiser la variable
  sTmp = ""
  ' Pour chaque distance
  For i = 0 To distance
    If ListeChoix.Selected(i) Then
    sTmp = sTmp & ListeChoix.List(i) & ","
    End If
  Next
  ' Supprimer la dernière virgule
  sTmp = Left(sTmp, Len(sTmp) - 1)
  ' Définir le tableau
  TabChoix = Split(sTmp, ",")
  ' Pour chaque valeur du tableau
  For x = 0 To UBound(TabChoix)
    If TabChoix(x) = "All" Then
      For j = debut To fin - 1
        regionName = Cells(1, j).Value
        If regionName = "Quebec" Then
          genQuebec
        Else
          genFichier (regionName)
        End If
      Next
      Exit Sub
    ElseIf TabChoix(x) <> "" Then
      If TabChoix(x) = "Quebec" Then
        MsgBox "genere la region du Quebec"
        genQuebec
      Else
        MsgBox "genere region du " + TabChoix(x)
        genFichier (TabChoix(x))
      End If
    End If
  Next
  Unload Me
End Sub

A+

Youhou Merci Bruno,

Merci pour la réponse rapide, et désolé de la mienne tardive (gros événement et survenu depuis)

Ça marche parfaitement, grand merci, il me reste plus qu'à analyser le tout

Rechercher des sujets similaires à "appel fonction"