Données access dans un classeur excel

Résolu
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 - 25 août 2005 à 20:48
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 - 26 août 2005 à 18:35
Bonjour,

j'ai un problème avec une boucle dans access pour remplir un classeur excel si quelqu'un pouvait m'éclairer ce serait cool svp

Donc voilà

Je sélectionne des données dans une table et je les transfères dans un classeur
jusque là ça va
le problème c'est que les données n'apparaissent pas comme je le voudrais

classeur actuel
taches 02 04 06 07 15 16 50

moteurs -1
moteurs -1

Charbons -1

Charbons -1

et en fait je voudrais que ça ressemble à ça
taches 02 04 06 07 15 16 50

moteurs 1 1
charbons 1 1

Je sais que le problème vient de la boucle mais je ne sais pas exactement ce qu'il faut que j'emplois comme boucle

voici la fonction

Sub InitialiseExcel()

Dim xlApp, xlBook, xlRange As Variant 'Objets classeur
Dim xlWks, iRows, iCols, iRotate As Variant 'Objets feuille
Dim FichierXL As String
Dim Boucle, Cmpt As Integer

FichierXL = "C:\WINDOWS\Bureau\Preventif_maintenance\PréventifMill1bis2.xls"
'Création de l'objet Excel (main mise sur !)
Set xlApp = CreateObject("Excel.Application")
'Création de l'objet [Fichier Excel]
Set xlBook = xlApp.Workbooks.Open(FichierXL)
'Création de l'objet [Feuille] du classeur Excel.
xlApp.ActiveWorkbook.Worksheets.Add
Set xlWks = xlBook.ActiveSheet
'Création de la plage permise dans la feuille Excel.
Set xlRange = xlWks.Range("A1:A65535")

DoCmd.GoToRecord , , acLast
Cmpt = Forms![Générer_tableauExcel_Mill1].Recordset.RecordCount
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells((Boucle + 1), 1).Value = Forms![Générer_tableauExcel_Mill1].[Tache]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells(1, (Boucle + 1)).Value = Forms![Générer_tableauExcel_Mill1].[Semaine]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst
For Boucle = 1 To Cmpt
xlRange.Cells((Boucle + 1), (Boucle + 1)).Value = Forms![Générer_tableauExcel_Mill1].[Travail_Effectuer]
DoCmd.GoToRecord , , acNext
Next Boucle
DoCmd.GoToRecord , , acFirst

'Fermeture de Excel
'Rend Excel visible
xlApp.Visible = True
'Active le classeur
xlWks.Activate
'Positionnement en [ A1 ]
xlRange.Cells(1, 1).Select
'Message d'erreur en arrêt
xlApp.DisplayAlerts = False
'Sauvegarde du fichier Excel créé.
xlBook.SaveAs FichierXL
'Ferme l'application Excel
'xlApp.Quit
'Message d'erreur actif
xlApp.DisplayAlerts = True


Set xlRange = Nothing
Set xlWks = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

MsgBox "Tableau créé"

End Sub

Voila si quelqu'un pouvait m'aider je le remercie d'avance
salut
doro

3 réponses

Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
26 août 2005 à 06:51
Salut,

j'ai pas tout capté, mais déjà une question pourquoi tu parcours plein de fois ton recordset ? C'est aps plus simple comme ça ?




Dim previous As String





DoCmd.GoToRecord , , acLast

Cmpt = Forms![Générer_tableauExcel_Mill1].Recordset.RecordCount

DoCmd.GoToRecord , , acFirst

previous = xlRange.Cells(2, 1).Value



For Boucle = 1 To Cmpt

If previous = xlRange.Cells((Boucle + 1), 1).Value Then


xlRange.Cells((Boucle + 1), 1).Value = Forms![Générer_tableauExcel_Mill1].[Tache]

End If


xlRange.Cells(1, (Boucle + 1)).Value = Forms![Générer_tableauExcel_Mill1].[Semaine]


xlRange.Cells((Boucle + 1), (Boucle +
1)).Value = Forms![Générer_tableauExcel_Mill1].[Travail_Effectuer]


iF previous <> xlRange.Cells((Boucle + 1), 1).Value Then previous = xlRange.Cells((Boucle + 1),1).Value

DoCmd.GoToRecord , , acNext

Next Boucle




ça serait sympas de préciser qui est tache, semaine, travail ... voir comment sont les données sources..







++

Zlub

<hr size="2" width="100%">Click
sur le bouton ci-dessous, si la réponse te convient : pour indiquer aux
visiteurs où est(sont) la(es) réponse(s) à ta question.


Utilisateurs du Forum, merçi de lire [forum.v2.aspx?ID=445871 #445871]
3
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
26 août 2005 à 17:06
Salut Zlub,


De retour?!
Merci pour ta réponse mais le problème est résolu
Je te mets réponse acceptée car effectivement c'est plus simple comme ça
Mais moi et excel (surtout vba) ça fait 2
Encore merci

a+
Salut
Doro
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 8
26 août 2005 à 18:35
Salut Doro,

ok.



Vi je suis de retour apres un peu de vacances ;)

Que j'ai un peu prolongé ... mais bon ça fait du bien...





++

Zlub

<hr size="2" width="100%">Click
sur le bouton ci-dessous, si la réponse te convient : pour indiquer aux
visiteurs où est(sont) la(es) réponse(s) à ta question.


Utilisateurs du Forum, merçi de lire [forum.v2.aspx?ID=445871 #445871]
0
Rejoignez-nous