1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| 'Procédure dans le but d'ajouter automatiquement les données des comptages réalisées
Sub Actualiser_Donnees()
Dim ligne, colonne, horaire, indice, num_feuille As Integer
Dim feuille As Worksheet
Dim base As Object
'Récupération du fichier de la base de comptage (=BDC)
Set base = GetObject("chemin du fichier base de comptage")
'Initialisation des variables num_feuille et colonne
num_feuille = Worksheets(1).Range("C6")
colonne = 2
indice = 25
horaire = 7
'Pour chaque ligne de BDC
Do Until Worksheets(num_feuille).Cells(horaire, "A") = "Temps de parcours"
For ligne = 2 To 7000
'Initialisation des variables indice et horaire correspondant au début du TDB et de la fiche horaire.
'Si le numéro de train de la ligne de BDC et le même que pour la ième-colonne de TDB alors
If base.Worksheets(1).Cells(ligne, "A") = Worksheets(num_feuille).Cells(3, colonne) Then
'Insertion de la date et du numéro du jour
Worksheets(2).Cells(22, colonne) = base.Worksheets(1).Cells(ligne, "N")
Worksheets(2).Cells(23, colonne) = base.Worksheets(1).Cells(ligne, "D")
'Si le date de la ième-colonne de TDB est différente de la ligne choisie de BDC en colonne "n" alors
'On passe à la colonne suivante et on remet à jour la variable indice
If Worksheets(num_feuille).Cells(22, colonne) <> base.Worksheets(1).Cells(ligne, "N") Or Worksheets(num_feuille).Cells(indice, colonne) = "Total Montées" Then
colonne = colonne + 1
indice = 25
horaire = 7
End If
'Si la valeur de la fiche horaire est vide alors on saute des lignes dans le TDB et on ne fait rien.
'Cela se fait jusqu'à la fin de la fiche horaire, c'est à dire quand le programme tombe sur le libellé "temps de parcours"
If Worksheets(num_feuille).Cells(horaire, colonne) <> "" Then
'Insertion des données "montées" et "descentes"
Worksheets(num_feuille).Cells(indice, colonne) = base.Worksheets(1).Cells(ligne, "F")
Worksheets(num_feuille).Cells(indice + 1, colonne) = base.Worksheets(1).Cells(ligne, "G")
End If
'Incrémentation des variables indice et horaire
indice = indice + 2
horaire = horaire + 1
End If
Next ligne
Loop
End Sub |
Partager