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 SubOp et voici le fichier xlsm pour l'exemple complet
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 SubA+
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