Eclater une ligne en plusieurs lignes selon un schéma donné

Fermé
Ririfi88 Messages postés 11 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 10 février 2014 - 4 déc. 2012 à 11:21
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 5 déc. 2012 à 21:41
Bonjour à tous,

Fervent adepte des gains de temps via Excel, mais débutant total en programmation VBA, j'aurais besoin de vos lumières pour créer une macro qui me permettrait rapidement de transformer un listing (nombre de lignes variable) sous la forme "Source" ci-dessous, en quelque chose ayant la même forme que la "Destination" ci-dessous.

Les initiés reconnaîtront dans la destination des écritures comptables...

Source (fichier txt) :						
							
12/11/2012;1;1;DUPOND;Goerges;25.00;23.70;1.30
28/11/2012;2;2;DURANT;Georgette;30.00;28.44;1.56
							
							
Destination (fichier txt ou csv, si possible) :						
							
12112012;VEN;411000;DUPOND Georges;D;25;1
12112012;VEN;707000;DUPOND Georges;C;23,7;1
12112012;VEN;445710;DUPOND Georges;C;1,3;1
28112012;VEN;411000;DURANT Georgette;D;30;2	
28112012;VEN;707000;DURANT Georgette;C;28,44;2
28112012;VEN;445710;DURANT Georgette;C;1,56;2


A titre d'info, dans la destination :
- le champ "VEN" est invariable
- le troisième champ, qui contient le numéro de compte, suit toujours le même schéma "411000", "707000", et 445710" dans les trois lignes générées
- le champ "D" ou "C" suit toujours le même schéma, à savoir pour une même ligne source il faut mettre "D" à la première ligne générée, et "C" aux deuxième et troisième lignes générées
- le dernier champ de destination (dans l'exemple "1" ou "2") peut être pris au choix dans le deuxième ou le troisième champ source.

Merci d'avance pour votre aide qui me sera très précieuse...

A voir également:

6 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 déc. 2012 à 17:52
bonjour,

En fonction de ce que j'ai compris, voici une proposition :

https://www.cjoint.com/?BLerYV8bHkf

Le classeur ne sert que de support à la macro qui peut être placée dans le classeur PERSO éventuellement.
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 déc. 2012 à 18:08
Bon, plus la peine que je joue au petit électrique...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 déc. 2012 à 11:45
Bonjour

combien de lignes dans la source ?
0
Ririfi88 Messages postés 11 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 10 février 2014
4 déc. 2012 à 11:52
Bonjour,

Le nombre de ligne dans la source est variable (différent chaque mois), et le but est de convertir toutes les lignes présentes.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 déc. 2012 à 12:58
ta réponse: langue de bois! tu es dans la Politique ?
le but est de convertir toutes les lignes présentes. sans blague!

Si j'ose expliquer ma question, c'est que la technique employée sera complètement différente suivant le nombre moyen de lignes
donc...
0
Ririfi88 Messages postés 11 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 10 février 2014
4 déc. 2012 à 13:07
Désolé, mon but n'était pas de faire de la langue de bois, et même en relisant mon message une dizaine de fois, il faut vraiment chercher la petite bête pour y trouver l'intention de jouer le politicien... J'avais juste mal compris ta question, je ne savais pas qu'il te fallait un ordre d'idée sur le nombre de lignes.

Pour préciser ma réponse, il est difficile pour moi d'anticiper le nombre moyen de ligne. Peut-être 100, peut-être 500, peut-être 1000 d'ici quelques mois. En tout cas, cela ne devrait jamais dépasser 2000 a priori.

J'espère que cet ordre de de grandeur t'aidera. Merci d'avance pour ton aide.
0

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

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 déc. 2012 à 14:22
OK, merci, je me base donc sur 2000
si j'avais 100 lignes, j'inscrirais au fur et à mesure les cellules , avec 2000 je passerais par des tableaux en mémoire RAM beaucoup + rapide
le code est donc complètement différent, d'où ma demande

Proposition en fin d'après midi ou demain fin de matinée
0
Ririfi88 Messages postés 11 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 10 février 2014
4 déc. 2012 à 18:31
Waouh, c'est juste quasi parfait... Mille mercis gbinforme!

Il y a juste une chose qui est peut-être dommage, lors de l'export vers le fichier csv, il me demande quel fichier csv ouvrir pour le "remplir" avec les lignes générées : y aurait-il un moyen pour que la macro génère elle-même un nouveau fichier csv contenant les lignes générées ? Avec éventuellement une boîte de dialogue qui demande où enregistrer le csv et sous quel nom.

Merci encore!

Et merci beaucoup à toi michel_m pour ton aide, j'ai bien vu ta proposition dans le mail de notification. ;-)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 déc. 2012 à 21:41
Bonsoir Ririfi88,

Voici la modification : tu peux choisir un fichier existant ou saisir le nom que tu veux (sans le suffixe).

https://www.cjoint.com/?BLfvLo8eJJq

Je t'ai rajouté un comptage des articles pour matérialiser la bonne fin.
0