Conversion des données séparées par ; en ligne

Conversion des données séparées par ; en ligne - VB/VBA/VBS - Programmation

Marsh Posté le 05-06-2009 à 09:29:07    

Bonjour tou le monde;  
 
Voilà je souhaiterai mettre en ligne (la conversion par excel permet de le mettre en colonne) des données séparées par ;  
 
En effet, dans l'option excel>données>convertir on peut mettre ces données en colonne.  
 
Cf. fichier joint pour exemple.  
 
Merci de votre aide et bonne journée à toutes et tous !!!  :pt1cable:  :pt1cable:  
 
[http://www.excel-pratique.com/~files/doc2/VFJa8conversion_donnees_en_ligne.xls]


Message édité par shmider le 05-06-2009 à 09:29:32
Reply

Marsh Posté le 05-06-2009 à 09:29:07   

Reply

Marsh Posté le 08-06-2009 à 03:43:24    


Hi,
 
Je t'ai fait le début (extraction de tes ref), reste plus qu'à appliquer la même méthode pour le reste + mise en page et clearcontents du tableau que tu obtiens.
Pour que ce soit plus propre j'ai séparé les deux tableaux sur deux onglets, voir fichier.
 

Code :
  1. Dim Ref, Statut, Quantite As String
  2. Dim Com, nbLigneTest2, nbLigneData, a As Integer
  3. '************************************************************************
  4. '*                                                                                             
  5. '*    Procédure principale : Extraction des ref, appel des autres sub.                           
  6. '*                                                                                                           
  7. '************************************************************************
  8. Sub Test2()
  9. 'On calcule le nombre de lignes dans les tableaux.
  10. Call CalculNbLignes
  11. 'On parcourt le tableau
  12. For a = 3 To nbLigneData
  13. 'On extrait les Ref puis on boucle dessus
  14. Reference = Sheet3.Range("A" & a)
  15. Reference = Split(Reference, ";" )
  16. For i = 0 To UBound(Reference)
  17. Ref = Reference(i)
  18. Call Affectation
  19. nbLigneTest2 = nbLigneTest2 + 1
  20. Next i
  21. Next a
  22. End Sub
  23. '*******************************************************************************
  24. '*                                                                                                               
  25. '*    Cette procédure sert à remplir le tableau Test2 (tableau que l'on veut obtenir)   
  26. '*                                                                                                               
  27. '*******************************************************************************
  28. Sub Affectation()
  29. Sheet2.Range("A" & nbLigneTest2 + 1) = Ref
  30. Sheet2.Range("B" & nbLigneTest2 + 1) = Sheet3.Range("B" & a)
  31. Sheet2.Range("C" & nbLigneTest2 + 1) = Sheet3.Range("C" & a)
  32. Sheet2.Range("D" & nbLigneTest2 + 1) = Sheet3.Range("D" & a)
  33. Sheet2.Range("E" & nbLigneTest2 + 1) = Sheet3.Range("E" & a)
  34. End Sub
  35. '**************************************************************************
  36. '*                                                                                                               
  37. '*    Cette procédure sert à calculer le nombre de lignes des deux tableaux.             
  38. '*                                                                                                               
  39. '**************************************************************************
  40. Sub CalculNbLignes()
  41. Sheet2.Select
  42. nbLigneTest2 = Range("A65536" ).End(xlUp).Row
  43. Sheet3.Select
  44. nbLigneData = Range("A65536" ).End(xlUp).Row
  45. End Sub


 
http://dl.free.fr/osWWSqahG
 


---------------
"That kind of information doesn't just grow on trees."
Reply

Marsh Posté le 08-06-2009 à 15:47:48    

Super ça marche bien. merci à toi.  
 
 :bounce:  ;)  
 
 
 

Ctplm a écrit :


Hi,
 
Je t'ai fait le début (extraction de tes ref), reste plus qu'à appliquer la même méthode pour le reste + mise en page et clearcontents du tableau que tu obtiens.
Pour que ce soit plus propre j'ai séparé les deux tableaux sur deux onglets, voir fichier.
 

Code :
  1. Dim Ref, Statut, Quantite As String
  2. Dim Com, nbLigneTest2, nbLigneData, a As Integer
  3. '************************************************************************
  4. '*                                                                                             
  5. '*    Procédure principale : Extraction des ref, appel des autres sub.                           
  6. '*                                                                                                           
  7. '************************************************************************
  8. Sub Test2()
  9. 'On calcule le nombre de lignes dans les tableaux.
  10. Call CalculNbLignes
  11. 'On parcourt le tableau
  12. For a = 3 To nbLigneData
  13. 'On extrait les Ref puis on boucle dessus
  14. Reference = Sheet3.Range("A" & a)
  15. Reference = Split(Reference, ";" )
  16. For i = 0 To UBound(Reference)
  17. Ref = Reference(i)
  18. Call Affectation
  19. nbLigneTest2 = nbLigneTest2 + 1
  20. Next i
  21. Next a
  22. End Sub
  23. '*******************************************************************************
  24. '*                                                                                                               
  25. '*    Cette procédure sert à remplir le tableau Test2 (tableau que l'on veut obtenir)   
  26. '*                                                                                                               
  27. '*******************************************************************************
  28. Sub Affectation()
  29. Sheet2.Range("A" & nbLigneTest2 + 1) = Ref
  30. Sheet2.Range("B" & nbLigneTest2 + 1) = Sheet3.Range("B" & a)
  31. Sheet2.Range("C" & nbLigneTest2 + 1) = Sheet3.Range("C" & a)
  32. Sheet2.Range("D" & nbLigneTest2 + 1) = Sheet3.Range("D" & a)
  33. Sheet2.Range("E" & nbLigneTest2 + 1) = Sheet3.Range("E" & a)
  34. End Sub
  35. '**************************************************************************
  36. '*                                                                                                               
  37. '*    Cette procédure sert à calculer le nombre de lignes des deux tableaux.             
  38. '*                                                                                                               
  39. '**************************************************************************
  40. Sub CalculNbLignes()
  41. Sheet2.Select
  42. nbLigneTest2 = Range("A65536" ).End(xlUp).Row
  43. Sheet3.Select
  44. nbLigneData = Range("A65536" ).End(xlUp).Row
  45. End Sub


 
http://dl.free.fr/osWWSqahG
 


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed