Fichier CSV à transformer en fichier excel [Résolu]

marie11250 8 Messages postés vendredi 11 août 2017Date d'inscription 21 août 2017 Dernière intervention - 11 août 2017 à 14:03 - Dernière réponse :  bruno
- 21 août 2017 à 02:14
Bonjour,

J'ai importer un fichier CSV de mes articles en vente sur un site marchand.

Je souhaite m'en servir de base de données pour l'importer sous Prestashop.

Cependant, je ne sais pas comment faire avec ce fichier.

Je m'explique :
Il y a le titre sur une première ligne, puis une ligne vide, puis le descriptif sur plusieurs lignes, et enfin sur la dernière ligne du descriptif suit tous les éléments : prix, quantité, photos ....


Je ne peux donc pas convertir comme ça car cela ne marche pas.

Quelqu'un pourrait m'aider ?

(j'ai un fichier de 5000 lignes)

Merci d'avance


Afficher la suite 
8Messages postés vendredi 11 août 2017Date d'inscription 21 août 2017 Dernière intervention

16 réponses

Répondre au sujet
Patrice33740 6316 Messages postés dimanche 13 juin 2010Date d'inscription 11 décembre 2017 Dernière intervention - 11 août 2017 à 14:29
0
Utile
3
Bonjour,

Ton image est illisible !
Elle ne permet pas de voir le séparateur de champs.

Au lieu d'ouvrir le fichier directement, faire :
Données / Données Externes / A partir partir du texte / puis choisir délimité et définir le séparateur (probablement le point-virgule ou la virgule)
marie11250 8 Messages postés vendredi 11 août 2017Date d'inscription 21 août 2017 Dernière intervention - 11 août 2017 à 14:45
Merci pour votre réponse.

Effectivement, l'image n'est pas top ; c'est une capture écran ...

C'était vraiment pour montrer qu'il y a bien une ligne utilisable pour convertir les données car les séparateurs sont "," - mais le problème c'est qu'avant cette ligne, j'ai beaucoup de lignes de descriptif et titre et des lignes vides ... ce qui rend mon fichier inexploitable.

J'ai essayé ta technique mais ça a donné le même résultat qu'en l'ouvrant et en convertisseur avec les séparateurs ...
Patrice33740 6316 Messages postés dimanche 13 juin 2010Date d'inscription 11 décembre 2017 Dernière intervention > marie11250 8 Messages postés vendredi 11 août 2017Date d'inscription 21 août 2017 Dernière intervention - 11 août 2017 à 16:59
Avec un éditeur de texte (le Bloc Notes), supprimes les lignes inutiles dans le csv (gardes les titres)
eriiic 21187 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 11 août 2017 à 17:08
Bonjour,

Pourquoi -1 sur cette réponse ? je remet à 0

Le pb c'est que sans un extrait de 5-6 articles de ton csv et un xls avec le résultat attendu on ne ne pourra guère t'aider.
cjoint.com et coller les liens ici
eric
Commenter la réponse de Patrice33740
0
Utile
1
Bonjour
voila une veille macro pour import CSV a tester
A+
Maurice
Private Sub ChoixFicCsv()
Dim dossier As FileDialog
ChoixChemin = ActiveWorkbook.Path & Application.PathSeparator
   Set dossier = Application.FileDialog(msoFileDialogFilePicker)
      With dossier
         .AllowMultiSelect = False
         .InitialFileName = ChoixChemin
         .Title = "Choix d'un fichier CSV"
         .Filters.Clear
         .Filters.Add "Fichier Csv ", "*.csv*", 1
            If .Show = -1 Then
               Chemin = .SelectedItems(1)
               LireMan Chemin
            End If
      End With
   Set dossier = Nothing
End Sub

Sub LireMan(NomFichier)
Dim Ar() As String
   With Application
      .ScreenUpdating = False
      .EnableEvents = False
      .Calculation = xlManual
   End With
Rows("1:" & Rows.Count).ClearContents
Sep = ","
Lig = 1
' -----------------------------------------
On Error Resume Next
   Open NomFichier For Input As #1
        Do While Not EOF(1)
            Line Input #1, Chaine
               Ar = Split(Chaine, Sep)
               Col = 1
                  For x = LBound(Ar) To UBound(Ar)
                     Cells(Lig, Col).Value = CStr(Ar(x))
                     Col = Col + 1
                  Next
            Lig = Lig + 1
        Loop
    Close #1
' -----------------------------------------
   With Application
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      .EnableEvents = True
      .CutCopyMode = False
      .Goto [A1], True
   End With
End Sub
Patrice33740 6316 Messages postés dimanche 13 juin 2010Date d'inscription 11 décembre 2017 Dernière intervention - 11 août 2017 à 23:18
Cette macro effectue un traitement incomplet : elle ignore le cas où une virgule de trouve dans le texte d'un champ et dans ce cas le résultat est complètement faussé.
Commenter la réponse de Archer
NewApprenti 7 Messages postés dimanche 9 avril 2017Date d'inscription 16 août 2017 Dernière intervention - 14 août 2017 à 00:03
0
Utile
Bonjour,
quand tu ouvres ton classeur, Données-->Convertir-->cocher délimiter, suivant-->cocher virgule puis terminer
Commenter la réponse de NewApprenti
marie11250 8 Messages postés vendredi 11 août 2017Date d'inscription 21 août 2017 Dernière intervention - 20 août 2017 à 17:39
0
Utile
8
Bonjour,

Veuillez m'excuser pour cette longue absence ....

Je vous remercie pour vos réponses.
Un ami m'a solutionné le problème .... je ne saurai dire comment .... désolée

Par contre, j'ai un autre souci : je souhaiterai supprimé plusieurs mots qui sont dans la même cellule; en fait, j'ai ces caractères **** puis du texte, et je voudrai supprimer les mots à partir des étoiles ***
Comment puis je faire ?

Merci
marie11250 8 Messages postés vendredi 11 août 2017Date d'inscription 21 août 2017 Dernière intervention > bruno - 20 août 2017 à 22:21
Cette formule marche super !!!

Merci beaucoup !
bruno > marie11250 8 Messages postés vendredi 11 août 2017Date d'inscription 21 août 2017 Dernière intervention - 21 août 2017 à 02:14
 
Bonjour Marie,

Ma formule donne bien le bon résultat, mais par étourderie, je l'ai faite plus
compliquée que ce que j'aurais dû faire ; la formule d'eriiic est plus simple :

=SIERREUR(GAUCHE(A2;CHERCHE("~*";A2)-1);A2)

J'espère que tu reviendras sur ce sujet et que tu liras ce message ;
n'oublie pas de corriger dans ton vrai fichier !  ;)

Cordialement
 
eriiic 21187 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 20 août 2017 à 19:12
J'avais un A9 à la place d'un A2, je pense que tu avais corrigé.
Sinon pour ta dernière question ça serait plutôt
=SIERREUR(GAUCHE(A2;CHERCHE("~*";A2)-1);A2)

eric
bruno > eriiic 21187 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 20 août 2017 à 19:57
Tu as raison, eriiic, ta formule est plus simple que la mienne !
eriiic 21187 Messages postés mardi 11 septembre 2007Date d'inscriptionContributeurStatut 12 décembre 2017 Dernière intervention - 20 août 2017 à 20:31
Un petit peu :-)
En fait je n'avais pas vu ton Gauche() au début et cru que tu retournais NBCAR(A2)
Commenter la réponse de marie11250