Récupérer la colonne en fonction d'un nom sur un fichier fermé
Bonjour,
J'avais déjà requis votre aide sur ce Excel-pratique pour récupérer des données dans un fichier fermé.
Le code qui m'avait été proposé était le suivant, et fonctionnait très bien, tant qu'on connaissait la colonne qu'on souhaite récupérer à l'avance.
Ma demande maintenant serait de récupérer toutes les valeurs de la colonne qui porte le nom "coast" exemple, si la colonne prix est en cellule C2 (je ne le sais pas à l'avance) récupérer toutes les valeurs en dessous de prix, jusqu'à la dernière valeur de la colonne.
Mon code parcourt plusieurs fichiers présents dans un dossier et un onglet nommé
"Appartment" (ou ce situe la colonne "coast") et va créer un lien entre ma Macro en les mettant dans un onglet de ma macro, pour chaque fichier/onglet présent dans mon dossier.
Voici mon code :
Sub test()
Dim ws As Worksheet
Dim monFichier As String
Dim wb As Workbook
Dim chemin As String
Dim i As Integer
Dim nom As String
Dim FichierMain As String
Dim nlig As Long, ncol As Long
Dim fsource As Worksheet, fdest As Worksheet, trouve As Range, chercher As String
Set wb = Workbooks(ThisWorkbook.Name) 'classeur reception
chemin = ThisWorkbook.Path & "\test2\"
monFichier = Dir(chemin & "*.xlsx", vbNormal)
Do While monFichier <> ""
Debug.Print monFichier
onglet = Split(Split(monFichier, "-")(2), "_")(0)
'Ici je crée juste un onglet pour chaque fichier présent dans mon dossier et en recopiant un template présent dans l'onglet "Template"
wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = onglet
'Debug.Print onglet
Sheets("Template").Range("A1:AH127").Copy Destination:=wb.Sheets(onglet).Range("A1")
'Modification cellule A1 par le nom de l'onglet
nomFeuille = onglet
For Each Sheet In ActiveWorkbook.Worksheets
For celA1 = 9 To Sheets.Count
Sheets(celA1).Activate
Sheets(celA1).Range("A1").FormulaR1C1 = _
"=RIGHT(CELL(""nomfichier"",RC),LEN(CELL(""nomfichier"",RC))-FIND(""]"",CELL(""nomfichier"",RC)))"
Next celA1
Next
'C'est ici que j'aimerais récupérer une colonne en fonction d'un nom et nom de coordonnées.
'Temps
For p = 1 To Columns.Count
n = WorksheetFunction.CountA(Columns(p))
For i = 8 To n
For j = 3 To 3
Cells(i - 4, j - 2).FormulaR1C1 = "='" & ThisWorkbook.Path & "\[" & monFichier & "]coast'!R" & i & "C" & j
Next
Next
Next p
monFichier = Dir
Loop
End Sub
Merci d'avance pour votre aide.
Je modifie légèrement ma demande,
J'ai réussi à m'adapter en allant récupérer la colonne et non le nom de ma colonne.
Maintenant j'aimerais qu'au lieu de définir un intervalle de ligne, je crée une boucle en partant d'une ligne de départ comme dans mon exemple i = 8 et que je m'arrête quand je n'ai plus de ligne dans ma colonne exemple
i = 8 To n
(n symbolisant la fin de ma colonne).
Merci d'avance pour votre aide.