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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème pour une mise en forme grâce à VB

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème pour une mise en forme grâce à VB

n°1814781
steff23mj
Posté le 21-11-2008 à 08:03:56  profilanswer
 

Bonjour à tous, je travaille sur Excel en ce moment et dans le but de me simplifier la vie, j'aurais besoin d'un coup de main de votre part, s'il vous plaît ?
 
En fait je récupère de ma base de données un tableau dans lequel j’ai une quantité de produits par référence (référence 116 quantité 2, référence 330 quantité 3…), et je voudrais pouvoir retranscrire ces données sous une autre forme qui serait la suivante : avoir dans un tableau 1 ligne par référence fabriquée. Par exemple, si au départ je sais que j’aurai 2 référence 116 à fabrique, je voudrais avoir dans mon tableau de sortir 2 lignes avec la référence 116, puis 3 lignes avec la référence 330, …
 
http://imageshack-france.com/out.php/i250327_exemple.jpg
 
Comment pensez-vous que je dois procéder, s’il vous plaît ? Je vous laisse un imprim écran qui est très représentatif.
 
Merci encore de l’aide que vous pourrez m’apporter
A++

mood
Publicité
Posté le 21-11-2008 à 08:03:56  profilanswer
 

n°1815206
otobox
Maison fondée en 2005
Posté le 22-11-2008 à 09:02:20  profilanswer
 

Tu n'aurais pas moyen d'extraire les infos correctement formatées de la BdD ? (il y a un regroupement à retirer dans la requête probablement).


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1815208
otobox
Maison fondée en 2005
Posté le 22-11-2008 à 09:36:26  profilanswer
 

Si tu ne peux pas modifier ta requête, voici une solution que, je pense, tu pourras adapter facilement :
(adapter la partie 'Initialisation des variables en fonction de tes numéros de colonnes et lignes)

 
Code :
  1. Sub steff()
  2. Dim colDataRef As Integer 'N° colonne contenant les références
  3. Dim colDataQty As Integer 'N° colonne contenant les quantités
  4. Dim colDataOut As Integer 'N° colonne contenant les données de sortie
  5. Dim ligDataIn  As Integer 'N° ligne contenant la donnée d'entrée
  6. Dim ligDataOut As Integer 'N° ligne contenant la donnée de sortie
  7. Dim strRef As String 'Variable contenant la référence
  8. Dim intNb As Integer 'Variable numérique entière contenant la quantité
  9. 'Initialisation des variables
  10. colDataRef = 1
  11. colDataQty = 2
  12. colDataOut = 4
  13. ligDataIn = 1
  14. ligDataOut = 1
  15. 'Parcours ligne par ligne des colonnes contenant
  16. 'les données d'entrée. Sort de la boucle quand la cellule
  17. 'lue est vide
  18. Do
  19.     strRef = Cells(ligDataIn, colDataRef)
  20.     If strRef = "" Then Exit Do 'sort de la boucle si cellule vide
  21.     intNb = Cells(ligDataIn, colDataQty)
  22.     'Boucle le nombre de fois la quantité pour inscrire
  23.     'la référence dans la colonne de sortie
  24.     'Ne boucle pas si le Nb=0
  25.     Do Until intNb = 0
  26.         'Ecrit la référence dans la colonne de sortie
  27.         Cells(ligDataOut, colDataOut) = strRef
  28.         'Passe à la ligne des données de sortie suivante
  29.         ligDataOut = ligDataOut + 1
  30.         'Décrémente la quantité
  31.         intNb = intNb - 1
  32.     Loop
  33.     'Passe à la ligne d'entrée suivante
  34.     ligDataIn = ligDataIn + 1
  35. Loop
  36. End Sub
 

(TIP : Double clic dans la fenêtre du code ci dessus pour faire disparaître les n° de ligne avant de faire ton copier-coller)


Message édité par otobox le 22-11-2008 à 11:20:24

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1815362
steff23mj
Posté le 22-11-2008 à 19:17:30  profilanswer
 

Génial, je me suis servi de ton code et tout marche !! Merci beaucoup
à+++++

n°1815427
otobox
Maison fondée en 2005
Posté le 23-11-2008 à 00:25:45  profilanswer
 

Tant mieux, c'était fait pour ça :)


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°1815441
steff23mj
Posté le 23-11-2008 à 10:20:36  profilanswer
 

Merci encore


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

  Problème pour une mise en forme grâce à VB

 

Sujets relatifs
problème de positionnement avec float [RESOLU]Problème java.util.HashMap$KeyIterator@157f0dc
Problème url rewritingProblème connexion base de données
Problème très curieux sur une page webcomment scroller dans une pile de texte (alignée en bas)?
Problème avec Internet Explorer IE6 et IE7: Afficher Derouler - cacherProblème lecture des noeuds dans xslt
Problème Requete[Résolu] Problème pour lire et écrire des fichiers pgm en C++
Plus de sujets relatifs à : Problème pour une mise en forme grâce à VB


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