Bonjour,
Je suis face à une erreur de capacité sur ma boucle dès que ma variable Y dépasse la ligne 255, je n'ai pas d'idée sur l'origine du problème .....
L'idée de la macro : dans le fichier excel principal, l'utilisateur rentre une date et lance la macro qui va comparer cette date avec le tableau de suivi et renvoyer à chaque correspondance des infos de la ligne dans le fichier principal.
Auriez-vous une solution miracle svp?
Merci
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
35
36
37
38
39
40
41
42
43
44 Sub recherchedinfos() Dim ExcelSuivi As Object, ExcelMacro As Object Dim tab_CopierColler(8) Dim C As String, D As String, E As String, F As String Dim Y As Range Dim k As Byte, l As Byte, m As Byte C = "\\Pmcfrsrv02\qualite\Autres\Gestion PV accus neufs et requalif" & "\Copie de 00 - Suivi PV.xls" Set ExcelMacro = ActiveWorkbook D = ActiveSheet.Name 'prend le nom de la feuille excel avec le tableau de macro E = Range("B1").Value 'la date à rechercher dans le fichier de suivi ExcelMacro.Sheets("feuil1").Range("A4:I100").ClearContents 'efface le contenu du tableau pour macro Application.CutCopyMode = False 'vide le presse papier (stockage de précédente données copier) pour optimiser la macro Set ExcelSuivi = Workbooks.Open(C) 'ouvre le fichier de référence avec le suivi de PV k = 4 For Each Y In ExcelSuivi.Sheets("destruction accus").Range("A2:A2000") If Y.Value = E Then l = Y.Row tab_CopierColler(0) = ExcelSuivi.Sheets("destruction accus").Range("B" & l) tab_CopierColler(1) = ExcelSuivi.Sheets("destruction accus").Range("J" & l) tab_CopierColler(2) = ExcelSuivi.Sheets("destruction accus").Range("C" & l) tab_CopierColler(3) = ExcelSuivi.Sheets("destruction accus").Range("D" & l) tab_CopierColler(4) = ExcelSuivi.Sheets("destruction accus").Range("E" & l) tab_CopierColler(5) = ExcelSuivi.Sheets("destruction accus").Range("F" & l) tab_CopierColler(6) = ExcelSuivi.Sheets("destruction accus").Range("G" & l) tab_CopierColler(7) = ExcelSuivi.Sheets("destruction accus").Range("H" & l) tab_CopierColler(8) = ExcelSuivi.Sheets("destruction accus").Range("I" & l) ExcelMacro.Sheets("feuil1").Activate For m = 0 To 8 If m <> 5 Then Cells(k, m + 1) = tab_CopierColler(m) Else Cells(k, m + 1) = Format(tab_CopierColler(m), "yyyy") Next m k = k + 1 End If Next Y ExcelSuivi.Close MsgBox ("fini") End Sub
Partager