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

Ririfi88 Messages postés 11 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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...

6 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bon, plus la peine que je joue au petit électrique...
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    combien de lignes dans la source ?
    0
  3. Ririfi88 Messages postés 11 Statut Membre
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  4. Ririfi88 Messages postés 11 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  7. Ririfi88 Messages postés 11 Statut Membre
     
    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
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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