Conversion fiichier CSV

Maddad

XLDnaute Nouveau
Bonjour, j'ai fichier CSV que j'arrive à convertir manuellement (données, convertie), en utilisant comme séparateur "tabulation" et "virgule" à condition de l'ouvrir à partir d'un fichier excel, mais lorsque je veux le faire par macro (enregistrer macro) des données se perdent et des cellules restent vides, apparemment l'étape 'ouverture à partir d'un fichier excel' est importante, seulement je n'arrive pas à transcrire cette étape par macro.

Merci pour votre aide, j'ai voulu joindre le fichier en question, mais un message d'erreur me dit que le fichier et non valide
 

ERIC S

XLDnaute Barbatruc
Re : Conversion fiichier CSV

Bonjour

un principe d'ouverture de csv à regarder (on sélectionne le nom, on vérifie s'il n'est pas déjà ouvert, on met en forme les données, par colonnes)
pour ton fichier si tu le zippe cela devrait marcher, s'il n'est pas trop gros

Code:
'Ticket Listing
Valid = MsgBox("Mise à jour des données Ticket Listing ? ", vbYesNo)
If Valid = vbYes Then
'ouverture de fichier .csv
 Ouvrir = Application.GetOpenFilename(filefilter:="Fichier Ticket Listing(*.csv*),*.*", Title:="Récupération des Données Ticket")
    If Ouvrir = False Then
        MsgBox "aucun fichier sélectionné", vbOKOnly + vbCritical, "fin de procédure "
        Exit Sub
    End If
    Application.ScreenUpdating = False
    'Vérification si fichier déjà ouvert
    nbfichier = Workbooks.Count
    numfichier = 1
    dejaouvert = 0
    While numfichier <= nbfichier And dejaouvert = 0
        If Ouvrir = répertoire & "\" & Workbooks(numfichier).Name Then dejaouvert = numfichier
        numfichier = numfichier + 1
    Wend
    'ouvert > réactivation fenêtre sinon ouverture
    If dejaouvert <> 0 Then
        MsgBox "fichier déjà ouvert"
        Windows(Workbooks(dejaouvert).Name).Activate
    Else
    Workbooks.Open Filename:=Ouvrir, Format:=5
    End If
    fichiercible = ActiveWindow.Caption
    'mise en forme, séparateur ,
    If Range("B1").Value = "" Then
            Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 2), _
        Array(7, 2), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        )), TrailingMinusNumbers:=True
    End If
    Columns("A:Z").EntireColumn.AutoFit

' après tu copies sur la feuille qui t'intéresse et en final tu clos en revenant sur le fichier ouvert et 
' en faisant    ActiveWorkbook.Close savechanges:=False
  
    '
    
    
End If
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Conversion fiichier CSV

Bonjour à tous


Maddad
Essaie d'utiliser OpenText plutôt qu'Open
Extrait aide VBA
OpenText, méthode

Cette méthode ouvre et redistribue un fichier texte sous la forme d'un nouveau classeur ne comportant qu'une seule feuille dans laquelle se trouvent les données du fichier texte distribuées.
expression.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)

Cet exemple montre comment ouvrir le fichier Data.txt et utiliser les tabulations comme séparateurs pour redistribuer ce fichier texte dans une feuille de calcul.
Code:
Workbooks.OpenText filename:="DATA.TXT", _    dataType:=xlDelimited, tab:=True
 

Staple1600

XLDnaute Barbatruc
Re : Conversion fiichier CSV

Bonjour Modeste geedee

Merci pour le complément ;)

Ne pas oublier non plus de changer *.txt en *.csv

Et bon appétit à tous.

PS: L'extrait de l'aide VBA était livré tel quel à titre d'exemple (C'était pas une proposition de solution juste un copier/coller de l'aide destiner à inviter le demandeur à caresser sa touche F1 ;) )
 
Dernière édition:

Discussions similaires

Réponses
13
Affichages
405
Réponses
2
Affichages
283

Statistiques des forums

Discussions
312 492
Messages
2 088 893
Membres
103 982
dernier inscrit
krakencolas