Récuperer informations sur plusieurs lignes
Bonjour à tous,
j'aurais besoin de vos conseils svp. Voici le probleme :
J'ai une liste de véhicule pour lesquel je dois vérifier s'il y a des bulletins ou recalls. Pour cela j'ai trois onglets : 1 onglet avec la liste des véhicules qui ont un bulletin, 1 onglet pour les recalls et enfin un troisieme onglet qui sera mis à jour toute les semaines qui représente la liste de véhicule de la semaine. Pour ces véhicules je dois vérifier s'il y a des bulletins ou recalls.
Pour ce faire, j'ai d'abord vérifier combien de bulletin et recall avaient le véhicule et ensuite je vais chercher le numero du bulletin ou recall.
Cela fonctionne parfaitement pour les véhicules qui ont un seul bulletin ou recalls.
Mais lorsqu'il y en a plusieurs je ne suis pas capable de récupérer toute l'information.
Est ce que quelqu'un aurait une idéé pour récuperer toute la liste de bulletin ou recall pour les véhicules qui ont en plus qu'un ??
Merci à vous.
ci-joint le fichier.
J'avais pensé à une solution qui pourrait fonctionner mais je ne suis pas capable de faire ca dites moi ce que vous en pensez
un code VBA :
1-on parcours la liste des véhicules (onglet TCD colonne A)
2- POur chaque véhicule on parcours la liste de véhicules dans l'onglet bulletin et à chaque fois que le numero de véhicule est égal au numero de véhicule dans la liste de bulletin, on enregistre le numero du bulletin (onglet bulletin colonne A)
3-Une fois la liste de bulletin parcouru en entier on copie les numero de bulletin enregistrer dans l'onglet TCD sur la ligne du vehicule
Exemple :
on lit le premier vehicule dans TCD en A298 = 1517711
il a 2 bulletins le programme devrait les enregistrer et les copier en B298 et C298
Pensez-vous que ca serait un gros code à faire ?
Merci
Bonjour,
voici un debut de code :
Option Explicit
Option Base 1
Public Sub ajout_bulletin_recall()
Dim valeur_lue As String
Dim ligne As Long
For ligne = 4 To Sheet4.UsedRange.Rows.Count
valeur_lue = Sheet4.Cells(ligne, 1).Value
'enregistrer les bulletins
Dim ligne2 As Long
Dim vehicle_bulletin As String
For ligne2 = 2 To Sheet2.UsedRange.Rows.Count
vehicle_bulletin = Sheet2.Cells(ligne2, 2)
If valeur_lue = vehicle_bulletin Then
Dim liste_bulletin() As String
Dim i As Long
i = 1
liste_bulletin(i) = Sheet2.Cells(ligne2, 1).Value
i = i + 1
End If
Next ligne2
Next ligne
End SubL'idée était d'enregistrer le numero du bulletin dans le tableau liste_bulletin puis une fois la liste de bulletin parcouru, on irait ecrire la ligne liste_bulletin(i) dans la feuille TCD pour le vehicule correspondant.
mais la ligne liste_bulletin(i) = Sheet2.Cells(ligne2, 1).Value me dit "out of range".
Quelqu'un aurait une idée pour corriger le probleme ?
Merci à vous.
Bonjour,
avant d'ajouter des élément dans un tableau il faut définir sa dimension :
exemple :
dim tableau() as String
redim tableau(10) ' le tableau a donc maintenant 11 case ou mettre des éléments
merci
malheuresement je ne sais pas d'avance la taille du tableau
existe-t-il une facon de Redim de maniere variable ?
pour ma part je ne connait pas de fonction qui permet de faire cela mais vous pouvez quand même crée votre propre fonction pour augmenter sa taille.
if tableau(Ubound(tableau)) <>"" then
redim tableau(Ubound(tableau) + 10) 'augmenter la taille du tableau de 10
end if
Ubound te donne la taille du tableau actuelle
Je sais que le tableau aura maximum 5 colonnes j'ai donc redim 5 et le programme ira ecrire dans les 5 colonnes de la feuilles TCD (colonne B à F) au pire les cases seront vides
voici le code que jai corrigé :
If valeur_lue = vehicle_bulletin Then
Dim liste_bulletin() As String
Dim i As Long
ReDim liste_bulletin(5) As String
i = 1
liste_bulletin(i) = Sheet2.Cells(ligne2, 1).Value
i = i + 1
End If
Next ligne2
Dim j As Long
If ligne2 - 1 = Sheet2.UsedRange.Rows.Count Then
For j = 1 To UBound(liste_bulletin)
Sheet4.Cells(ligne, j + 1).Value = liste_bulletin(j)
Next j
End Ifmalheureusement la ligne Sheet4.Cells(ligne, j + 1).Value = liste_bulletin(j) me donne encore le message d'erreur out of range.
comment doit-on faire pour ecrire le tableau liste_bulletin dans la feuille TCD svp ?
merci
Je joins le fichier si ca peut aider.
FInalement j'ai trouver une solution à mon probleme si ca peut aider d'autres personnes :
creer une fonction avec VBA voici le lien qui propose la solution
https://www.youtube.com/watch?v=klJXtxbivIQ
Merci pour votre aide.