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 :

Transfert à partir de l'AS400 - Automatisation par macro


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Par défaut Transfert à partir de l'AS400 - Automatisation par macro
    Bonjour,

    J'ai la fonction de transfert de données installé sur mon poste (directement dans EXCEL avec la macro complémentaire).
    Je lance l'enregistrement automatique des macros mais quand j'utilise cette fonction, l'enregistreur ne détecte pas cette macro complémentaire.

    Mon but est de paramétrer la récupération de données sur l'AS400 pour des utilisateur non informaticien. Ils pourraient modifier dans excel certaines valeurs. La macro ensuite ira dans contruire la requête (option de donnée) pour l'extraction.

    Est-ce que quelqu'un à déjà tenté cela ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    bonjour,

    Pourrais-tu nous dire quel est ton emulateur pour AS400 ?


    Quelques liens qui pourront te servir :


    vba-excel/piloter-fichier-xll



    transfert-as400-v5r2-vers-excel-2007-a


    as400/transfer

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Par défaut
    Désolé pour le temps de réaction mais j'ai eu un soucis de mot de passe ;-)

    J'utilise IBM Iseries Acess avec l'utilisation de la macro complémentaire : cwbtfxla.xll.

    Est-ce que ça répond à ta question ?

    Je maîtrise assez bien l'AS400 par contre pas du tout le VBA. J'ai des collègues qui m'aideront pour le paramétrage de la macro mais il faut au moins que je sache si c'est possible ou pas.

    Merci d'avance

    J'avais déjà trouvé ces liens mais soit ce n'est pas suffisant soit je ne les ai pas compris ;-))

    Le fichier xll est déjà installé sur mon poste, quand je lance par excel le tansfert, je me retrouve avec de nombreuses informations à saisir (connection/bibliothèque/fichier/requêtes SQl....) ce sont ces informations que je voudrais piloter par une macro VBA.

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Par défaut
    Pour finir je vais me rébattre sur QUERY qui est intégré directement dans EXCEL et qui fonctionne avec l'enregisteur de macro.
    Voici ce que cela donne :
    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
    Sub Macro4()
     
    '
        With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
            "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=AS400;DBQ=BIB;DFTPKGLIB=QGPL;LANGUAGEID=ENU;PKG=QGPL/DEFAULT(IBM),2," _
            ), Array("0,1,0,512;")), Destination:=Range("A1"))
            .CommandText = Array("select * from bib/fic")
            .Name = "Requête 1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery:=False
        End With
    End Sub
    La requête est ensuite paramétrable complétement dans la feuille EXCEL (avec des cellules cachées par exemple ou bien modifiable par l'utilisateur). Pour ma part cela va me permettre de me passer de SHOWCASE (et de sa licence payante).

    Si vous avez d'autres idées, je suis preneur.

    Ajout : Info complémentaire : sur un autre post ils précisent de modifier cette ligne car autrement nous sommes limités par la taille de la requête SQL :
    .CommandText = Array("select * from bib/fic")

  5. #5
    Invité de passage
    Inscrit en
    Avril 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1
    Par défaut more explanation please
    Le contenu de cette macro est ok mais pour pouvoir l'utiliser, il faut certainement faire quelque chose avant. Pouvez-vous m'aider SVP car tel quel j'ai systématiquement une erreur sur .Refresh BackgroundQuery:=False
    Le message est "Erreur exécution 1004 : erreur générale ODBC".

    adresse AS400 ok, profil et mot de passe de connexion OK.

    Merci à vous tous.

  6. #6
    Membre averti
    Homme Profil pro
    Exploitant
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Exploitant

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut
    un peu vieux le message mais si ca peu aider...

    pour que ca fonctionne si je ne me trompe pas il faut remplacer dans la requête le "/" en "."
    ce qui donne :

    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
     
    Sub Macro4()
     
    '
        With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
            "ODBC;DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=AS400;DBQ=BIB;DFTPKGLIB=QGPL;LANGUAGEID=ENU;PKG=QGPL/DEFAULT(IBM),2," _
            ), Array("0,1,0,512;")), Destination:=Range("A1"))
            .CommandText = Array("select * from bib.fic")
            .Name = "Requête 1"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .PreserveColumnInfo = True
            .Refresh BackgroundQuery:=False
        End With
    End Sub

Discussions similaires

  1. [WD-2007] Automatiser le remplissage de signets WORD par Macro VBA
    Par benkornskater dans le forum VBA Word
    Réponses: 2
    Dernier message: 13/05/2013, 12h03
  2. [PPT-2003] ouvrir diaporama pps à partir d'un autre pps par macro
    Par MarcelG dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 23/11/2011, 09h20
  3. [OL-2007] Macro outlook pour création dossier et transfert à partir nom expéditeur
    Par Steve5580 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 10/05/2009, 20h47
  4. Réponses: 2
    Dernier message: 25/04/2008, 13h40
  5. transfert contenu fichier excel par macro
    Par pascal913 dans le forum Access
    Réponses: 7
    Dernier message: 12/07/2006, 11h01

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