Bonjour,
J'ai besoin d'utiliser dans mon classeur principal (wb1), des donnees contenues dans un autre classeur (wb2). Pour cela, j'ai cree une sous procedure qui commence par ouvrir wb2, declare un tableau de taille variable, et enregistre les donnees qui m'interessent dans celui-ci.
J'appelle la sous-procedure dans la procedure principale et jusqu'ici pas de probleme, mais quand je souhaite utiliser les donnees du tableau declarees dans la sous-procedure, excel me renvoit l'erreur "sub or function not defined".
J'ai essaye de declarer le tableau "public" mais cela ne change rien.
Voici le code de la sous procedure pour donner une idee plus precise :
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 Private Sub gp3_extract() Dim ligne_insertion3 As Integer Dim taille_gp3 As Integer Dim lfdmax_gp3 As Integer Dim lisinmax_gp3 As Integer Dim fichier_gp3 As Workbook Set fichier_gp3 = Workbooks("\\kephren.sf.ca.lux\hldusers$\IR0\Desktop\GP3") fichier_gp3.Open lfdmax_gp3 = range("J65536").End(xlUp).Row lisinmax_gp3 = range("Q65536").End(xlUp).Row If lfdmax_gp3 > lisinmax_gp3 Then 'determiner valeur variable taille taille_gp3 = lfdmax_gp3 ElseIf lfdmax < lisinmax_gp3 Then taille_gp3 = lisinmax_gp3 ElseIf lfdmax_gp3 = lisinmax_gp3 Then taille_gp3 = lisinmax_gp3 End If Public tab_gp3() ReDim tab_gp3(taille - 1, 1) ligne_insertion3 = 0 For i = 1 To taille_gp3 If range("J" & i) Like "###" Or range("J" & i) Like "#####" And range("Q" & i) Like "????????????" Then tab_gp3(ligne_insertion3, 0) = range("J" & i) & range("Q" & i) 'attribution valeurs "KEY" dans premiere colonne tab_gp3(ligne_insertion3, 1) = range("AV" & i) 'attribution valeurs "weight" dans seconde colonne ligne_insertion3 = ligne_insertion3 + 1 End If Next End Sub
Et voila comment j'appelle la sous-procedure et (essaye) de copier les donnes du tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 gp3_extract For v = 1 To taille_gp3 Sheets("Sheet2").range("A" & v) = tab_gp3(v - 1, 0) Sheets("Sheet2").range("B" & v) = tab_gp3(v - 1, 1) Next fichier_gp3.Close
Merci d'avance pour votre aide et bonne journee![]()
Partager