Ouvrir CSV par macro et prompt

Bonjour

Ma première intervention sur le forum, merci de m'accueillir

Je souhaiterai ouvrir un fichier CSV mais en proposant de sélectionner le csv, son nom étant variable

Ouvrir un CSV direct, ça le fait :

Workbooks.Open Filename:= _

"Toto.csv", local:=True

Demande de sélectionner un XLSX à ouvrir, ça le fait aussi :

MsgBox "Pointer sur le fichier" & FileToOpen

If not application.Dialogs(xlDialogOpen).Show("C:\" Then Exit Sub

Mais là si je sélectionner un CSV via cette méthode il me demande de le convertir à la main

Je n'arrive pas à mélanger les 2 commandes

Merci de votre aide

Thierry

Bonjour ThierryFra et bienvenue,

Une possibilté pour rechercher et ouvrir un fichier CSV est selon ci-dessous:

Sub OuvFich()
Fich=Application.GetOpenFileName(FileFilter:="Text Files (*.csv), *.csv", Title:="Ouverture d'un Fichier CSV")
if Fich = False then Exit Sub
Workbooks.Open Filename=Fich
End Sub

Bons tests, bonne continuation

super merci

J'ai adapté le Workbooks.Open Filename=Fich en Workbooks.Open Filename:=Fich , local:=True

ça fonctionne

par contre j'aimerai faire pointer le GetOpenFileName sur un chemin réseau UNC, j'ai beau faire un ChDir Chemin juste avant il me positionne par défaut dans "Mes Documents", en fouillant sur ce forum j'ai l'impression que le ChDir c'est avec des lecteurs réseaux et non avec des chemins UNC \\Serveur\Partage\Répertoire

A nouveau,

Pour l'adaptation à un chemin particulier afin d'afficher sur le dossier et sous-dossier souhaité.

Je passe par ChDir ("C:\Users\username\Dossier\SousDossier\") par exemple pour un chemin local.

Il faut que tu contrôles le chemin d'un fichier CSV particulier. En le récupérant par Workbook("Nomfichier").Path

Je ne suis pas en lecteur réseau avec une lettre, tout le monde n'a pas la même lettre, donc pour remédier à ça j'utilise les chemins UNC indépendant des lettres réseaux, du coup je ne veux pas faire pointer le GetOpen sur un c`:\Toto mais sur \\Serveur\Partage\Répertoire

Suite,

J'ai bien compris cela. Mais c'est un exemple que je te donnais pour du local.

Par contre ce que je souhaitais que tu fasses, c'est que tu ouvres un fichier xlsm comportant une macro workbook open ou que tu peux lancer et qui contient Fich=ActiveWorkbook.Path. Le fichier xlsm doit être dans l'emplacement ou se trouve tes fichiers CSV.

Afin de connaître le chemin de ceux-ci lorsque tu accèdes à un des ces fichiers CSV.

Le but étant de cibler le bon répertoire de ton réseau. Lorsque tu recherches ces CSV manuellement tu y accèdes bien.

Suite,

Tu peux voir un exemple pour le chemin réseau par le lien ci-dessous:

https://forum.excel-pratique.com/viewtopic.php?f=2&t=135750&p=833803&hilit=fichier+r%C3%A9seau#p833803

pas certain d'avoir tout compris, mon xlsm n'est pas le même répertoire que mes CSV, mais mon chemin réseau où est mon xlsm, j'arrive à le récupérer dans une variable sans problème et comme les CSV sont dans un sous répertoire normé je peux en déduire le chemin

il faudrait que je connecte un lecteur réseau via ce chemin afin de faire pointer la sélection de fichier sur ce lecteur, c'est ça ?

ça je peux le tenter, j'y ai pensé mais il va falloir que je teste une lettre libre, connecter un lecteur sur cette lettre, faire pointer dessus afin de récupérer le fichier et terminer en déconnectant le lecteur

Je vais tenter ça ce WE

bon ben je naviguerai à la main depuis le chemin proposé par défaut, je vais aller au plus pragmatique et merci pour la solution d'ouverture du CSV via sélection

Rechercher des sujets similaires à "ouvrir csv macro prompt"