XL 2010 Array variables

  • Initiateur de la discussion Initiateur de la discussion cp4
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
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
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
80
Retour