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

Excel Discussion :

Problème Ado Connect classeur "ouvert"


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Problème Ado Connect classeur "ouvert"
    Bonjour,
    Ma maître de stage m'a demandé d'importer des données de SAP généré en excel dans mon programme excel.

    Les données ce chargent bien sans aucun soucis mais à une seule condition, que le classeur que je veux importer soit "Ouvert"

    Nom : Capture.JPG
Affichages : 126
Taille : 29,3 Ko
    Voilà le message d'erreur, quand j'éxécute ma macro sans avoir ouvert le fichier SAP généré en parrallèle.


    Je me demandé si c'était pas du à cause du message d'erreur lorsque j'ouvre manuellement le fichier excel de la génération SAP:
    Nom : Capture2.JPG
Affichages : 122
Taille : 39,9 Ko

    Pour moi la cause, ce n'est que ce message d'erreur dut à un mauvais format (génération) du fichier excel SAP que mon ado connection ne veut pas l'ouvrir, sauf que je ne peu faire une meilleur génération
    J'utilise l'ado connection dans plusieurs de mes macros sans aucun soucis, sauf pour ce cas là ..

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    Sub Load_SF()
     
    Application.ScreenUpdating = False
     
    Dim fileToOpen As Variant, filePath As String, sqlString As String
     
    Dim nbItem As Integer, LastLine As Integer
    Dim LastRowSpec As Integer, LastColumnSpec As Integer
    Dim y  As Integer, i As Integer, z As Integer, langage As String, h As Integer, valuecol As Integer
     
     
    Dim add As Boolean
    Dim SettingLangline As Integer
    SettingLangline = Sheets("SETTINGS").Range("R65536").End(xlUp).row
    LastColumnSpec = ActiveSheet.UsedRange.Columns.Count
     
    Dim Cn As ADODB.Connection
    Dim Rs As ADODB.Recordset
     
     
     
    On Error GoTo ErrorHandler
        MsgBox "Select SF file"
        ChDrive "O"
        ChDir Sheets("SETTINGS").Cells(3, 7)
        'prompt with file selection
        fileToOpen = Application.GetOpenFilename(, , 1, "Rechercher SF file...")
        If fileToOpen = False Then
            filePath = ""
        Else
        'get file path to open
        filePath = CStr(fileToOpen)
        End If
        langage = Left(Right(filePath, 15), 11)
     
        If Left(langage, 8) <> "CL6BN_SF" Then
       MsgBox "You cannot open this file !"
        End
        End If
     
        Set Cn = New ADODB.Connection
        'new ADO connection to allow us to work on a closed Excel file
        With Cn
             .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & filePath & ";Extended Properties=""Excel 12.0;HDR=YES;"""
        .Open
     
        End With
     
        'if connection string is empty stop
        If Cn = "" Then GoTo ErrorHandler
     
        'Transaction to allow error prevention
        Cn.BeginTrans
            'begin transaction
            sqlString = "SELECT * FROM [" & langage & "$]"
            Set Rs = New ADODB.Recordset
            Set Rs = Cn.Execute(sqlString)
    '        Range("A7:I" & LastRowSpec).Clear ' clear content
            nbItem = Rs.Fields.Count ' The number of columns
     
            y = 3
             While Not Rs.EOF ' EOF of Data sheet ZQUA17
             add = False
     
     
                    If Len(Rs(0)) = 7 And Left(Rs(0), 2) = 35 Then
                         Cells(y, 2) = Rs(0)
                         Cells(y, 1) = Rs(3)
                         Cells(y, 3) = Rs(7)
                         add = True
                    End If
     
     
                Rs.MoveNext
                For z = 0 To 3
                If add = True And IsNull(Rs(0)) Then
                    For h = 1 To SettingLangline
                    If Sheets("SETTINGS").Cells(h, 18) <> "SF Master data" Then GoTo nexth
                    If Rs(6) = Sheets("SETTINGS").Cells(h, 21) Then
     
                    valuecol = RecupColValue(Sheets("SETTINGS").Cells(h, 20), 5)
                    Cells(y, valuecol) = Rs(7)
                    End If
     
    nexth:
                    Next h
     
     
                   Rs.MoveNext
                    End If
                    Next z
                    y = y + 1
            Wend
        MsgBox "Load SF, done !"
     
          'on success commit
        Cn.CommitTrans
     
        'close connection
        Cn.Close
        Set Cn = Nothing
            End
    ErrorHandler:
        If filePath <> "" Then
            'rollback on error
            Cn.RollbackTrans
            Cn.Close
            Set Cn = Nothing
     
            MsgBox "Une erreur est survenue" & _
            vbNewLine & "(" & Err & " : " & Error(Err) & ")"
        Else
            MsgBox "Une erreur est survenue, vous n'avez pas sélectionné de fichier."
        End If
    End Sub
    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    as-tu essayé de mettre un breakpoint au début de ta procédure puis F8 pour l'exécuter en pas à pas pour localiser ton problème?

    sinon si c'est un problème d'objet fermé, pourquoi ne pas essayer de l'ouvrir pour le refermer par la suite?

    à voir avec plus compétent que moi, bonne chance!

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Oui j'ai essayé le déboggage en pas à pas.
    With Cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
    & filePath & ";Extended Properties=""Excel 12.0;HDR=YES;"""
    .Open
    End With
    Arrivé à ".Open"

    il me renvoit à Cn.RollbackTrans(cf code) dans ma gestion d'erreur et affiche le premier message d'erreur dans mon poste principale

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Bonjour,


    Désolé de remonter le sujet .. mais ceci est assez urgent :/

    Merci d'avance.

  5. #5
    Membre régulier
    Homme Profil pro
    Apprenti GEII
    Inscrit en
    Janvier 2014
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprenti GEII
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2014
    Messages : 83
    Points : 109
    Points
    109
    Par défaut
    Dis, moi, quel est le format de ton fichier excel?

    si Xlsx : Extended Properties="Excel 12.0 Xml;HDR=YES";

    si Xlsm : Extended Properties="Excel 12.0 Macro;HDR=YES";

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Il est pourtant en Xls. " Feuille Microsoft Office Excel 97-2003 (.xls) "

    j'ai essayer de Réparé le fichier Excel SAP mais toujours le message d'avertissement qu'il faut verifier sa sources ou s'il est endommagé.

    J'ai de même essayé de changer le format manuellement par tous les formats possible d'excel.

Discussions similaires

  1. [XL-2000] Problème ADO et classeur "fantôme"
    Par smatador dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/01/2010, 00h01
  2. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 16h59

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