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 :

importation SAP - Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut importation SAP - Excel
    bonjour j'ai une importation à réaliser à partir d'une base SAP

    j'ai executé une macro et lorsque je la convertie en vba j'obtient le résultat suivant:

    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
    Sub Macro2()
    '
    ' Macro2 Macro
    ' Macro enregistrée le 18/04/2011 par ghammmouni
    '
     
    '
        With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
            "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};PKG=QGPL/DEFAULT(IBM),2,0,1,0,512;LANGUAGEID=ENU;DFTPKGLIB=QGPL;DBQ=CIFH0;SYSTEM=HE" _
            ), Array("PSTG;")), Destination:=Range("A1"))
            .CommandText = Array("SELECT * FROM ""CIFH0"".""BDEVECOLI""")
            .Name = "ERM"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .SourceConnectionFile = _
            "C:\Program Files\Fichiers communs\ODBC\Data Sources\ERM.dsn"
            .refresh BackgroundQuery:=False
        End With
    End Sub
    donc la macro marche correctement sauf qu' elle importe que sur les pages actives. Je ne comprend rien au code non plus

    j'aimerais en effet savoir comment l'importer dans des feuilles selectionnées

    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut ODBC
    bonjour,
    Voici quelques éléments :
    la ligne ODBC;DRIVER indique la méthode d'accès à votre base de données

    La destination actuelle est en effet la feuille active à partir de la cellule A1
    Destination:=Range("A1")

    La requête SQL qui sélectionne les données prend tous les champs (*) dans une table(?) CIFH0.BDEVECOLI

    ActiveSheet peut être remplacé par Worksheet(index ou nom). Tout dépend se que vous entendez par "feuilles sélectionnées"

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    quoi non ça ne marche plus du tout
    j'ai repris la première ligne du programme et j'ai remplacer activesheet par worksheet("feuil1")

    j'ai juste envie de mettre fin à mes jours

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut msdn
    bizarre, la doc msdn donne pourtant des exemples dans ce sens :
    dommage que l'on ne puisse pas tester sans ta connexion personnelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set shFirstQtr = Workbooks(1).Worksheets(1)
    Set qtQtrResults = shFirstQtr.QueryTables.Add( _
        Connection := "TEXT;C:\My Documents\19980331.txt",
        Destination := shFirstQtr.Cells(1,1))
    With qtQtrResults
        .TextFileParsingType = xlFixedWidth
        .TextFileFixedColumnWidths := Array(5,4)
        .TextFileColumnDataTypes := _
            Array(xlTextFormat, xlSkipColumn, xlGeneralFormat)
        .Refresh
    End With
    OU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuill2").QueryTables.Add
    OU
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(2).QueryTables.Add

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    merci pour ta réponse ben je dois dire que j'avais oublier un S à worksheets

    mais je dois dire que ça ne fonctionne tjr pas parcontre j'ai message d'erreur complet qui affiche l'origine du dysfonctionnement:


    erreur d'execution '-2147024809(80070057)
    la plage de destination n'est pas dans la meme feuille de calcul que celle dans laquelle la table de requete est crée
    donc je ne sais pas si ça peut debloquer quelque chose en tout cas moi j'ai rien compris
    et puis lorsque j'active n'importe quelle feuille de calcul visiblement ça ne pose pas de probleme

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut précision
    Oui en effet, il faudrait écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Destination:= Worksheets("Feuill2").Range("A1")

    J'espère n'avoir rien raté d'autre ...

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    hourra ca marche

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

Discussions similaires

  1. Importation MS Excel vers MS Access
    Par mpascolo dans le forum Access
    Réponses: 4
    Dernier message: 24/10/2005, 12h05
  2. Problème champ après import d'excel vers access
    Par David M dans le forum Access
    Réponses: 6
    Dernier message: 16/10/2005, 11h53
  3. PB importation classeur excel sous access 2003
    Par techinfo37 dans le forum Access
    Réponses: 6
    Dernier message: 04/10/2005, 20h41
  4. [win32] Importation liste Excel
    Par pier dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 07/09/2005, 12h10
  5. Problemes d'importation depuis excel
    Par KANCRENAZ dans le forum Access
    Réponses: 3
    Dernier message: 17/02/2005, 09h57

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