Récupérer variable dans un onglet d'un autre classeur

Fermé
Theo - 22 déc. 2020 à 16:48
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 23 déc. 2020 à 13:06
Bonjour à tous,

Je suis tout nouveau sur le forum et je suis débutant en VBA.

Je vous explique mon dilemme, je cherche à récupérer plusieurs variables se trouvant en colonne D dans un onglet nommé "Données" dans des fichiers que je ne souhaite pas ouvrir(trop grand nombre de fichier). Dans l'objectif après de tracer des courbes d'une même variable présent sur différents fichiers et donc de superposer toutes ces variables sur une même courbe.

Ce que j'ai réussi à faire jusqu'à maintenant : Parcourir tous les fichiers présents dans le sous-dossier de ma macro, récupérer le nom du fichier pour l'afficher sous forme d'onglet dans mon code et là je bloque. J'ai tenté quelque chose pour aller récupérer la colonne D de mes fichiers dans l'onglet "Données" mais ça ne fonctionne pas.

Voici mon code :
Sub test()

Dim nomFeuille As String
Dim start As Single

Dim ws As Worksheet
Dim monFichier As String
Dim wb As Workbook
Dim chemin As String
Dim i As Integer
Dim nom As String

Set wb = Workbooks(ThisWorkbook.Name)
Dim sh As Worksheet
chemin = ThisWorkbook.Path & "\l'emplacement_en_sous_dossier_de_mes_fichiers_excel\"

monFichier = Dir(chemin & "*.xlsx", vbNormal)

Do While monFichier <> ""
    Debug.Print monFichier
        onglet = Split(monFichier, "_")(4) 'je retiens que la fin du fichier
        
        wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = onglet
        'Cette boucle ne fonctionne pas et j'aimerais quelle récupère les valeurs de la colonne D commençant à la ligne 4 et colonne 2
        For Each sh In ActiveWorkbook.Worksheets
            For i = 8 To 150
                'colonne D
                j = 4
                Cells(i - 4, j - 2) = "='" & ThisWorkbook.Path & "\[" & monFichier & "]Données'!R" & i & "C" & j:
            Next
        Next sh
    monFichier = Dir
Loop

End Sub


Configuration: Windows / Edge 18.17763
A voir également:

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
22 déc. 2020 à 21:42
bonjour,
"Cette boucle ne fonctionne pas": que se passe-t-il?
qu'essaies-tu de faire dans cette boucle? merci d'être factuel et précis.
"récupère les valeurs de la colonne D commençant à la ligne 4 et colonne 2": récupérer de où? pour en faire quoi?
"récupérer la colonne D de mes fichiers dans l'onglet "Données"": veux-tu dire "copier la colonne D des fichiers vers l'onglet "Données" du fichier où se trouve la macro?

la ligne 29 me semble incorrecte, ce n'est pas ainsi qu'on insère une formule dans une cellule.
ce serait plutôt:
Cells(i - 4, j - 2).formula = '...
1
Bonjour, veuillez m'excuser pour mon manque de précision.

Le but à la fin est de récupérer toutes les données de la colonne D (dans l'onglet "Données") de chacun de mes fichiers présents dans mon dossier. Et concaténer toutes ces données sur un même graphique pour les comparer.

Le but de cette boucle est donc dans un premier temps de récupérer la colonne D de mes onglets "Données" pour l'afficher ensuite dans l'onglet correspondant de ma macro.
Le souci, est que la boucle me renvoie "l'indice n'appartient pas à la section, donc je suppose que la macro n'arrive pas à accéder à l'onglet "Données" des fichiers de mon dossier.


J'ai testé avec cette formulation, et ça fonctionne, j'arrive à récupérer les valeurs de ma colonne. Merci beaucoup !
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Theo
23 déc. 2020 à 13:06
peux-tu alors marquer la discussion comme résolue?
0