Bonjour a tous,
je dois faire une fonction de recherche et d'ajout. je m'explique
j'ai un classeur avec deux feuilles, dans la feuille A, je prend chaque élément de la colonne A et je dois les rechercher dans ma feuille B, il peut y avoir plusieurs fois le même élément dans la feuille B.
Après chaque "trouvaille" dans la feuille B, on copie le reste de la ligne de la feuille A à partir de la cellule (CV) dans la ligne de l'élément trouver
ensuite je voudrais mettre les éléments copier dans la feuille B en rouge et gras
j'ai trouvé la fonction Find() grâce à l'aide VB, malheureusement j'ai une erreur dessus:
référence incorrecte ou non qualifiée
est-ce que quelqu'un peut m'aider à résoudre l'erreur
L'erreur est a la ligne Set Final = .Find(Valeur)
merci
je dois faire une fonction de recherche et d'ajout. je m'explique
j'ai un classeur avec deux feuilles, dans la feuille A, je prend chaque élément de la colonne A et je dois les rechercher dans ma feuille B, il peut y avoir plusieurs fois le même élément dans la feuille B.
Après chaque "trouvaille" dans la feuille B, on copie le reste de la ligne de la feuille A à partir de la cellule (CV) dans la ligne de l'élément trouver
ensuite je voudrais mettre les éléments copier dans la feuille B en rouge et gras
j'ai trouvé la fonction Find() grâce à l'aide VB, malheureusement j'ai une erreur dessus:
référence incorrecte ou non qualifiée
est-ce que quelqu'un peut m'aider à résoudre l'erreur
Code:
Sub Test_traitement()
Dim resultat As String
Dim Fichier_Cto As String, Fichier_A As String, fichier_Bilan As String
Dim Cto As String, A As String, Bilan As String
Dim objFSO As Object
Dim Rec As Range, Final As Range
Dim Valeur As Double, i As Double
Dim firstAddress As String
'demande à l'utilisateur de saisir le chemin d'accès pour trouver les fichiers a traiter
resultat = InputBox("Entrer le chemin d'accès au dossier contenant les fichiers que vous voulez ouvrir", "Titre", "chemin d'accès")
Cto = Dir(resultat + "\CTO*.xls")
A = Dir(resultat + "\A30*.xls")
Fichier_Cto = resultat + "\" + Cto 'donne le chemin d'accès au fichier cto*.xls
Fichier_A = resultat + "\" + A 'donne le chemin d'accès au fichier A30*.xls
Set objFSO = CreateObject("Scripting.FileSystemObject") 'test de l'existance du fichier
If objFSO.FileExists(resultat + "\bilan a.xls") Then 'ouverture du classeur bilan a
Workbooks.Open Filename:=(resultat + "\bilan a.xls")
Else
Workbooks.Add.SaveAs (resultat + "\bilan a.xls") 'création et sauvegarde d'un classeur bilan a
Worksheets.Add.Name = "Cto"
End If
Bilan = Dir(resultat + "\Bilan*.xls")
fichier_Bilan = resultat + "\" + Bilan
Workbooks.Open Filename:=Fichier_Cto 'ouvre le premier classeur
Workbooks.Open Filename:=Fichier_A 'ouvre le deuxième classeur
Workbooks(Cto).Worksheets("Check A30").Copy before:=Workbooks("bilan a.xls").Worksheets("Cto")
'copie la feuille a30 du classeur CTO*.xls
Workbooks(A).Worksheets(1).Copy After:=Workbooks("bilan a.xls").Worksheets("Cto")
'copie de la feuille du tableur A30*.xls dans le bilan
Workbooks(Bilan).Worksheets("check A30").Activate 'on se met sur la feuille check A30
'With Worksheets("check A30").Range("A19:A200")
Rec = "A19" 'on commence la recherche a la ligne 19
While Range(Rec).Value <> "" 'tant que la cellule n'est pas vide on continu
Valeur = Range(Rec).Value 'on garde la valeur a rechercher
Workbooks(Bilan).Worksheets("Sheet1").Activate 'on se place dans l'autre feuille
Set Final = .Find(Valeur) 'on cherche la valeur dans l'autre classeur
If Not Valeur Is Nothing Then 'si la valeur est trouver alors
firstAddress = c.Address 'on garde le numero de la case de laquelle on part pour le test final
Do
Range(Final).Row(CV) = Range(Rec).Row(B) 'on copie le contenu de la ligne de rec a partir de la colone B dans l'autre page a la ligne trouvée à partir de la colone CV
Set Final = .FindNext(Final) 'on passe à l'élément suivant
Loop While Not Final Is Nothing Or Valeur.Address <> firstAddress 'test de sortie de la boucle si final est vide ou si on est retourné sur la première cellule traitée
End If
Next Rec
Workbooks(Bilan).Save 'on sauvegarde le fichier traité
End Sub
L'erreur est a la ligne Set Final = .Find(Valeur)
merci