Tableau access/excel prob ds mon code vba
Résolu
jack
-
smaoui84 -
smaoui84 -
Bonjour, j'essaie de générer un tableau sous excel a partir de données sous access.
J'ai donc 3 champs (semaine, tache, Travail_effectuer) que j'ai filtrer grace a une requete et j'ai créer un formulaire d'apres cete requete ou j'affiche tous les enregistrements.
J'ai fait aussi un bouton que j'ai programmer pour générer un tableau sous excel en fonction de ces 3chamsp.
Concretement j'arrive a créer un tableau sous excel mé j'ai un probleme au niveau d données.
En fait pour un même champ plusieurs valeur doivent être inserer sur la même ligne d'un classeur et que la boucle le fasse pour tous les enregistrement dont des données sont existantes....
je m'explique j'obtien le tableau créer sous excel :
(de la forme semaine
tache effectuer )
J'obtien ceci : semaine1 semaine15 32
entretien UPS oui
entretien UPS oui
changement "" oui
et je voudrais : 1 15 32
entretie, UPS oui oui
changement "" oui
(je ne veux pas de dédoublement de valeur)
La boucle de mon code est la suivante :
DoCmd.GoToRecord , , acLast
Cmpt = Forms![MaTable].Recordset.RecordCount
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells((Boucle + 1), 1).Value = Forms![MaTable].[Tache]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells(1, (Boucle + 1)).Value = Forms![MaTable].[Semaine]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells((Boucle + 1), (Boucle + 1)).Value = Forms![MaTable].[Travail_Effectuer]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
Quelqu'un peut-il m'aider a corriger(pluto ameliorer) mon code (ma boucle) pour que j'arrive au résultat souhaiter?
Merci d'avance
J'ai donc 3 champs (semaine, tache, Travail_effectuer) que j'ai filtrer grace a une requete et j'ai créer un formulaire d'apres cete requete ou j'affiche tous les enregistrements.
J'ai fait aussi un bouton que j'ai programmer pour générer un tableau sous excel en fonction de ces 3chamsp.
Concretement j'arrive a créer un tableau sous excel mé j'ai un probleme au niveau d données.
En fait pour un même champ plusieurs valeur doivent être inserer sur la même ligne d'un classeur et que la boucle le fasse pour tous les enregistrement dont des données sont existantes....
je m'explique j'obtien le tableau créer sous excel :
(de la forme semaine
tache effectuer )
J'obtien ceci : semaine1 semaine15 32
entretien UPS oui
entretien UPS oui
changement "" oui
et je voudrais : 1 15 32
entretie, UPS oui oui
changement "" oui
(je ne veux pas de dédoublement de valeur)
La boucle de mon code est la suivante :
DoCmd.GoToRecord , , acLast
Cmpt = Forms![MaTable].Recordset.RecordCount
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells((Boucle + 1), 1).Value = Forms![MaTable].[Tache]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells(1, (Boucle + 1)).Value = Forms![MaTable].[Semaine]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells((Boucle + 1), (Boucle + 1)).Value = Forms![MaTable].[Travail_Effectuer]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
Quelqu'un peut-il m'aider a corriger(pluto ameliorer) mon code (ma boucle) pour que j'arrive au résultat souhaiter?
Merci d'avance
A voir également:
- Tableau access/excel prob ds mon code vba
- Code ascii - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
- Liste déroulante excel - Guide
3 réponses
;-) Oui, on peux t'aider ;-)
Déjà, tu pourrais tout faire dans la même boucle...
Ensuite, tu peux virer les "Next Boucle", tu ne met que "Next" (il est pas con, VBA)
Un truc de ce style... Déjà plus simple à lire ;-)
Ensuite, pour le reste, c'est vrai que ce serait plus facile de bosser sur le mdb...
Quoiqu'il en soit, je te conseillerais d'utiliser des variables, quand tu lis tes enregistrements, c'est plus facile à "bidouiller" à ta sauce pour écrire dans les cellules...
;-)
Déjà, tu pourrais tout faire dans la même boucle...
Ensuite, tu peux virer les "Next Boucle", tu ne met que "Next" (il est pas con, VBA)
DoCmd.GoToRecord , , acLast Cmpt = Forms![MaTable].Recordset.RecordCount DoCmd.GoToRecord , , acFirst For Boucle = 1 To Cmpt xlRange.Cells((Boucle + 1), 1).Value = Forms![MaTable].[Tache] xlRange.Cells(1, (Boucle + 1)).Value = Forms![MaTable].[Semaine] xlRange.Cells((Boucle + 1), (Boucle + 1)).Value = Forms![MaTable].[Travail_Effectuer] DoCmd.GoToRecord , , acNext Next DoCmd.GoToRecord , , acFirst
Un truc de ce style... Déjà plus simple à lire ;-)
Ensuite, pour le reste, c'est vrai que ce serait plus facile de bosser sur le mdb...
Quoiqu'il en soit, je te conseillerais d'utiliser des variables, quand tu lis tes enregistrements, c'est plus facile à "bidouiller" à ta sauce pour écrire dans les cellules...
;-)
Par contre pour mon probleme de mise en forme du tableau excel que je crée par le biais d'access je suis bloké...(a cause des champs double)
As tu d idées pr y remédier ? (il faut en fait améliorer la boucle mais je voi pa tro comen personelemen!)
Je peux tenvoyer mn appli pour que tu comprene mieu...
Merci de ton aide a+
Cliques ici : http://domlevinfo.free.fr, ça va simplifier ;-)
;-) A+