Comment modifier ma macro pour ouvrir aussi un fichier .csv
Résolu
bassmart
Messages postés
281
Date d'inscription
Statut
Membre
Dernière intervention
-
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
bassmart Messages postés 281 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
J'ai un code qui a été créé par Patrice qui fonctionne très bien, qui me sert à ouvrir un fichier .dat et fait une mise en forme du fichier par la suite. J'aimerais ajouter le possibilité d'ouvrir aussi un fichier .csv.
J'ai essayé mais sans succès!! Je sais que c'est l'extension qu'il faut ajouter, mais je n'ia pas réussi la bonne méthode. J'avais ajouté un case dans la macro choisir-fichier.
Voici le code:
Merci beaucoup pour votre aide!
J'ai un code qui a été créé par Patrice qui fonctionne très bien, qui me sert à ouvrir un fichier .dat et fait une mise en forme du fichier par la suite. J'aimerais ajouter le possibilité d'ouvrir aussi un fichier .csv.
J'ai essayé mais sans succès!! Je sais que c'est l'extension qu'il faut ajouter, mais je n'ia pas réussi la bonne méthode. J'avais ajouté un case dans la macro choisir-fichier.
Voici le code:
'———————————————————————————————————————————————————————————————————————————————————————————— ' Module : mOuvrir ' Objet : Ouvre (et corrige) des fichiers de format non Excel ' ' Historique succint ' Date Developpeur Version Action Macro '———————————————————————————————————————————————————————————————————————————————————————————— ' 08/12/13 Patrice V1-0-00 Création mOuvrir ' ' ' DAO : Etablir une références à Microsoft DAO 3.6 Object Library ' Option Explicit Option Private Module ' '———————————————————————————————————————————————————————————————————————————————————————————— ' Constantes du module '———————————————————————————————————————————————————————————————————————————————————————————— ' Adresse des cellules de ' Public Sub Choisir_fichier(ByVal strType As String) ' Choix et ouverture d'un fichier ' ' Arguments : strExtension [in] Type de fichier ' ' Date Developpeur Version Action Macro '———————————————————————————————————————————————————————————————————————————————————————————— ' 17/01/13 Patrice V1-1-00 Création Choisir_fichier ' Dim wbkExtension As Workbook 'Fichier à ouvrir Dim strNomFichier As String 'Nom du fichier Dim strExtension As String 'Extension du fichier Dim intFormat As Integer 'Format de fichier Dim blnLocal As Boolean 'Format local Select Case strType Case "en.dat" strExtension = ".dat" intFormat = 2 'Csv anglais : virgule blnLocal = False Case Else MsgBox "Format non prévu" Exit Sub End Select 'Choisir le fichier fédéral (.dat pour le tirage) strNomFichier = mOuvrir.ParcourirFichier(strExtension, "M:\Entrepot\BDFS\1_Piézomètres\") If strNomFichier = "" Then Exit Sub 'Arrêter l'actualisation de l'écran Application.ScreenUpdating = False 'Ouvrir le fichier selon au format Set wbkExtension = Workbooks.Open(Filename:=strNomFichier, Format:=intFormat, local:=blnLocal) wbkExtension.Worksheets(1).Columns.AutoFit wbkExtension.Worksheets(1).Rows.AutoFit 'Rétablir l'actualisation de l'écran Application.ScreenUpdating = True UserForm2.Hide End Sub Function ParcourirFichier(ByVal strExtension As String, _ Optional ByVal strChemin As String = "") As String ' Choix d'un fichier ' ' Arguments : strExtension [in] Extension du fichier ' strChemin [in] Répertoire à parcourir ' ' Retour : String Chemin du fichier sélectionné, "" si annuler ' ' Date Developpeur Version Action Macro '———————————————————————————————————————————————————————————————————————————————————————————— ' 13/02/11 Patrice V1-0-00 Création - ParcourirFichier ' Dim dlgParcourir As FileDialog 'Boite de dialogue fichiers 'Repertoire par défaut : celui de cette macro If strChemin = "" Then strChemin = ThisWorkbook.Path 'Créer une boite de dialogue Parcourir fichier Set dlgParcourir = Application.FileDialog(msoFileDialogFilePicker) 'Selectionner le fichier With dlgParcourir .InitialFileName = strChemin .Title = "Sélectionner un fichier " & strExtension & " :" .AllowMultiSelect = False .InitialView = msoFileDialogViewDetails .ButtonName = "Sélection fichier" If .Filters.Count > 0 Then .Filters.Delete .Filters.Add "Fichiers " & strExtension, "*" & strExtension, 1 If .Show = -1 Then ParcourirFichier = .SelectedItems(1) Else ParcourirFichier = "" End If End With Set dlgParcourir = Nothing End Function
Merci beaucoup pour votre aide!
A voir également:
- Comment modifier ma macro pour ouvrir aussi un fichier .csv
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Comment ouvrir un fichier dat - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment réduire la taille d'un fichier - Guide
Il suffit de compléter le Select Case ... End Select comme ceci
Cordialement
Merci pour ta réponse.
J'ai essayé, mais ça ne fonctionne pas!
Quand il ouvre la boîte de dialogue, je n'ai pas l'option dans la fenêtre en bas à droite pour les fichiers avec l'extension .csv mais seulement les fichiers avec l'extension .dat.
Merci!
Tu devras certainement modifier le formulaire Userform2.
Mais sinon, sans rien modifier de ton code initial, tu peux tout simplement taper *.csv + Entréee dans le champ Nom du fichier de la fenêtre Selectionner un fichier. Comme ça tu changes le filtre et les fichiers csv seront listés.
A+.
Effectivement, ça fonctionne bien si je tape *.csv dans la barre.
Mais es-ce qu'il y a un moyen pour l'ajouter directement dans la boîte de dialogue? Quand tu dit modifier mon Userform2, ça serais d'ajouter l'option avec une case à cocher ou quelque chose du genre?
Merci!
Mais a un moment donné, tu dois bien indiquer au programme le type de fichier à ouvrir.
Dans ta macro, il est fait référence seulement au type "en.dat" (*.dat)
Y a-t-il d'autre types de définis?
Comment est sélectionné le type de fichier à ouvrir, bouton option? , Combobox?, Liste déroulante?, Text Box?...
Quel évènement lance la macro, clic sur bouton? , appui sur une touche?...
On pourrait aussi mettre plusieurs filtres dans la fenêtre Sélectionner un Fichier (*.dat; *.csv; *.txt), qu'on pourrait choisir directement dans cette fenêtre.
Plusieurs solutions sont envisageables, mais il faut donner plus de détails.
A+