Bonjour, je suis un petit nouveau ici, j'ai découvert access pour mon stage et je doit dire que je rame pas mal mais grâce a vos post j'arrivais à me débrouiller. La j'avoue je block et je ne trouve pas de solution.
J'ai repris une base existante qui était devenu trop lourde pour tourner (+900Mo) et qui a été faite avec access 2003. Pour ne pas perdre trop de temps lors de mon stage je me suis inspiré de cette base pour faire la mienne mais le cc/cv du code vb d'une version à l'autre ne "marche pas".
Mon plus gros problème a l'heure actuelle est de mettre à jour les tables de ma base avec les données de fichiers excel. J'ai adapté le code pour vider mes tables avec du sql (la je maîtrise un peu plus) mais pour les remplir je comprends pas le code d'origine et lorsque je lance mon code j'ai une erreur de classe range sur le paste spécial (je vous met le code après si j'y arrive depuis l'iPad). Si vous pouviez éclairer mes lumières ça serait cool.
Vide DI : (Ancien Code)
Vide DI : (Nouveau code)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub videDI_FER() Dim mabase As Database Dim DI_FER As Recordset Set mabase = DBEngine.Workspaces(0).Databases(0) Set DI_FER = mabase.OpenRecordset("DI_FER") If DI_FER.RecordCount > 0 Then DI_FER.MoveFirst Do Until DI_FER.EOF DI_FER.Delete DI_FER.MoveNext Loop End If mabase.Close End Sub
Remp DI:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Sub videDI_FER() Dim SQL As String SQL = "Delete * From DI_FER" DoCmd.RunSQL SQL End Sub
Incompréhension total de ma part. Merci par avance de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub RempDIFER() Dim ad As String ´Adresse du fichier ad = "C:\User\Base par UR\Base FER\CHIPS FER\BW_SUIVI_BUDGETAIRE_FER.xls" Dim App As Object '(object déjà modifié par mes soins) Dim wb As Object Set App = CreateObject("Excel.Application") App.Visible = True Set wb = App.Workbooks.Open(ad) wb.Sheets("DONNEES").Select wb.Sheets("DONNEES").Cells.Copy wb.Sheets("DATA").Select wb.Sheets("DATA").Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 'Problème ici et en dessous sur la même commande wb.Application.CutCopyMode = False wb.Sheets("DATA").Rows("2:28").Delete Shift:=xlUp wb.Sheets("DATA").Columns("O:U").Delete Shift:=xlToLeft wb.Sheets("MENU").Select wb.Sheets("Procédure").Select wb.Sheets("Procédure").Rows(1).Copy wb.Sheets("DATA").Select wb.Sheets("DATA").Rows(1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False wb.Save wb.Close App.Quit DoCmd.TransferSpreadsheet acImport, 8, "DI_FER", ad, True End Sub
Partager