Message erreur Excel

Résolu
Bonjour,

J'ai ce message d'erreur lorsque je viens d'activer ma macro.

Erreur d'excécution 1004;
Microsoft Gestionnaire de pilotes ODBC Source de données introuvable et nom de pilote non spécifié

Pouvez-vous m'aider ?

Merci.

5 réponses

  1. Rebonjour Patrice33740,

    J'ai finalement trouver un aute moyen pour éliminer l'erreur. J'ai tout simplement créer une autre feuille Excel pour l'employée en question et supprimer l'ancienne et cela à marcher!
    La macro roule à merveille !!!

    J'aimerais te remercie pour ton temps et ton aide !

    Bonne fin journée !

    1407Sunshine.
    0
    1. Finalement de rien !!!
      Au plaisir de te relire sur le Forum

      Patrice
      0
  2. Bonjour Patrice33740,

    Je ne suis pas capable de le mettre en rouge ! Cependant, j'ai fais plusieurs test et il semblerait que j'ai de la difficulté avec une feuille Excel d'une employée. Lorsque je lance la macro avec les autres feuilles excel des employés elle roule bien. Cependant lorsque je lance la macro avec la feuille excel en question elle roule bien. cependant lorsque je la lance avec seulement un autre employé elle ne roule plus.
    donc, je présume que le problème se situe dans la feuilles Excel de l'employée.

    Donc, je ne peux pas surligner la ligne en question donc la voici en texte elle se trouve sous global pivote table:

    Erreur d'excécution 1004;
    Microsoft Gestionnaire de pilotes ODBC Source de données introuvable et nom de pilote non spécifié

    Merci pour ton aide!
    0
    1. «Lorsque je le débogue voici l'endroit au c'est surligner en jaune dans la macro: Je l'ai mis en rouge dans le courriel pour une meilleur visualisation»

      Mais encore ??? (pas de rouge ni de sur-lignage dans ce message)
      0
      1. Bonjour Patrice,

        Voici un résumé:
        Lorsque je lance ma macro elle m'indique le message d'erreur suivant:

        Erreur d'excécution 1004;
        Microsoft Gestionnaire de pilotes ODBC Source de données introuvable et nom de pilote non spécifié.

        Lorsque je le débogue voici l'endroit au c'est surligner en jaune dans la macro: Je l'ai mis en rouge dans le courriel pour une meilleur visualisation:

        J'ai aucune idée de se qui pourrais ce produire ???

        Par contre toutes mes feuilles Excel dans laquelle les employés sont correct. C'est à dire lorsque je lance ma macro individuellement par employé mon résultat affiche. J'ai le bogue seulement lorsque je lance la macro avec toutes les feuilles Excel des employés en même temps.

        ___________________________________________________

        Option Explicit

        Declare Function SetCurrentDirectoryA Lib "kernel32" (ByVal Path As String) As Long
        Sub ChDirNet(Path As String)
        Dim Result As Long
        Result = SetCurrentDirectoryA(Path)
        If Result = 0 Then Err.Raise vbObjectError + 1, "Error changing to new path."
        End Sub

        Sub MergeFiles()
        Dim PT As PivotTable
        Dim PC As PivotCache
        Dim arrFiles As Variant
        Dim strSheet As String
        Dim strPath As String
        Dim strSQL As String
        Dim strCon As String
        Dim rng As Range
        Dim i As Long

        strPath = CurDir
        ChDirNet ThisWorkbook.Path

        arrFiles = Application.GetOpenFilename("Excel Workbooks (*.xls), *.xls", , , , True)
        strSheet = "Sheet1"

        If Not IsArray(arrFiles) Then Exit Sub

        Application.ScreenUpdating = False

        If Val(Application.Version) > 11 Then DeleteConnections_12

        Set rng = ThisWorkbook.Sheets(1).Cells
        rng.Clear
        For i = 1 To UBound(arrFiles)
        If strSQL = "" Then
        strSQL = "SELECT * FROM [" & strSheet & "$]"
        Else
        strSQL = strSQL & " UNION ALL SELECT * FROM '" & arrFiles(i) & "'.[" & strSheet & "$]"
        End If
        Next i
        strCon = _
        "ODBC;" & _
        "DSN=Excel Files;" & _
        "DBQ=" & arrFiles(1) & ";" & _
        "DefaultDir=" & "" & ";" & _
        "DriverId=790;" & _
        "MaxBufferSize=2048;" & _
        "PageTimeout=5"

        Set PC = ThisWorkbook.PivotCaches.Add(SourceType:=xlExternal)

        '*************************** Global pivot table *****************************
        With PC
        .Connection = strCon
        .CommandType = xlCmdSql
        .CommandText = strSQL
        Set PT = .CreatePivotTable(TableDestination:=rng(6, 1))
        End With

        With PT
        With .PivotFields(1) 'Exercice
        .Orientation = xlPageField
        .Position = 1
        End With
        .AddDataField .PivotFields(3), "Dossier", xlCount
        .AddDataField .PivotFields(9), "Op. sous-éval.", xlCount
        .AddDataField .PivotFields(10), "Transf. fin. inadéquat", xlCount
        .AddDataField .PivotFields(11), "Défaut registres", xlCount
        .AddDataField .PivotFields(12), "Défaut bilan", xlCount
        .AddDataField .PivotFields(13), "Fausse décl.", xlCount
        .AddDataField .PivotFields(14), "Défaut interro.", xlCount
        .AddDataField .PivotFields(15), "Défaut assemblées", xlCount
        .AddDataField .PivotFields(16), "Défaut contultation", xlCount
        .AddDataField .PivotFields(17), "Défaut rev. excédent.", xlCount
        .AddDataField .PivotFields(18), "Abus système", xlCount
        .AddDataField .PivotFields(19), "Emprunt irr.", xlCount
        .AddDataField .PivotFields(20), "Conduite adm.", xlCount
        .AddDataField .PivotFields(21), "Fermé sans interro.", xlCount
        .AddDataField .PivotFields(22), "Interro.", xlCount
        .AddDataField .PivotFields(24), "Intervention BSF", xlCount
        .AddDataField .PivotFields(26), "Mandat BSF", xlCount
        With .PivotFields(6) 'Analyste
        .Orientation = xlColumnField
        .Position = 1
        End With
        With .PivotFields(2) 'Date renvoi
        .Orientation = xlRowField
        .Position = 1
        .DataRange.Cells(1).Group _
        Start:=True, _
        End:=True, _
        Periods:=Array(False, False, False, False, True, False, True)
        End With
        End With

        '*************************** Intervention pivot table *****************************
        Set rng = ThisWorkbook.Sheets(2).Cells
        rng.Clear
        With PC
        Set PT = .CreatePivotTable(TableDestination:=rng(6, 1))
        End With
        With PT
        With .PivotFields(1) 'Exercice
        .Orientation = xlPageField
        .Position = 1
        End With
        .AddDataField .PivotFields(24), "Intervention BSF", xlCount
        With .PivotFields(25) 'Date intervention
        .Orientation = xlColumnField
        .Position = 1
        .DataRange.Cells(1).Group _
        Start:=True, _
        End:=True, _
        Periods:=Array(False, False, False, False, True, False, True)
        End With
        With .PivotFields(2) 'Date renvoi
        .Orientation = xlRowField
        .Position = 1
        .DataRange.Cells(1).Group _
        Start:=True, _
        End:=True, _
        Periods:=Array(False, False, False, False, True, False, True)
        End With
        End With

        '*************************** Mandat pivot table *****************************
        Set rng = ThisWorkbook.Sheets(3).Cells
        rng.Clear
        With PC
        Set PT = .CreatePivotTable(TableDestination:=rng(6, 1))
        End With
        With PT
        With .PivotFields(1) 'Exercice
        .Orientation = xlPageField
        .Position = 1
        End With
        .AddDataField .PivotFields(26), "Intervention BSF", xlCount
        With .PivotFields(27) 'Date mandat
        .Orientation = xlColumnField
        .Position = 1
        .DataRange.Cells(1).Group _
        Start:=True, _
        End:=True, _
        Periods:=Array(False, False, False, False, True, False, True)
        End With
        With .PivotFields(2) 'Date renvoi
        .Orientation = xlRowField
        .Position = 1
        .DataRange.Cells(1).Group _
        Start:=True, _
        End:=True, _
        Periods:=Array(False, False, False, False, True, False, True)
        End With
        End With

        ' Layout
        ThisWorkbook.Sheets(1).Columns("A:B").ColumnWidth = 8
        ThisWorkbook.Sheets(1).Columns("D:N").ColumnWidth = 4.5

        'Clean up
        Set PT = Nothing
        Set PC = Nothing

        ChDirNet strPath
        Application.ScreenUpdating = True
        End Sub

        Private Sub DeleteConnections_12()
        ' This line won't work and wouldn't be necessary
        ' in the versions older than 2007
        '*****************************************************************************
        On Error Resume Next: ThisWorkbook.Connections(1).Delete: On Error GoTo 0
        '*****************************************************************************
        End Sub
        ___________________________________________________________
        0
        1. Pouvez-vous m'aider ?

          Sans aucune explication du contexte, ça va être très difficile !!!

          Avec le code, peut-être ?
          0
          1. Bonjour Patrice,

            C'est la première fois que je demande de l'aide à un forum, donc je crois que je t'ai pas remis mon résumé au bon endroit. Le voici à nouveau au cas où!
            Bonjour Patrice,

            Voici un résumé:
            Lorsque je lance ma macro elle m'indique le message d'erreur suivant:

            Erreur d'excécution 1004;
            Microsoft Gestionnaire de pilotes ODBC Source de données introuvable et nom de pilote non spécifié.

            Lorsque je le débogue voici l'endroit au c'est surligner en jaune dans la macro: Je l'ai mis en rouge dans le courriel pour une meilleur visualisation:

            J'ai aucune idée de se qui pourrais ce produire ???

            Par contre toutes mes feuilles Excel dans laquelle les employés sont correct. C'est à dire lorsque je lance ma macro individuellement par employé mon résultat affiche. J'ai le bogue seulement lorsque je lance la macro avec toutes les feuilles Excel des employés en même temps.

            ___________________________________________________

            Option Explicit

            Declare Function SetCurrentDirectoryA Lib "kernel32" (ByVal Path As String) As Long
            Sub ChDirNet(Path As String)
            Dim Result As Long
            Result = SetCurrentDirectoryA(Path)
            If Result = 0 Then Err.Raise vbObjectError + 1, "Error changing to new path."
            End Sub

            Sub MergeFiles()
            Dim PT As PivotTable
            Dim PC As PivotCache
            Dim arrFiles As Variant
            Dim strSheet As String
            Dim strPath As String
            Dim strSQL As String
            Dim strCon As String
            Dim rng As Range
            Dim i As Long

            strPath = CurDir
            ChDirNet ThisWorkbook.Path

            arrFiles = Application.GetOpenFilename("Excel Workbooks (*.xls), *.xls", , , , True)
            strSheet = "Sheet1"

            If Not IsArray(arrFiles) Then Exit Sub

            Application.ScreenUpdating = False

            If Val(Application.Version) > 11 Then DeleteConnections_12

            Set rng = ThisWorkbook.Sheets(1).Cells
            rng.Clear
            For i = 1 To UBound(arrFiles)
            If strSQL = "" Then
            strSQL = "SELECT * FROM [" & strSheet & "$]"
            Else
            strSQL = strSQL & " UNION ALL SELECT * FROM '" & arrFiles(i) & "'.[" & strSheet & "$]"
            End If
            Next i
            strCon = _
            "ODBC;" & _
            "DSN=Excel Files;" & _
            "DBQ=" & arrFiles(1) & ";" & _
            "DefaultDir=" & "" & ";" & _
            "DriverId=790;" & _
            "MaxBufferSize=2048;" & _
            "PageTimeout=5"

            Set PC = ThisWorkbook.PivotCaches.Add(SourceType:=xlExternal)

            '*************************** Global pivot table *****************************
            With PC
            .Connection = strCon
            .CommandType = xlCmdSql
            .CommandText = strSQL
            Set PT = .CreatePivotTable(TableDestination:=rng(6, 1))
            End With

            With PT
            With .PivotFields(1) 'Exercice
            .Orientation = xlPageField
            .Position = 1
            End With
            .AddDataField .PivotFields(3), "Dossier", xlCount
            .AddDataField .PivotFields(9), "Op. sous-éval.", xlCount
            .AddDataField .PivotFields(10), "Transf. fin. inadéquat", xlCount
            .AddDataField .PivotFields(11), "Défaut registres", xlCount
            .AddDataField .PivotFields(12), "Défaut bilan", xlCount
            .AddDataField .PivotFields(13), "Fausse décl.", xlCount
            .AddDataField .PivotFields(14), "Défaut interro.", xlCount
            .AddDataField .PivotFields(15), "Défaut assemblées", xlCount
            .AddDataField .PivotFields(16), "Défaut contultation", xlCount
            .AddDataField .PivotFields(17), "Défaut rev. excédent.", xlCount
            .AddDataField .PivotFields(18), "Abus système", xlCount
            .AddDataField .PivotFields(19), "Emprunt irr.", xlCount
            .AddDataField .PivotFields(20), "Conduite adm.", xlCount
            .AddDataField .PivotFields(21), "Fermé sans interro.", xlCount
            .AddDataField .PivotFields(22), "Interro.", xlCount
            .AddDataField .PivotFields(24), "Intervention BSF", xlCount
            .AddDataField .PivotFields(26), "Mandat BSF", xlCount
            With .PivotFields(6) 'Analyste
            .Orientation = xlColumnField
            .Position = 1
            End With
            With .PivotFields(2) 'Date renvoi
            .Orientation = xlRowField
            .Position = 1
            .DataRange.Cells(1).Group _
            Start:=True, _
            End:=True, _
            Periods:=Array(False, False, False, False, True, False, True)
            End With
            End With

            '*************************** Intervention pivot table *****************************
            Set rng = ThisWorkbook.Sheets(2).Cells
            rng.Clear
            With PC
            Set PT = .CreatePivotTable(TableDestination:=rng(6, 1))
            End With
            With PT
            With .PivotFields(1) 'Exercice
            .Orientation = xlPageField
            .Position = 1
            End With
            .AddDataField .PivotFields(24), "Intervention BSF", xlCount
            With .PivotFields(25) 'Date intervention
            .Orientation = xlColumnField
            .Position = 1
            .DataRange.Cells(1).Group _
            Start:=True, _
            End:=True, _
            Periods:=Array(False, False, False, False, True, False, True)
            End With
            With .PivotFields(2) 'Date renvoi
            .Orientation = xlRowField
            .Position = 1
            .DataRange.Cells(1).Group _
            Start:=True, _
            End:=True, _
            Periods:=Array(False, False, False, False, True, False, True)
            End With
            End With

            '*************************** Mandat pivot table *****************************
            Set rng = ThisWorkbook.Sheets(3).Cells
            rng.Clear
            With PC
            Set PT = .CreatePivotTable(TableDestination:=rng(6, 1))
            End With
            With PT
            With .PivotFields(1) 'Exercice
            .Orientation = xlPageField
            .Position = 1
            End With
            .AddDataField .PivotFields(26), "Intervention BSF", xlCount
            With .PivotFields(27) 'Date mandat
            .Orientation = xlColumnField
            .Position = 1
            .DataRange.Cells(1).Group _
            Start:=True, _
            End:=True, _
            Periods:=Array(False, False, False, False, True, False, True)
            End With
            With .PivotFields(2) 'Date renvoi
            .Orientation = xlRowField
            .Position = 1
            .DataRange.Cells(1).Group _
            Start:=True, _
            End:=True, _
            Periods:=Array(False, False, False, False, True, False, True)
            End With
            End With

            ' Layout
            ThisWorkbook.Sheets(1).Columns("A:B").ColumnWidth = 8
            ThisWorkbook.Sheets(1).Columns("D:N").ColumnWidth = 4.5

            'Clean up
            Set PT = Nothing
            Set PC = Nothing

            ChDirNet strPath
            Application.ScreenUpdating = True
            End Sub

            Private Sub DeleteConnections_12()
            ' This line won't work and wouldn't be necessary
            ' in the versions older than 2007
            '*****************************************************************************
            On Error Resume Next: ThisWorkbook.Connections(1).Delete: On Error GoTo 0
            '*****************************************************************************
            End Sub
            0