Boucle recherche cellule a l'intersection ligne colonne et remplacement
H
Bonjour,
Meilleurs vœux a tous.
je cherche a réaliser une macro qui recherche dans une fiche horaire, les gares ou un horaire et renseigné puis via une feuille grille km.
Remplace l'heure indiqué par les kilomètres entre chaque arrêt desservis.
Pour chaque circulation le km de la 1ere gare =0 puis je recherche via la grille km la 1ere Gare dans la colonne A et la seconde gare desservi dans la ligne 2. Le kilomètrage ce trouve a l'intersection Ligne /Colonne.
Ci joint un fichier exemple avec la fiche horaire aller et retour, la grille km et une feuille exemple reprenant 2 horaire de la fiche aller .
Merci de votre aide
Salut Hervé,
quelque chose comme ça?
- clic en ligne 5 ouvre une liste de validation ;
- choix et affichage ;
- clic en ligne 6 = effacement.
With Worksheets(IIf(CLng(Target) Mod 2 = 0, "ALLER", "RETOUR"))
iTCol = Target.Column
iSrcCol = .Range("D6:H6").Find(what:=Target, lookat:=xlWhole).Column
sCol = Split(Columns(iTCol).Address(ColumnAbsolute:=False), ":")(1)
Range(sCol & 8 & ":" & sCol & 36).ClearContents
For x = 8 To 36
If .Cells(x, iSrcCol) <> "" Then
If sData2 = "" And sData1 <> "" Then sData2 = .Cells(x, 2)
If sData1 = "" Then
sData1 = .Cells(x, 2)
Cells(x, iTCol) = 0
End If
If sData2 <> "" Then
iRow = Worksheets("GRILLE KM").Range("A3:A31").Find(what:=sData1, LookIn:=xlValues, lookat:=xlWhole).Row
iCol = Worksheets("GRILLE KM").Range("B2:AD2").Find(what:=sData2, LookIn:=xlValues, lookat:=xlWhole).Column
Cells(x, iTCol) = Worksheets("GRILLE KM").Cells(iRow, iCol)
sData1 = sData2
sData2 = ""
End If
End If
Next
End With
- pour la facilité de codage, dans des cas pareils, et tant qu'à faire, applique-toi à créer des tableaux similaires (lignes, colonne) ;
- suggestion, créer une colonne en 'ALLER' et 'RETOUR' à côté de chaque horaire et y placer tes données (après tout, les Km ne vont pas rétrécir, non?)
A+