bonjour,

je me tourne vers vous car je n'arrive pas a comprendre le code pour les connection ADODB

Serait il possible de le commenter afin que je puisse comprendre ce code et pouvoir le refaire à ma guise?

Car ce code prend les donénes d'une base de données or ce n'est pas un copier coller pur vu que les données apparaissantes dans la feuille base de ce classeur ne sont pas exactement les même. Il prend pas toutes les données donc j'aimerai comprendre pourquoi.. Peut être est ce a cause des cellules fusionées dans la base de donnée?

J'ai regardé les tutos et tout mais je ne comprend pas toutes ces propriétés..

Y aurait il quelqu'un qui prendrait un petit peu de son temps pour m'expliquer ce code?

et comment choisir les bonnes référence car il y a plusieurs référence et si j'en choisi une différente, le copier coller n'est pas le même...

Merci d'avance et bonne journée

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Private Sub Workbook_Open()
 
If Not (ThisWorkbook.ReadOnly) Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
 
'===================================================================================================
                'Mise à jour de la base de données
'===================================================================================================
Worksheets("Base").Range("A2:I4000").ClearContents
Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
Dim Fichier As String, Plage As String, Feuille As String
 
Plage = "A2:I4000"
Feuille = "Base$" 
Fichier = "" & Worksheets("Paramètres").Cells(5, 3) & ""
 
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;IMEX=1;HDR=No;"";"
Set ADOCommand = New ADODB.Command
 
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Plage & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Plage & "]")
 
ThisWorkbook.Worksheets("Base").Range("A2").CopyFromRecordset Rst
Rst.Close
Source.Close
Worksheets("Base").Visible = True
Worksheets("Base").Activate
Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1)
Worksheets("Base").Visible = False
 
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
'Liste PETRI
If Worksheets("Liste PETRI").AutoFilterMode Then
    Worksheets("Liste PETRI").Rows("2:2").AutoFilter
    Worksheets("Liste PETRI").Rows("2:2").AutoFilter
Else
    Worksheets("Liste PETRI").Rows("2:2").AutoFilter
End If
'Liste T&F
If Worksheets("Liste T&F").AutoFilterMode Then
    Worksheets("Liste T&F").Rows("2:2").AutoFilter
    Worksheets("Liste T&F").Rows("2:2").AutoFilter
Else
    Worksheets("Liste T&F").Rows("2:2").AutoFilter
End If
 
Application.Windows(ThisWorkbook.Name).Visible = True
 
End If