Bonjour à tous,
Je suis débutant en VBA et je me confronte à un problème avec la fonction FIND.
En effet, mon objectif est de remplir automatiquement un tableau à partir d'un tableau de donnée. ainsi je recherche la date de mon tableau de donnée dans le tableau finale afin d'avoir la ligne (et même chose pour une deuxième date mais en colonne) et donc de copier une valeur dans la cellule colonne et ligne correspondante
J'ai malheureusement un problème avec la fonction find du type erreur 424 objet requis.
Pour que cela soit plus clair, je vous met mon code ci dessous : (le copier coller de am valeur n'est pas encore présent)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub Execute() Dim t0 As Date 'T0 Dim C As Integer 'colonne correspondant au T0 Dim datemaj As Date 'date de maj Dim L As Integer'ligne correspondant a la date de maj Dim nb_ligne As Integer 'correspond au nombre de ligne max dans le tableau de données Dim qte As Integer ' correspond à la quantité de produit Dim i As Integer Application.ScreenUpdating = False nb_ligne = Sheets("Données à remplir").Range("A" & Rows.Count).End(xlUp).Row i = Sheets("Données à remplir").Range("A1") For i = i To nb_ligne 'pour chaque ligne de mon tableau de donnée je veux comparer les deux date afin de copier qte dans le tableau cible With Sheets("Données à remplir") t0 = .Cells(i, 5).Value datemaj = .Cells(i, 1).Value If Not .Cells(i, 6) = "Signé" Then qte = .Cells(i, 6).Value End If End With With Sheets("Historical data") If Not .Columns(1).Find(t0, lookAt:=xlWhole).Row Is Nothing Then 'je vérifie si il a trouvé la ligne sinon on passe car L ne peut pas avoir la valeur nothing L = .Columns(1).Find(t0, lookAt:=xlWhole).Row 'L prend la valeur de la ligne correspondante End If End With ' C = Sheets("Historical data").Rows(4).Find(datemaj, LookIn:=xlValues, lookAt:=xlWhole).Columns 'c'est en commentaire car je veux d'abord régler le problème de la ligne ' Sheets("Historical data").Cells(L, C) = qte Next End sub
JE pense que le problème n'est pas trop complexe mais j'avoue que je suis à court d'idée pour régler ce problème..
Merci d'avance à vous qui allez m'aider.
Partager