IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

compréhension macro connection ADODB [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut compréhension macro connection ADODB
    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

  2. #2
    Membre très actif Avatar de XLRATOR
    Homme Profil pro
    Comptable Analyste
    Inscrit en
    Août 2012
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable Analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 226
    Par défaut
    Bonjour,
    Travailler sur des classeurs fermés, un bon tuto de Silkyroad, avec codes commentés.

    http://silkyroad.developpez.com/VBA/ClasseursFermes/

    Bonne lecture.
    Karim
    Entre la canne à pèche et le poisson c'est certainement la canne que je choisirais, puis apprendrais à m'en servir.
    Si on vous souffle une solution au complet c'est que vous n'auriez rien compris du problème.
    Consultez la , de forte chances que votre problème y figure et c'est plus vite que de poser une question et en attendre la réponse.
    FAQ Excel: http://excel.developpez.com/faq/

  3. #3
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    merci beaucoup.

    bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Renseignement BD avec connection ADODB
    Par will@w dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/10/2007, 19h55
  2. Connection ADODB a partir d'un sous-formulaire
    Par lbertin dans le forum VBA Access
    Réponses: 0
    Dernier message: 25/09/2007, 11h36
  3. Macro/ connection à SQL Server
    Par majidic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/09/2007, 21h30
  4. [OpenOffice][Base de données] [macro] connection a une base de données dans une macro
    Par Eruil dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 23/04/2007, 17h19
  5. [Debutant] connection ADODB et remplissage de feuille
    Par in dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/07/2006, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo