Convertir une liste pour l'utiliser dans Excel

Résolu/Fermé
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 - 26 nov. 2021 à 22:42
DjiDji59430 Messages postés 4138 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 5 novembre 2024 - 29 nov. 2021 à 18:54
Salutations à tous.
j'ai une liste de personnes dont les caractéristiques sont présentées en continue: nom prénom, adresse, code postal, âge, salaire. comment segmenter ces informations pour les rendre manipulable en Excel. j'ai déjà utilisé un logiciel qui permettait facilement d'exécuter cette tâche. mais la mémoire....
merci à vous.
A voir également:

10 réponses

Raymond PENTIER Messages postés 58719 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 7 novembre 2024 17 233
27 nov. 2021 à 00:57
Bonsoir Ulysse.

Il ne faut pas prendre à la lettre le verbe "importer" utilisé par brucine !
Une fois que tu as copié ton texte "Papa ;maman ;tatie ;tonton" dans la cellule A1 d'Excel, tu dois faire
DONNÉES/Outils de données/Convertir puis Type délimité et Séparateur Point-virgule ...


Les 4 éléments sont dispatchés entre les cellules A1, B1, C1 et D1.
1
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 1
27 nov. 2021 à 18:39
Très bien expliqué! Problème résolu.
Comme mentionné dans ma demande complémentaire, existe-t-il un moyen d'insérer les ";" autrement qu'un à un? La manipulation que j'ai à exécuter est mensuelle et s'applique pour environ 50 lignes avec 5 insertions chacune.
À nouveau, merci.
0
yclik Messages postés 3691 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 2 novembre 2024 1 512
27 nov. 2021 à 21:20
Bonsoir
Classeur à tester
1
brucine Messages postés 17586 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 7 novembre 2024 2 562
27 nov. 2021 à 21:55
Oui,

Tout moyen est de toute façon capillotracté parce qu'il n'y a pas d'espaces qu'entre les champs souhaités (sans quoi on aurait pu s'en servir comme délimiteurs ou les remplacer automatiquement par des points-virgules, par exemple via un batch) et que les noms de magasins et de localités n'ont pas tous le même nombre de caractères et surtout parce que, concernant les premiers, ils peuvent avoir un nombre d'espaces variables.

Si maintenant il y avait moyen d'écrire à partir de la base de données les magasins sur un mode du style
LE_ COCHON _DINGUE, on serait sauvés et cela deviendrait plus simple.
0
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 1
29 nov. 2021 à 17:12
Merci yclik. je regarde votre proposition de près.
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
29 nov. 2021 à 11:47
Bonjour,

une approche en vba si "QC" est toujours présent

cette macro lit le fichier texte et scinde chaque ligne.

A mettre dans un module et appelez la macro LireFichierTexteParLigne()
en ayant eut soin d'adapter le chemin du fichier texte:

Option Explicit
Sub LireFichierTexteParLigne()
'par: https://excel-malin.com
Application.ScreenUpdating = False
On Error GoTo CodeErreur
Dim IndexFichier As Integer
Dim MonFichier As String
Dim ContenuLigne As String
Dim i As Long
MonFichier = "C:\Users\LePivert\Documents\essai.txt" '<-- mettez ici le nom du fichier à lire
IndexFichier = FreeFile()
Open MonFichier For Input As #IndexFichier 'ouvre le fichier
i = 1
While Not EOF(IndexFichier) '
    Line Input #IndexFichier, ContenuLigne     ' lecture du fichier ligne par ligne: la variable "ContenuLigne" contient le contenu de la ligne active
    Cells(i, 1) = ContenuLigne
    'ajoutez ici votre code à appliquer pour chaque ligne
    scinderligne (i)
    i = i + 1
Wend
ActiveSheet.Range("A1:F1").Columns.AutoFit
Close #IndexFichier ' ferme le fichier
Application.ScreenUpdating = True
Exit Sub
CodeErreur:
MsgBox "Une erreur s'est produite..."
Application.ScreenUpdating = True
End Sub
Sub scinderligne(ByVal ligne As Integer)
Dim num As String
Dim ville As String
Dim tabu As Integer
ville = Split(Cells(ligne, 1), "QC")(0)
Cells(ligne, 2) = Split(ville, " ")(0)
Cells(ligne, 2) = Cells(ligne, 2) & " " & Split(ville, " ")(1)
num = Split(Cells(ligne, 1), "QC")(1)
Cells(ligne, 5) = Split(num, " ")(1) & " %"
Cells(ligne, 6) = Split(num, " ")(3)
Cells(ligne, 3) = Replace(Cells(ligne, 1), Cells(ligne, 2), "")
Cells(ligne, 3) = Replace(Cells(ligne, 3), Cells(ligne, 5), "")
Cells(ligne, 3) = Replace(Cells(ligne, 3), Cells(ligne, 6), "")
Cells(ligne, 3) = Replace(Cells(ligne, 3), "QC", "")
tabu = UBound(Split(Cells(ligne, 3)))
Cells(ligne, 4) = Split(Cells(ligne, 3), " ")(tabu - 3)
Cells(ligne, 3) = Replace(Cells(ligne, 3), Cells(ligne, 4), "")
End Sub


Voilà
1
DjiDji59430 Messages postés 4138 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 5 novembre 2024 678
26 nov. 2021 à 22:53
Bonjour à tous,

Utilise données==>convertir

Crdlmt
0
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 1
27 nov. 2021 à 00:15
SVP, comment exécuter Données ===>convertir. j'utilise Office 2016
merci à vous.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
brucine Messages postés 17586 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 7 novembre 2024 2 562
26 nov. 2021 à 22:54
Bonsoir,

Aucun logiciel ne sait faire cela si les informations ne sont pas délimitées.

S'il s'agit d'un fichier texte, mettre par exemple un point-virgule entre chaque champ, on pourra ensuite importer le texte ainsi délimité dans Excel.
0
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 1
27 nov. 2021 à 00:09
merci Brucine.
Tel que suggéré, j'ai séparé les champs avec des " ; " Copier / Coller mais aucun résultat utilisable.
Dans le menu de Fichier, dans Excel, je vois Exporter mais pas Importer. pourriez-vous me dire comment Importer ?
0
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 1
27 nov. 2021 à 18:04
Un gros merci! Comme on dit: "Papa, ça marche!"
Il me reste une partie du problème à régler. Est-ce qu'il existe un moyen d'inscrire en bloc les " ; " à chaque point de séparation. Dans une liste de plus de 50 lignes avec 5 points de séparation, c'est beaucoup de manipulation.
Suggestion ?
Ulysse
0
Raymond PENTIER Messages postés 58719 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 7 novembre 2024 17 233
27 nov. 2021 à 21:59
Suggestion ? oui : Revoir l'élaboration de la source d'informations !
0
DjiDji59430 Messages postés 4138 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 5 novembre 2024 678
27 nov. 2021 à 18:17
Bonjour à tous,

Et si tu mettais un exemple réel du contenu de ta cellule ? Tu ne crois pas que ça éviterai de parler dans le vide et que ça permettrait d'apporter la réponse adéquate a ta question.

Crdlmt
0
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 1
27 nov. 2021 à 18:57
Bonne idée DjiDji. Voici un exemple simplifié.
20 11 LE COCHON DINGUE LEVIS QC 2,00 % 42$
20 11 MAGASIN CDN TIRE MONTRÉAL QC 1,50 % 75$
20 11 IGA EXTRA QUEBEC QC 3,00 % 15$

Dans cet exemple, je dois séparer la date, le lieu, le % et le montant.
À partir des informations obtenues de chacun des répondeurs, je sais maintenant comment séparer les champs. Toutefois, comme à chaque mois la liste à traiter comprend environ 50 lignes, j'aurais à insérer environ 250 à 300 points-virgules.
Ma nouvelle question consiste à savoir s'Il y a un moyen de procéder aux insertions autrement qu'une à la fois.
Un merci sincère à tous ceux qui prendront le temps de me répondre.
Ulyss
0
ulysse5001 Messages postés 58 Date d'inscription samedi 21 décembre 2013 Statut Membre Dernière intervention 17 mars 2022 1
29 nov. 2021 à 17:04
cs_Le Pivert
Je constate que vous êtes "un peu plus" (hum) avancé que moi dans la programmation.
Vous avez consenti pas mal d'efforts pour développer cette solution et je vous en remercie. Toutefois, avant d'être en mesure de l'appliquer, je devrai retourner à mon livre de VBA !!!
En effet, je comprends que la prémisse est à l'effet que QC est toujours présent, ce qui n'est pas le cas (sauf dans l'exemple que j'ai soumis).
Je conserve votre proposition en attendant de pouvoir l'utiliser.
0
DjiDji59430 Messages postés 4138 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 5 novembre 2024 678
29 nov. 2021 à 18:54
Bonjour à tous,

Je joue les rabats-joie, mais ....
Y'a pas de magasin à Val d'or ou à La Tuque ?

Crdlmt
0