Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2793 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1891504
shmider
Posté le 05-06-2009 à 09:29:07  profilanswer
 

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
mood
Publicité
Posté le 05-06-2009 à 09:29:07  profilanswer
 

n°1892358
Ctplm
Posté le 08-06-2009 à 03:43:24  profilanswer
 


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."
n°1892619
shmider
Posté le 08-06-2009 à 15:47:48  profilanswer
 

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
 



Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
Base de données et interface en PythonQuel est le coût de la création d'un objet ne contenant pas de donnée
parse ligne par ligneRessources géographiques Bases de données et webservices
Bug sur Boucle for sur une ligne et sur un test supérieur àconversion poiteur sur fonrtion membre vers arguement de CreateThread
Conversion ASCII ISO-8859-1comparaison de deux bases de données
Caractères accentués, fichier batch et ligne de commandeCréer un formulaire et récupérer les données saisies ds un tableau
Plus de sujets relatifs à : Conversion des données séparées par ; en ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR