VBA - Sélection fichier texte puis conversion automatique

  • Initiateur de la discussion Initiateur de la discussion neal
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

neal

XLDnaute Junior
Bonjour à tous,

J’essaye de créer une macro permettant à l’utilisateur de cliquer sur un bouton dans Excel pour ouvrir une boîte de dialogue pour aller chercher un fichier à n’importe quel endroit.
Ce fichier est au format texte, il faut donc le convertir et je n’arrive pas à le faire automatiquement, et surtout quelque soit le nombre de lignes et de colonnes : les boîtes de dialogue de conversion apparaissent toujours, l’utilisateur est obligé de cliquer sur suivant>suivant>terminer).

Comment faire pour combiner les deux macros suivantes ?

Macro permettant d’ouvrir n’importe quel fichier à partir d’un bouton sous Excel :

Dim Fichier_traité As String
Application.Dialogs(xlDialogOpen).Show
Fichier_traité = ActiveWorkbook.Name
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1)
Windows(Fichier_traité).Close Savechanges:=False

Ma macro enregistrée pour ouvrir le fichier texte (bloc-notes) :

Workbooks.OpenText Filename:= _
"D:\Gd livre 010114 310514.txt" _
, Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
 
Re : VBA - Sélection fichier texte puis conversion automatique

Bonjour,

essaye peut être ceci :
Code:
Option Explicit
Sub test()
With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ActiveWorkbook.Path & "\"
    .Filters.Clear
    .Filters.Add "ma descrip", "*.txt"
    .Show
    If .SelectedItems.Count > 0 Then
        Workbooks.OpenText Filename:=.SelectedItems(1), Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
         xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
         Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
         Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
         Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1)), _
         TrailingMinusNumbers:=True
    End If
End With
End Sub
bonne journée
@+
 
Re : VBA - Sélection fichier texte puis conversion automatique

Woaw, merci pour la réponse super rapide, et merci pour la macro qui fonctionne à merveille (même si je ne la comprends pas!)

Du coup, j'en profite pour aller jusqu'au bout de mon "besoin" 😛

Une fois le fichier ouvert et converti dans Excel, j'ai une autre macro à faire tourner (voir ci-dessous) qui permet de retraiter les données comme je le souhaite. J'ai essayé de la combiner à la tienne, mais ça ne marche pas...

Code:
Set zone = ActiveSheet.UsedRange.Rows
ActiveSheet.Rows(2).Copy (ActiveSheet.Rows(1))
For Each i In zone
If i.Row <> 1 Then
If IsDate(i.Columns(1)) = False And IsNumeric(i.Columns(3)) = False And i.Row <> 1 Then
i.Columns(1) = "efface"
End If
If IsDate(i.Columns(1)) = False And IsNumeric(i.Columns(2)) = True Then
compte = i.Columns(2)
End If
If IsDate(i.Columns(1)) = True Then
i.Columns(7) = compte
End If
End If
Next
For Each i In zone
If i.Columns(1) = "efface" Then i.EntireRow.Clear
Next
For Each i In zone
If IsDate(i.Columns(1)) = False And i.Row <> 1 Then i.EntireRow.Clear
Next
ActiveSheet.UsedRange.Sort key1:=ActiveSheet.Columns(1), Header:=xlYes
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
486
Réponses
1
Affichages
795
Réponses
2
Affichages
1 K
Réponses
22
Affichages
3 K
Réponses
11
Affichages
2 K
Retour