Bonjour, j'ai un probleme sur access, je veux exporter un dernier enregistrement d'une requete vers un ficher excel existant et il doit mettre l'enregistrement apres le drenier. Merci de votre aide
Version imprimable
Bonjour, j'ai un probleme sur access, je veux exporter un dernier enregistrement d'une requete vers un ficher excel existant et il doit mettre l'enregistrement apres le drenier. Merci de votre aide
Bonjour
Deux choses :
As-tu déjà crée une requête pour récupérer ce dernier enregistrement ?
Une fois que tu as ta requête, je te conseille de passer par un Recordset DAO pour récupérer cet enregistrement et d'utiliser la méthode CopyFromRecordset de l'objet Range d'Excel pour positionner cet enregistrement exactement où tu veux.
Donc des pistes de recherches :
Pour la requête regardes du coté de TOP en triant tes données dans l'ordre inverse que tu veux les voir apparaitre (une recherche sur ce terme dans le forum te donnera des exemples).
Pour l'export sur Excel, avec le terme CopyFromRecordset tu trouveras de nombreux exemples sur le forum.
Starec
Mon problème je trouve pas la formule pour que je puisse exporter mes enregistrements de ma requete pour les mettre à partir du dernier enregistrement sur la feuille excel. Merci
Bonjour, j'ai consulté mais sa exporte dans une nouvelle table ou sa ecrase les anciens donnés .Merci
Bonjour
Peux-tu nous détailler comment tu as procédé, code à l'appui, car c'est la méthode à utiliser.
Il faut que tu utilises cet article : http://cafeine.developpez.com/access/tutoriel/excel/ regardes du coté Automation.
Starec
voila exemple de codeCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Option Compare Database Private Sub Commande8_Click() Dim oApp As Excel.Application Dim oClasseur As Excel.Workbook Dim oFeuille As Excel.Worksheet Dim oCell As Excel.Range Dim i As Integer 'nom par défaut Application.FileDialog(msoFileDialogFilePicker).InitialFileName = "blabla.xls" 'boite de dialogue sauvegarder Application.FileDialog(msoFileDialogSaveAs).Show Dim Chemin01 As String 'chemin d'accès à l'enregistremnt Chemin01 = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) 'exporter requête_calcul DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Client", Chemin01, False, "calcul" 'ouvrir le fichier excel Set oApp = CreateObject("Excel.Application") Set oClasseur = oApp.Workbooks.Open(Chemin01) 'Sélectionne la première feuille Set oFeuille = oClasseur.Worksheets(1) oApp.Visible = True 'Parcours les cellules de la première ligne i = 1 While oFeuille.Cells(1, i).Value <> "" Set oCell = oFeuille.Cells(1, i) i = i + 1 'Ajuster la taille des colonnes au texte oCell.EntireColumn.AutoFit Wend 'Selectionne la deuxieme feuille 'Set oFeuille = oClasseur.Worksheets(2) 'oApp.Visible = True 'Parcours les cellules de la première ligne i = 1 While oFeuille.Cells(i, i).Value <> "" Set oCell = oFeuille.Cells(1, i) i = i + 1 'Ajuster la taille des colonnes au texte oCell.EntireColumn.AutoFit Wend Set oApp = Nothing Set oClasseur = Nothing On Error Resume Next oApp.UserControl = True End Sub
Bonjour, je cherche je trouve pas
le code recherche la derniere ligne vide du fichier Excel puis ecrit le dernier enregistrement de la requete sur cette ligne
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 Option Compare Database Private Sub Commande8_Click() Dim oApp As Excel.Application Dim oClasseur As Excel.Workbook Dim oFeuille As Excel.Worksheet Dim oCell As Excel.Range Dim i As Integer 'nom par défaut Application.FileDialog(msoFileDialogFilePicker).InitialFileName = "blabla.xls" 'boite de dialogue sauvegarder Application.FileDialog(msoFileDialogSaveAs).Show Dim Chemin01 As String, ligne As Long, colonne As Long, t As DAO.RecordSet 'chemin d'accès à l'enregistremnt Chemin01 = Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1) 'exporter requête_calcul DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Client", Chemin01, False, "calcul" 'ouvrir le fichier excel Set oApp = CreateObject("Excel.Application") Set oClasseur = oApp.Workbooks.Open(Chemin01) 'Sélectionne la première feuille Set oFeuille = oClasseur.Worksheets(1) oApp.Visible = True 'Recherche la premiere ligne vide (sélectionner la colonne ad'hoc) ligne = 1 While oFeuille.Cells( ligne, 1 ).Value <> "" ligne = ligne + 1 Wend 'copie l'enregistrement Set t = CurrentDB.OpenRecordset("NomRequete") t.MoveLast For colonne = 0 To t.Fields.Count - 1 oFeuille.Cells( ligne, colonne+1) = t(colonne) Next Colonne t.Close Set oApp = Nothing Set oClasseur = Nothing On Error Resume Next oApp.UserControl = True End Sub
Merci pour votre aide Helas. Super:yaisse2: