XL 2019 Erreur avec CurDir

re4

XLDnaute Occasionnel
Bonjour,
N'étant pas un expert ;-( je bloque sur ce petit code, j'ai remplacé ChDir par CurDir pour rester dans le même répertoire à l'ouverture d'une autre fenêtre mais il y a une erreur ici
If Fichier <> False Then

Pouvez-vous m'aider c'est visiblement pas la bonne procédure
Merci

VB:
' ChDir ThisWorkbook.Path
    CurDir ThisWorkbook.Path
    Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
    If Fichier <> False Then
        LireCSV Fichier
    End If
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Une autre proposition, qui permet d'ouvrir la boîte de dialogue directement sur le dossier du classeur :
Bonjour marcel32
si tu regardes un peu, tu verras que c'était dans le code originel et dans mes propositions des posts 7 et 10
mais apparemment cela ne convient pas et re4 veut démarrer dans un dossier spécifique qu'il n'a pas précisé d'oû son post 6 et mon post 13
Merci pour vos réponses qui m'ont mis sur la piste, le code ci-dessous semble fonctionner
A la seconde ouverture, je vais bien chercher le 2éme fichier dans le même répertoire.
Bonne soirée
 

TooFatBoy

XLDnaute Barbatruc
si tu regardes un peu, tu verras que c'était dans le code originel et dans mes propositions des posts 7 et 10
mais apparemment cela ne convient pas et re4 veut démarrer dans un dossier spécifique qu'il n'a pas précisé d'oû son post
6 et mon post 13
re4 à dit:
Merci pour vos réponses qui m'ont mis sur la piste, le code ci-dessous semble fonctionner
A la seconde ouverture, je vais bien chercher le 2éme fichier dans le même répertoire.
J'avoue que je n'avais pas bien compris...
Et comme le message que tu cites ne donne aucune explication sur le dossier désiré, et qu'il est tout à fait normal que la deuxième fois le dossier soit le bon puisqu'il reste identique, ça ne m'a pas aidé à comprendre. ;)

Et dans le code originel, j'ai simplement vu CurDir ThisWorkbook.Path qui m'avait laissé croire qu'il voulait que le dossier courant soit le dossier du classeur.


ps : j'avais bien regardé et même testé ton code en #7, mais comme il n'ouvrait pas sur le dossier du classeur (et je n'avais pas vu que tu utilisais ThisWorkbook.Path), j'ai voulu essayer d'aider en proposant une possibilité.
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonsoir Marcel32

Tu ne m'as pas vu passer ?
Si, je t'ai vu, et c'est vrai que j'aurais peut-être dû laisser le demandeur donner les précisions que tu avais demandées dès le départ. ;)

M'ais en voyant ça dans son code :
VB:
Dim MyPath
    MyPath = CurDir 'ThisWorkbook.Path
Je me suis dit qu'il y avait un soucy, j'ai tenté un corrigeage... 😔
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

=>Marcel32
C'est vrai que tu es plus Léonard N. que David V.
Ou pour être raccord Roy T. que Spoke
Donc pour les adorateurs de la Pomme, le "cauchemar" commencera si jamais si...;)

Question en passant
Quitte à ouvrir un fichier, pourquoi ne pas le faire avec sa souris ? (sans VBA)
Ca entretient la dextérité et sollicite la QAT ;)

NB: je voulais juste être prévenant. Un bon samaritain, quoi.
Sans doute de veilles séquelles des temps anciens où j'officiais comme enfant de cœur.

EDITION: En relisant tout le fil, je crois que tu n'as vu ce à quoi je faisais allusion ;)
 

Staple1600

XLDnaute Barbatruc
Re

Pour revenir dans le thème, il reste aussi l'artillerie lourde
Je parle de
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
etc...

De l'API donc

Mais comme ce n'est pas forcément sage et raisonnable, je n'irai pas plus loin.

Je laisse le demandeur g..ler cette fonction pour trouver des exemples sur le net si jamais sa curiosité l'y pousse ;)
 

re4

XLDnaute Occasionnel
Bonjour,

Une autre proposition, qui permet d'ouvrir la boîte de dialogue directement sur le dossier du classeur :
VB:
Sub csv_Import()
'
Dim GestionFS As Object
Dim Fichier As Variant

    Sheets("Mise_en_forme").Visible = True
    Worksheets("Mise_en_forme").Select

    Set GestionFS = CreateObject("Scripting.FileSystemObject")
    ChDrive (GestionFiS.GetDriveName(ThisWorkbook.Path))
    ChDir (ThisWorkbook.Path)

    Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
    If Fichier <> False Then LireCSV Fichier

End Sub
Bonjour
Merci pour votre retour.
Erreur de complation ici GestionFiS
 

re4

XLDnaute Occasionnel
Bonjour,

Une autre proposition, qui permet d'ouvrir la boîte de dialogue directement sur le dossier du classeur :
VB:
Sub csv_Import()
'
Dim GestionFS As Object
Dim Fichier As Variant

    Sheets("Mise_en_forme").Visible = True
    Worksheets("Mise_en_forme").Select

    Set GestionFS = CreateObject("Scripting.FileSystemObject")
    ChDrive (GestionFiS.GetDriveName(ThisWorkbook.Path))
    ChDir (ThisWorkbook.Path)

    Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
    If Fichier <> False Then LireCSV Fichier

End Sub

Bonjour,
Merci pour votre retour, erreur de compilation ici GestionFiS
 

re4

XLDnaute Occasionnel
re,
alors voila votre macro modifiée
Cordialement
VB:
Sub csv_Import()
Sheets("Mise_en_forme").Visible = True
Worksheets("Mise_en_forme").Select
With Application.FileDialog(msoFileDialogFilePicker)
    .ButtonName = "Lire"
    .AllowMultiSelect = False
    .InitialFileName = CurDir & "\"
    .Title = "Choisissez le fichier csv"
    .Filters.Clear
    .Filters.Add "Fichiers Csv", "*.csv", 1
    .Show
    If .SelectedItems.Count > 0 Then LireCSV .SelectedItems(1)
End With
End Sub
 

re4

XLDnaute Occasionnel
Marcel32
Oui, en fait dans une précédente macro je vais chercher des infos dans un fichier excel ( il y a plusieurs répertoires avec un xls et un csv) et avec la macro de notre sujet je vais chercher des données dans un fichier csv qui est dans le même dossier que le précédent, comme vous l'avez compris ça évite de se balader dans les répertoires ,-)
Comme je le disais la macro du post #6 fonctionne. Si vous estimez qu'une autre procédure est meilleure pourquoi pas.

Bernard_XLD
Je viens de tester, ta macro #29 fonctionne aussi

Merci à vous tous, j'admire votre savoir
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
158