Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

ouvrir un fichier . csv en utilisant une partie du nom

philmaure

XLDnaute Impliqué
bonjour,

J'ai un fichier CSV dont je ne connais qu'une partie du nom car il change chaque jour
le nom du fichier est précédé d'une date ex : 17/05/2017- statistiques.csv

dans mon code je met :

Sub test()
'ouverture d'excel
Set XLapp = CreateObject("Excel.Application")
XLapp.Visible = True
XLapp.Workbooks.Open "C:\temp\" & "statistiques.csv"

Merci pour votre aide

Cordialement
Philmaure
 

DoubleZero

XLDnaute Barbatruc
Bonjour, philmaure, le Forum,

En attendant "plus mieux bien" :
VB:
Option Explicit
Sub Fichier_x_csv_ouvrir()
    Dim chemin As String
    ChDir "C:\Users\DoubleZero\Downloads"    ' à adapter
    chemin = Application.GetOpenFilename("Fichier csv, *.csv")
End Sub
A bientôt
 

philmaure

XLDnaute Impliqué
Bonjour et merci pour la solution

La macro permet d'ouvrir l'explorateur et mettre en visibilité les fichier CSV présents dans le dossier.

Existe - t- il une solution pour ouvrir directment les fichiers dans Excel ?

Merci pour votre aide
cordialement
philmaure
 

philmaure

XLDnaute Impliqué
re-bonjour
j'ai enfin trouvé une solution qui pourra servir

Sub test()


MyFile = Dir("C:\test\*statistiques.csv")

If MyFile <> "" Then
Workbooks.Open Filename:=MyFile
Else
MsgBox "Fichier introuvable"
Exit Sub
End If
 

philmaure

XLDnaute Impliqué
re bonjour

me revoilà avec un pb afférant à la solution décrite ci dessus

lorsque j'ai lancer ma macro pour la 1ere fois le fichier csv s'est bien ouvert.

Par contre dorénavant si je refais un test la macro bogue



Le fichier n'a ni été renommé et est bien au bon emplacement

Workbooks.Open Filename:=MyFile => si je passe la souris sur la ligne cela m'indique le nom du classeur que j'ai ouvert précédemment

Existe t t il une solution pour effacer cette "mémoire tampon " ?

Merci pour votre aide
Cordialement
Philmaure
 

Pièces jointes

  • upload_2017-5-18_10-39-6.png
    9.3 KB · Affichages: 29

Dranreb

XLDnaute Barbatruc
Qu'est ce que ça a à voir avec ce que je disais ?
Dir ne donne que le nom, pas le chemin avec.
Il faut toujours Workbooks.Open Filename:="C:\test\" & MyFile
Sinon il le cherche sur le chemin courant, celui donné par CurDir.
 

RichardS

XLDnaute Junior
Bonjour à tous,
Je ne comprend plus rien. D'habitude une simple consultation du forum me permet de résoudre mon problème sans déranger personne. Mais là, rien ne fonctionne ... HELP !
Je possède un fichier csv dont le nom est variable (une partie fixe et une date) dont voici un exemple : export-operations-14-06-2018_08-25-48 Richard.csv.
Le répertoire est : P_TELE = "C:\Users\Richard\Downloads\".
Le nom donné au fichier dans le programme est : Exp = "export-operations-*.csv"

J'ai essayé d'appliquer vos solutions pour ouvrir ce fichier mais aucune ne fonctionne. Pourtant il existe dans le répertoire.
'----------Test d'existance des fichiers et ouverture
Aig = 0
Call Exist_Fic(P_TELE, Exp, Aig)
If Aig = 1 Then GoTo FIN
'Workbooks.Open Filename:=P_TELE & Exp, Local:=True
Application.GetOpenFilename (P_TELE & Exp)

Que ce soit avec Workbooks.Open ou avec GetOpen, aucun des deux ne m'ouvre le fichier ???
Sachant que le call Exist_Fic permet de tester l’existence du fichier dans le répertoire.

Pouvez vous m'aider SVP ?
Merci d'avance.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@RichardS
En régle générale, la coutume incite à créer sa propre discussion pour poser sa question plutôt que de ressuciter un vieux fil tout plein de poussière (ce qui n'est jamais bon en période d'allergie )
De plus cela évite qu'on se mélange les pinceaux...
[précaution d'usage - phrase en mode humoristique]
(A qui on répond à l'initiateur du fil original ou "au coucou qui a pondu sa question dans le nid d'un tiers" ?)
[/précaution d'usage]
 

RichardS

XLDnaute Junior
Re bonjour,

Je tourne en rond mais plus vraiment. J'ai mis le doigt sur le problème mais ne sais pas comment le résoudre.
En fait :
Workbooks.Open Filename:=P_TELE & Exp, Local:=True
fonctionne si Exp = "export-operations-14-06-2018_08-25-48.csv"
mais pas lorsque Exp = "export-operations-*.csv"
C'est donc mon * qui ne lui plait pas. Mais alors comment sélectionner mon fichier ?

Merci !
 

RichardS

XLDnaute Junior
Si je me suis permis c'est que la réponse à ma question semblait avoir déjà eu sa réponse.
Je sais maintenant que c'est mon * qui ne lui plait pas. mais ne sais toujours pas comment résoudre mon problème
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez comme ça :
VB:
Sub Test()
Const P_TELE = "C:\Users\Richard\Downloads\"
Dim ArgDir As String, NomFic As String
ArgDir = P_TELE & "export-operations-*.csv"
NomFic = Dir(ArgDir)
If NomFic = "" Then MsgBox "Acun fichier trouvé de la forme :" _
   & vbLf & ArgDir, vbCritical, "Test": Exit Sub
Workbooks.Open Filename:=P_TELE & NomFic
End Sub
Édition: Bonjour Staple1600
 

Staple1600

XLDnaute Barbatruc
Re


Pourquoi tu ne crées pas ta propre discussion ??
(tu n'as lu mon message précédent?)

Dans ta propre discussion, tu pourrais poser ta propre question et déposer ton propre fichier exemple dans lequel on pourrait lire ton propre code VBA

EDITION: Quoique c'est désormais un peu tard...
Bonjour Dranreb
 

RichardS

XLDnaute Junior
Bonjour,
Désolé pour le délai de réponse mais la vie de famille a quelques exigences.
Vous m'avez appris l'utilisation de "CONST" que je ne connaissais pas et surtout pourquoi mon "*" n'était pas pris en compte dans ma variable.
L'utilisation de :
ArgDir = P_TELE & "export-operations-*.csv"
NomFic = Dir(ArgDir)
au lieu de :
NomFic="export-operations-*.csv"
a résolu mon problème. Bien que je ne comprenne toujours pas pourquoi mais CA MARCHE.

Merci beaucoup, c'est super.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…