Bonjour,
Je suis un grand débutant VBA, j'essaie de faire en VBA ce que je faisais auparavant par formule.
Sur la feuille f1 j'ai une liste de mouvement de vacancier qui vont d'un poit A à un point B, seul ceux qui vont ou viennent de disney m'interessent. Je veut donc les comptabiliser par date, heure et mouvement (sens), seul le nombres de passager (Pax) total m'intérèsse égalemment (pas bébé, enfant, adultes).
Avec mon code, le tableau sur la feuille f2 se remplit mais mal ( on compare avec le deuxième tableau qui est rempli avec des formules et qui est juste). Il manque donc sur le premier tableau de f2 plusieur ligne présente sur le second.
Je ne suis pas assez calé ppour arriver à trouver mon erreur c'est pour cela que je fais appel à la communauté excel-pratique.
Voici le code et le fichier en téléchargement.
Sub xPlore()
Dim i As Integer 'Déclaration de i, n° de ligne dans F1
Dim j As Integer 'Déclaration de j, n° de colonnes des heures dans F2
Dim k As Integer 'Déclaration de k, n° de ligne des heures dans F2
Dim m As Integer ''Déclaration de m, n° colonnes dans F2 pour les sens
Dim z As Integer 'Déclaration de z, nbr de pax
Dim NbLg As Integer
Dim F1 As Worksheet
Dim F2 As Worksheet
Application.ScreenUpdating = False
Set F1 = Sheets("f1")
Set F2 = Sheets("f2")
F2.Range("F7 : I194").ClearContents
j = 5
k = 7
z = 0
With F1
NbLg = .Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To NbLg
If .Range("E" & i) = F2.Cells(3, j) Then ' On recherche la date de f2 dans f1
For k = 7 To 194 ' on attribue à k les lignes d'heures des tablaux récap de F2
If F1.Range("S" & i) = F2.Range("E" & k) Then 'dans le cas ou l'on trouve la date, on cherche l'heure
For m = 6 To 9 'colonnes de f2 contenant le sens
If F1.Range("P" & i) = F2.Cells(6, m) Then 'on cherche le sens de f2 dans f1
z = F1.Range("K" & i) ' on nomme z le nbr de pax de la ligne concérnée
F2.Cells(k, m) = F2.Cells(k, m) + z ' on additionne les pax et on affiche le nbr dans la cellule concérnée
End If
Next m
End If
Next k
End If
Next i
End With
End Sub