Chemin variable VBA

Bonjour au forum,

Voici le code qui me permet de sauvegarder un tableau sous forme csv selon un chemin déterminé :

Sub ImportCSV()

Dim Tbl As Variant, TblTemp As Variant, FileNumber&, i&, j&, chemin$, T#

FileNumber = FreeFile

'chemin = ThisWorkbook.Path & "\" Fichier sur le même répertoire

chemin = "P:\A\5 B\5 CSV IMPORT\"

chemin = chemin & "Import_" & Sheets("CSV").Cells(2, 1) & Format(Date, "_YYYY_MM_DD") & ".csv"

Tbl = Range("CSV_INITIAL_2").Value

ReDim TblTemp(LBound(Tbl, 2) To UBound(Tbl, 2))

Open chemin For Output As #FileNumber

For i = LBound(Tbl, 1) To UBound(Tbl, 1)
    For j = LBound(Tbl, 2) To UBound(Tbl, 2)
        TblTemp(j) = Tbl(i, j)
    Next j
    Print #FileNumber, Join(TblTemp, ";")
Next i

Close #FileNumber
End Sub

Je souhaiterai modifier le chemin en lui ajouter une variable année,

Le chemin serait donc

chemin = "P:\A\5 B\5 CSV IMPORT\" & ANNEE &"\"

Il y a un nom défini sur mon classeur ANNEE qui me donne l'année 2021,

Pouvez vous m'aider?

Cordialement,

Bonjour,

Il suffirait de rendre la procédure paramétrique, si tant est que le répertoire existe :

Sub TestImportCSV()

    ImportCSV "2021"

End Sub

Sub ImportCSV(ByVal AnneeImport As String)

Dim Tbl As Variant, TblTemp As Variant, FileNumber&, i&, j&, chemin$, T#

    FileNumber = FreeFile

    'chemin = ThisWorkbook.Path & "\" Fichier sur le même répertoire

    chemin = "P:\A\5 B\5 CSV IMPORT\" & AnneeImport & "\"

    chemin = chemin & "Import_" & Sheets("CSV").Cells(2, 1) & Format(Date, "_YYYY_MM_DD") & ".csv"

    Tbl = Range("CSV_INITIAL_2").Value

    ReDim TblTemp(LBound(Tbl, 2) To UBound(Tbl, 2))

    Open chemin For Output As #FileNumber

    For i = LBound(Tbl, 1) To UBound(Tbl, 1)
        For j = LBound(Tbl, 2) To UBound(Tbl, 2)
            TblTemp(j) = Tbl(i, j)
        Next j
        Print #FileNumber, Join(TblTemp, ";")
    Next i

    Close #FileNumber
End Sub

Bonjour eric Kergresse,

Merci pour ton retour mais je n'ai pas saisi toutes les subtilités de ta proposition,

Je ne souhaite pas saisir l'année sur le code VBA mais que celui ci soit écrit de façon à ce qu'il aille chercher le nom défini (ANNEE) pour définir le chemin,

Cordialement,

Il faudrait être plus explicite. Avec un exemple peut-être.

Bonsoir,

2test-forum.xlsm (18.84 Ko)

ok je joins un fichier exemple afin que vous puissiez comprendre ma demande,

Merci d'avance,

Cordialement,

Sub ImportCSV()
Dim Tbl As Variant, TblTemp As Variant, FileNumber&, i&, j&, chemin$, T#

FileNumber = FreeFile

'chemin = ThisWorkbook.Path & "\" Fichier sur le même répertoire

chemin = "P:\A\5 B\5 CSV IMPORT\" & Range("ANNEE_CLOTURE") & "\"

chemin = chemin & "Import_" & Sheets("CSV").Cells(2, 1) & Format(Date, "_YYYY_MM_DD") & ".csv"

Tbl = Range("CSV_INITIAL_2").Value

ReDim TblTemp(LBound(Tbl, 2) To UBound(Tbl, 2))

Open chemin For Output As #FileNumber

For i = LBound(Tbl, 1) To UBound(Tbl, 1)
    For j = LBound(Tbl, 2) To UBound(Tbl, 2)
        TblTemp(j) = Tbl(i, j)
    Next j
    Print #FileNumber, Join(TblTemp, ";")
Next i

Close #FileNumber

End Sub

Bonsoir Eric Kergresse,

Merci c'est parfait ça fonctionne,

Bonne soirée à vous,

Cordialement

Rechercher des sujets similaires à "chemin variable vba"