Comment structurer fichier excel

Résolu/Fermé
B95190 Messages postés 119 Date d'inscription mardi 16 février 2010 Statut Membre Dernière intervention 14 juillet 2011 - 28 juin 2010 à 18:01
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 29 juin 2010 à 09:57
Bonjour,
j'ai un fichier excel contenant des données sur mes clients et je souhaite structurer ces données.
Actuellement mon fichier à la forme suivante :
"Durand","jacques","0505334422","PARIS"
et je voudrais creer un tableau excel avec le nom, le prénom,le numéro et la ville de chaque client.
Est il possible de faire cela et comment le faire en evitant d'avoir a copier manuellement chaque information puisque j'ai plus de 500 clients 0_u ??
Merci a tous
A voir également:

4 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
28 juin 2010 à 18:55
Bonjour
on peut y arriver par formule si le fichier est évolutif!mais avant de compliquer(c'est assez tordu), si vos données sont telles que vous le dites:
si on est sous excel 2007:
1° opération:
sélectionnez la colonne pour supprimer les "" qui nous embêtent et ne conserver que les virgules:
soit/ Onglet "Accueil" à droite: Recherche etc...
sélectionnez:
remplacer
en haut " en bas rien
et cliquez sur remplacer tout
ensuite, toujours avec la colonne sélectionnée:
onglet Données Outil de données / convertir
cochez "délimité" et "suivant" et "virgule" et "terminer"
vos données sont rangées en colonne selon les positions des virgules.

Ps vous pouvez aussi éviter la 1° opérations en choisissant: autre et en entrant " dans la case réservée.
Vous aurez alors une colonne vide entre chaque rubrique.

Crdlmnt

1
B95190 Messages postés 119 Date d'inscription mardi 16 février 2010 Statut Membre Dernière intervention 14 juillet 2011 25
28 juin 2010 à 18:27
up?
0
B95190 Messages postés 119 Date d'inscription mardi 16 février 2010 Statut Membre Dernière intervention 14 juillet 2011 25
28 juin 2010 à 21:21
Mercii beaucoup, j'ai essayé et ça fonctionne.J'ai une autre question, est il possible de faire en sorte que ces manipulations soit automatisées car je dois faire ce travail pour plusieurs fichiers.?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 28/06/2010 à 21:33
" est il possible de faire en sorte que ces manipulations soit automatisées "

... sans doute, mais moi je ne sais pas!
avec mes regrets
Bonne chance.
crdlmnt
Ps à tout hasard le libellé de la macro qui fait le travail:

Sub SEPARE()
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=True, Other:=False, FieldInfo:= _
Array(Array(1, 1), Array(2, 1), Array(3, 1),Array(4, 1), TrailingMinusNumbers:=True
End Sub
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 289
29 juin 2010 à 09:57
voici une proposition pour automatiser mais à mon avis
la source de ton fichier aurait pu être redistribuer comme te l'as indiqué vaucluse.

note aussi 2 points :
1 ) je considère qu'il y a une ligne de titre donc je commence en A2
2) le 0 du numéro de telephone va disparaître il suffit d'appliquer le format spécial
pour l'affichage du tel.

bonne journée.


Sub decoupage()

Dim DerLig As Long
Dim Ligne As String
Dim K As Integer
Dim I As Integer
    Range("A1").Select
    Selection.CurrentRegion.Select
    ' suppression des guillemets
    Selection.Replace What:="""", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

DerLig = Range("A65535").End(xlUp).Row
' je suppose que le tableau commence en A2
' s'il commence en A1 : changer le 2 en 1
' sur la ligne suivante
K = 2
For I = 2 To DerLig
     Ligne = Cells(I, 1).Value
     While Len(Ligne) > 0
        If Left(Ligne, 1) = "," Then
            K = K + 1
            Ligne = Right(Ligne, Len(Ligne) - 1)
        Else
          
             Cells(I, K).Value = Cells(I, K) & Left(Ligne, 1)
             Ligne = Right(Ligne, Len(Ligne) - 1)
           
        End If
        
     Wend
     K = 2


Next
End Sub
0