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

VBA - Sélection fichier texte puis conversion automatique

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) :

 

Pierrot93

XLDnaute Barbatruc
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
@+
 

neal

XLDnaute Junior
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:

Discussions similaires

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