Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion Ririfi88
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R

Ririfi88

Guest
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 (car je ne vois pas d'autre moyen d'obtenir le résultat souhaité 😕) 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...

Code:
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...
 
Re : Eclater une ligne en plusieurs lignes selon un schéma donné

Bonjour,

Si tu pars d'un fichier texte, tu l'ouvre avec excel (format txt comme fichier d'origine) tu précises le séparateur ";"
tu obtiens un fichier décomposé sur excel (colonne A à G) + 2 colonnes I et J calculées
tu lances le pgm Lance
 

Pièces jointes

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

Bonjour Chalet53,

Mille mercis pour ton aide, cela me semble quasi parfait! 😎

Il faudrait juste faire également un SUBSTITUTE sur le 1er montant (le TTC) de chaque ligne source, car dans les lignes générées, il y a encore un . au lieu de , si je refais le test. J'ai peut-être pris un mauvais exemple en ne donnant que des montants TTC ronds, ce ne sera pas toujours le cas.

Merci encore!
 
Re : Eclater une ligne en plusieurs lignes selon un schéma donné

Re,

Il s'agit de quelle colonne dans le fichier que je t'ai adressé (la F ?)
S'il faut rajouter un substitute : le faire dans la colonne K et Décaler la colonne K en L ou plus loin en M ou N
 
Re : Eclater une ligne en plusieurs lignes selon un schéma donné

Bonjour,

Oui il s'agit bien de la colonne F. J'ai rajouté un substitute dans la colonne K. J'ai tenté de modifier la macro pour qu'elle génère les lignes en L, mais je n'y arrive pas... 😕
 
Re : Eclater une ligne en plusieurs lignes selon un schéma donné

Bonjour,

Et voilà, cette fois c'est parfait! Merci mille fois!

Je verrai si cela fonctionne toujours le mois prochain, mais a priori il ne devrait pas y avoir de soucis. 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…