Remplissage tableau de données et réutilisation dans une autre macro
Bonjour tout le monde,
j'ai problème qui à l'air simple mais je n'arrive pas à trouver la cause. J'essaie de récupérer une "base de données" dans un tableau de données pour le réutiliser dans d'autre macro. Hors ce tableau s'agrémente bien dans ma première macro mais quand je le réutilise dans ma seconde macro, j'ai l'impression qu'il est vide. Ce n'est pas la première fois que j'utilise cette fonction mais il y à surement quelque chose d'évident dans mon erreur mais je n'arrive pas le doigt dessus.
merci d'avance pour votre temps ci dessous mon code:
Sub Base_De_Données()
Dim BD As Range
Dim Ligne As Variant
Dim Colonne As Variant
Dim Tableau_Donnees(2771, 33) As String
Set BD = ActiveWorkbook.Sheets("BD QTE PRODUCTION").Range("A3:AH2774")
For Ligne = 3 To 2774
For Colonne = 1 To 34
Tableau_Donnees(Ligne - 3, Colonne - 1) = Sheets("BD QTE PRODUCTION").Cells(Ligne, Colonne).Value
'Debug.Print Tableau_Donnees(Ligne - 3, Colonne - 1)
Next Colonne
Next Ligne
End Sub
Sub Cherche_Date_Du_Jour()
Dim DateJ As Variant
Dim Ligne As Variant
Dim Colonne As Variant
Dim Ligne2 As Variant
Dim Colonne2 As Variant
Dim Tableau_Jour(6, 33) As String
Dim Tableau_Donnees(2771, 33) As String
Call Base_De_Données
For Ligne = 0 To 2771 'Step 7
If Date = Tableau_Donnees(Ligne, 0) Then
Debug.Print Tableau_Donnees(Ligne, 0)
Ligne2 = 0
Colonne = 0
Colonne2 = 0
Do While Ligne2 < 7
Do While Colonne2 < 34
Tableau_Jour(Ligne2, Colonne2) = Tableau_Donnees(Ligne, Colonne)
Colonne = Colonne + 1
Colonne2 = Colonne2 + 1
Loop
Ligne = Ligne + 1
Ligne2 = Ligne2 + 1
Loop
Debug.Print Tableau_Jour(Ligne2, Colonne2)
Exit For
End If
Debug.Print Tableau_Donnees(Ligne, 0)
Next Ligne
End SubMerci encore et bonne journée !
J'ai rajouté un "option explicit" avec du public sur mes tableaux mais rien ne change...
Option Explicit
Public Tableau_Donnees(2771, 33) As Variant, Tableau_Jour(6, 33) As Variant
Sub Base_De_Données()
Dim BD As Range
Dim Ligne As Variant
Dim Colonne As Variant
Dim Tableau_Donnees(2771, 33) As Variant
Set BD = ActiveWorkbook.Sheets("BD QTE PRODUCTION").Range("A3:AH2774")
For Ligne = 3 To 2774
For Colonne = 1 To 34
Tableau_Donnees(Ligne - 3, Colonne - 1) = Sheets("BD QTE PRODUCTION").Cells(Ligne, Colonne).Value
'Debug.Print Tableau_Donnees(Ligne - 3, Colonne - 1)
Next Colonne
Next Ligne
End Sub
Sub Cherche_Date_Du_Jour()
Dim DateJ As Variant
Dim Ligne As Variant
Dim Colonne As Variant
Dim Ligne2 As Variant
Dim Colonne2 As Variant
Dim Tableau_Jour(6, 33) As Variant
Dim Tableau_Donnees(2771, 33) As Variant
Call Base_De_Données
For Ligne = 0 To 2771 Step 7
If Date = Tableau_Donnees(Ligne, 0) Then
Debug.Print Tableau_Donnees(Ligne, 0)
Ligne2 = 0
Colonne = 0
Colonne2 = 0
Do While Ligne2 < 7
Do While Colonne2 < 34
Tableau_Jour(Ligne2, Colonne2) = Tableau_Donnees(Ligne, Colonne)
Colonne = Colonne + 1
Colonne2 = Colonne2 + 1
Loop
Ligne = Ligne + 1
Ligne2 = Ligne2 + 1
Loop
Debug.Print Tableau_Jour(Ligne2, Colonne2)
Exit For
End If
Debug.Print Tableau_Donnees(Ligne, 0)
Next Ligne
End SubEUREKA ! J'ai trouvé ! Le fait de remettre Dim Tableau...(...,....) à chaque début de sub redimensionnait les tableaux et par la même occasion les effaçaient...
Je vous post le bon code au cas où si quelqu'un passe par là !!
Merci et bonne journée !
Option Explicit
Public Tableau_Donnees(2771, 33) As Variant, Tableau_Jour(6, 33) As Variant
Sub Base_De_Données()
Dim BD As Range
Dim Ligne As Variant
Dim Colonne As Variant
'Dim Tableau_Donnees(2771, 33) As Variant FAUX !!!!!!!!!
Set BD = ActiveWorkbook.Sheets("BD QTE PRODUCTION").Range("A3:AH2774")
For Ligne = 3 To 2774
For Colonne = 1 To 34
Tableau_Donnees(Ligne - 3, Colonne - 1) = Sheets("BD QTE PRODUCTION").Cells(Ligne, Colonne).Value
Next Colonne
Next Ligne
End Sub
Sub Cherche_Date_Du_Jour()
Dim DateJ As Variant
Dim Ligne As Variant
Dim Colonne As Variant
Dim Ligne2 As Variant
Dim Colonne2 As Variant
'Dim Tableau_Jour(6, 33) As Variant FAUX !!!!!!!!!
'Dim Tableau_Donnees(2771, 33) As Variant FAUX !!!!!!!!!
Call Base_De_Données
For Ligne = 0 To 2771 Step 7
If Date = Tableau_Donnees(Ligne, 0) Then
Debug.Print Tableau_Donnees(Ligne, 0)
Ligne2 = 0
Colonne = 0
Colonne2 = 0
Do While Ligne2 < 7
Do While Colonne2 < 34
Tableau_Jour(Ligne2, Colonne2) = Tableau_Donnees(Ligne, Colonne)
Colonne = Colonne + 1
Colonne2 = Colonne2 + 1
Loop
Ligne = Ligne + 1
Ligne2 = Ligne2 + 1
Loop
Exit For
End If
Next Ligne
End Sub