Bonjour le forum,
J'ai créé un poste il y a de ça quelques jours mais je ne suis toujours pas parvenu à résoudre mon problème.
J'ai créé un script permettant de repéré dans un fichier A les objets qui m'intéressent et j'enregistre à chaque itération le nom de cet objet dans une variable :
objet = fichierA.Worksheets(3).Cells(k, l).Value 'nom de mon objet
Je dois ensuite trouvé cet objet dans un fichier B pour copier la ligne correspondante (copie uniquement des colonnes identiques) vers un fichier de destination C
Voici une partie de mon code :
Set celluletrouvee = fichierB.Worksheets(3).Range("H3:H370").Find(objet, LookIn:=xlValues)
..................
Else
lig = celluletrouvee.Row 'ligne du monitor dans le projet BMW_Magna
col = celluletrouvee.Column 'colonne du monitor dans le projet BMW_Magna
MsgBox "Cellule trouvée, correspondant à " & objet & " dans fichier A
For i = 1 To DernCol
colonne = fichierC.Worksheets(3).Cells(2, i).Value 'nom de la colonne i dans le fichier C
Set colonnetrouvee = fichierB.Worksheets(3).Range("2:2").Find(colonne, LookIn:=xlValues) 'recherche de la colonne i dans le fichier B
If Not colonnetrouvee Is Nothing Then
ligtr = colonnetrouvee.Row
coltr = colonnetrouvee.Column
fichierB.Worksheets(3).Cells(lig, coltr).Copy _
Destination:=fichierC.Worksheets(3).Cells(A, i) 'A représentant la première ligne vide du fichier C
Mon code fonctionne à peu près comme je le veux. Le seul bémol est que j'ai par exemple un objet dans le fichier A qui s'appelle "AZ".
Il est bien présent dans le fichier B mais n'est jamais repéré car un autre nom d'objet du type "monobjet_AZ" est repéré à la place puisqu'il contient "AZ".
J'ai donc pensé à utiliser LookAt:=xlWhole dans l'argument de ma fonction Find mais cela m'empêche de trouver d'autres objets qui ont cette particularité :
- Dans mon fichier A ils sont du type "monobjet123 avec un commentaire derrière"
- Alors que dans le fichier B ils s’appellent par exemple "monobjet123"
Donc voila, je voudrais savoir si l'un de vous aurait une idée intéressante pour corriger ces deux problèmes... J'ai pensé par exemple à ce que ma fonction find fasse en sorte que ma valeur objet soit contenue dans la cellule et qu'en plus de cela les deux premiers caractères soient strictement identiques... mais je ne vois pas comment écrire cela...
En vous remerciant par avance de votre aide !
J'ai créé un poste il y a de ça quelques jours mais je ne suis toujours pas parvenu à résoudre mon problème.
J'ai créé un script permettant de repéré dans un fichier A les objets qui m'intéressent et j'enregistre à chaque itération le nom de cet objet dans une variable :
objet = fichierA.Worksheets(3).Cells(k, l).Value 'nom de mon objet
Je dois ensuite trouvé cet objet dans un fichier B pour copier la ligne correspondante (copie uniquement des colonnes identiques) vers un fichier de destination C
Voici une partie de mon code :
Set celluletrouvee = fichierB.Worksheets(3).Range("H3:H370").Find(objet, LookIn:=xlValues)
..................
Else
lig = celluletrouvee.Row 'ligne du monitor dans le projet BMW_Magna
col = celluletrouvee.Column 'colonne du monitor dans le projet BMW_Magna
MsgBox "Cellule trouvée, correspondant à " & objet & " dans fichier A
For i = 1 To DernCol
colonne = fichierC.Worksheets(3).Cells(2, i).Value 'nom de la colonne i dans le fichier C
Set colonnetrouvee = fichierB.Worksheets(3).Range("2:2").Find(colonne, LookIn:=xlValues) 'recherche de la colonne i dans le fichier B
If Not colonnetrouvee Is Nothing Then
ligtr = colonnetrouvee.Row
coltr = colonnetrouvee.Column
fichierB.Worksheets(3).Cells(lig, coltr).Copy _
Destination:=fichierC.Worksheets(3).Cells(A, i) 'A représentant la première ligne vide du fichier C
Mon code fonctionne à peu près comme je le veux. Le seul bémol est que j'ai par exemple un objet dans le fichier A qui s'appelle "AZ".
Il est bien présent dans le fichier B mais n'est jamais repéré car un autre nom d'objet du type "monobjet_AZ" est repéré à la place puisqu'il contient "AZ".
J'ai donc pensé à utiliser LookAt:=xlWhole dans l'argument de ma fonction Find mais cela m'empêche de trouver d'autres objets qui ont cette particularité :
- Dans mon fichier A ils sont du type "monobjet123 avec un commentaire derrière"
- Alors que dans le fichier B ils s’appellent par exemple "monobjet123"
Donc voila, je voudrais savoir si l'un de vous aurait une idée intéressante pour corriger ces deux problèmes... J'ai pensé par exemple à ce que ma fonction find fasse en sorte que ma valeur objet soit contenue dans la cellule et qu'en plus de cela les deux premiers caractères soient strictement identiques... mais je ne vois pas comment écrire cela...
En vous remerciant par avance de votre aide !