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)

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
Vide DI : (Nouveau code)

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
Remp DI:

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
Incompréhension total de ma part. Merci par avance de votre aide