XL 2010 Array variables

cp4

XLDnaute Barbatruc
Bonjour,

Je suis coincé. Avec la procédure ci-dessous, je parviens à ouvrir plusieurs fichiers à une seule feuille et récupérer l'adresse.
VB:
Sub MesMois()
   Dim Fichiers As Variant, i As Integer, T As Variant

   Fichiers = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", , , , True)
   If IsArray(Fichiers) Then
      For i = 1 To UBound(Fichiers)
         Workbooks.Open Fichiers(i)
         'T(i) = Workbooks(Dir(Fichiers(i))).Sheets(1).UsedRange.Value
         Debug.Print Workbooks(Dir(Fichiers(i))).Sheets(1).UsedRange.Address
      Next
   End If
End Sub
Je ne parviens pas à récupérer les valeurs dans un tableau (array).
Autrement dit, avoir des tableaux T&i pour chacun des fichiers.

Avec mes remerciements anticipés.
 
Solution
Salut @cp4
A voir, chaque T correspond à un fichier mais chaque T peut être également des tableaux d'indices différents...
VB:
Sub MesMois()
   Dim Fichiers As Variant, i As Integer, T As Variant, Wb As Workbook

   Fichiers = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", , , , True)
   If IsArray(Fichiers) Then
        ReDim T(1 To UBound(Fichiers))
        For i = 1 To UBound(Fichiers)
            Set Wb = Workbooks.Open(Fichiers(i))
                T(i) = Wb.Sheets(1).UsedRange.Value
                Debug.Print Wb.FullName, Wb.Sheets(1).UsedRange.Address
                Wb.Close
            Set Wb = Nothing
        Next
   End If
End Sub

fanch55

XLDnaute Barbatruc
Salut @cp4
A voir, chaque T correspond à un fichier mais chaque T peut être également des tableaux d'indices différents...
VB:
Sub MesMois()
   Dim Fichiers As Variant, i As Integer, T As Variant, Wb As Workbook

   Fichiers = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", , , , True)
   If IsArray(Fichiers) Then
        ReDim T(1 To UBound(Fichiers))
        For i = 1 To UBound(Fichiers)
            Set Wb = Workbooks.Open(Fichiers(i))
                T(i) = Wb.Sheets(1).UsedRange.Value
                Debug.Print Wb.FullName, Wb.Sheets(1).UsedRange.Address
                Wb.Close
            Set Wb = Nothing
        Next
   End If
End Sub
 

cp4

XLDnaute Barbatruc
Salut @cp4
A voir, chaque T correspond à un fichier mais chaque T peut être également des tableaux d'indices différents...
VB:
Sub MesMois()
   Dim Fichiers As Variant, i As Integer, T As Variant, Wb As Workbook

   Fichiers = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", , , , True)
   If IsArray(Fichiers) Then
        ReDim T(1 To UBound(Fichiers))
        For i = 1 To UBound(Fichiers)
            Set Wb = Workbooks.Open(Fichiers(i))
                T(i) = Wb.Sheets(1).UsedRange.Value
                Debug.Print Wb.FullName, Wb.Sheets(1).UsedRange.Address
                Wb.Close
            Set Wb = Nothing
        Next
   End If
End Sub
Bonjour Fanch55;),

Vraiment content de te croiser👍. ça fait un bon moment.
Je te remercie pour ton aide. C'est exactement le résultat attendu.
En fait, je voulais aider et je me suis retrouvé coincé.
Je sais bien qu'on doit redimensionner un Array, mais des fois on dirait que mes neurones sont en hibernation.
Si tu veux apporter ta contribution ---> cette discussion

edit: j'ai compris

Encore merci.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 782
Messages
2 112 920
Membres
111 701
dernier inscrit
aelbachiri