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 :

Fonction ExecuteExcel4Macro comment l'utiliser [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut Fonction ExecuteExcel4Macro comment l'utiliser
    Bonjour a tous,

    J'essaye depuis plusieurs jours d'utiliser la fonction ExecuteExcel4Macro afin d'extraire des données dans des fichiers sources, pour les copier dans un fichier cible afin de faire une synthese.

    Est ce que quelqu'un pourrais m'expliquer comment elle doit être utilisée ?
    Dans le même temps, pouvez vous m'expliquer le paramètre Address de Range ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Argument = "'" & Dossier & "[" & Fichier & "]" & Feuille & "'!" & Range(Cellule).Address(, , xlR1C1)
    J'ai beau me tourner le cerveau dans tout les sens, j'ai lu et tenté d'appliquer des codes dans tout les sens, mais j'ai obstinément le code erreur 2023 et un beau dièse dans ma cellule de destination.

    Merci de votre soutien, je voudrais réellement éviter de me taper 720 fichiers * -pleins de copiepasta dans tout les sens-... (((

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Ok, bon, je viens de découvrir comment on utilise Adress. Je me bat toujours avec la fonction ExecuteExcel4Macro.

    Ca marche toujours pas, le mode pas à pas ne me donne pas grand chose, je passe bien mes paramètres a la fonction mais je n'ai aucun résultat.

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, par exemple Mise en page avec les macros XL4
    Pour lire des valeurs d'un fichier fermé Excel
    A voir également : ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function ExtraireValeur(ByVal Dossier As String, ByVal Fichier As String, ByVal Feuille As String, ByVal Cellule As String)
    Dim Argument As String
        Dossier = Replace(Dossier, "'", "''")
        Fichier = Replace(Fichier, "'", "''")
        Feuille = Replace(Feuille, "'", "''")
     
        Argument = "'" & Dossier & "[" & Fichier & "]" & Feuille & "'!" & Range(Cellule).Address(, , xlR1C1)
        ExtraireValeur = ExecuteExcel4Macro(Argument)
    End Function

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Bonjour Kiki,

    J'ai regardé les différents tuto proposés sur le site, j'ai aussi essayé d'utiliser ta solution proposée mais rien a faire. Toujours bloqué. J'ai fais des tests a partir d'autres fichiers tout simple, sans succès.

    Maintenant c'est certain que c'est dans le passage des paramètres que ca déconne. Je vais faire des tests en amont et je te reviens.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Salutations kiki,

    Je viens de tester mes procedures de long en large et en travers, tout fonctionne sur des fichiers tout simples, voici mes tests :
    J'ai essayé avec des nom de fichiers très long, aucune incidence.
    Testé avec des extensions xls, xlsm, aucun problème.
    J'ai testé avec des formules dans le fichier source, bidouilles avec des dates, des sommes, aucun problème.
    De même avec des cellules fusionnées, tout est bon.

    Je ne m'explique toujours pas pourquoi mes fichiers sources (les 720 vrais fichiers cette fois ci), j'obtiens l'erreur REF, erreur 2023.

    • Se pourrait il que quelque chose cloche sans que je comprenne quoi ?
    • Y a-t-il des restrictions dans l'usage de Excel4macro ?


    J'ai aussi testé ta proposition, je comprends ce que tu fais avec Replace, mais cela me semble superflue. A moins que je me trompe ?

    Merci d'avance

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, cette fonction avait été adaptée pour des feuilles/fichiers comportant des apostrophes dans leur nom d'ou le Replace. Par contre sans échantillon difficile de voir qqch.
    Images attachées Images attachées  

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    D'accord,

    J'ai compris l'utilité de cette astuce, c'est vrai que ça peut être nécessaire, je garde ca sous le coude.

    Je te propose de regarder le contenu de l'un de ces fichiers source, je ne l'ai pas modifié, il est brut de décoffrage. En somme, c'est une collection de donnée remplie manuellement par un technicien en contrôle qualité.

    Je souhaite récupérer les données de la feuille 2 tel que date, code, moyenne et écart.

    Déjà, si je réussis a importer ne serait ce qu'une valeur, ce serait le Nirvana.... Le reste je me débrouille pour mes boucles...

    Fais moi savoir si tu veux que je t'envoi mon code source.

    Merci encore
    Fichiers attachés Fichiers attachés

  8. #8
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, si tu sauves le fichier xlsm en xls cela fonctionne autrement effectivement cela génère une erreur 2023.
    Mais cela tu l'as sans doute déjà constaté. Une recherche sur sites US n'a rien donné de probant à ce jour.

    Voir Lire et écrire dans les classeurs Excel fermés pour d'autres méthodes.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Merci Kiki.

    Je viens de changer complètement de méthode comme suggéré.
    Avec mes fichiers de test, tout va bien.

    Avec les fichiers réel je bute encore. J'ai cherché dans tout les sens, recodé avec plusieurs différentes choses, voila ce que j'obtiens :

    Avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" _
                                & Chemin & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
    J'obtiens : La table externe n'est pas dans le format attendu.
    L'erreur est pointée dans le code ci dessus...

    Avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" _
                                & Chemin & Fichier & ";Extended Properties=""Excel 12.0;HDR=No;"";"
    J'obtiens -l'objet Feuil$1A6:A6 est introuvable (en gros hein...)
    Et l'erreur se situe ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete.Open ADOCommand, , adOpenKeyset, adLockOptimistic
    Je ne comprends pas car je n'ai aucune erreur dans mes fichiers de test quelque soit la méthode employée, mais ça bloque avec les fichiers tels que je t'ai donné.

    Une idée ?

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Mon petit doigt me dit qu'il suffirait d'un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox Chemin & Fichier
    pour avoir le nez mis sur l'erreur ...

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Bonjour Unparia,

    La vérification des variables Chemin et fichier se fait déja en amont, je les affiches sur une feuille excel pour debugger. Comme dit précédemment ca marche avec des fichiers basiques mais pas avec les fichiers de travail.

    J'utilise aussi des espions + debug en pas a pas, mais j'ai par acquis de conscience implanté ton bout de code pour voir si ya un truc de différend, mais non !

    Nom : captureunparia.png
Affichages : 4521
Taille : 136,0 Ko

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Nouveau Test avec les fichiers sources...

    J'en ai pris quelques uns (une dizaine) que j'ai enregistré au format xlsx pour voir. Je me suis dit que c'était peut être le format d'enregistrement qui n'allais pas, peut être que le format xlsm n'était pas pris en compte par les méthodes que j'utilisais. He ben non, ça marche pas plus.

    Vous avez une idée d'où l'erreur peut provenir ?

  13. #13
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, revoir mon post# 8 ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Bonjour Kiki

    J'ai déja réenregistré quelques uns de ces fichiers xlsm en xls. Ca plante toujours quelque soit la méthode utilisée. Je ne sais plus quoi tester. Si tu veux bien te pencher sur mon source code, voici mon fichier cible en PJ.
    Tu peux utiliser le fichier source que je t'ai envoyé précédemment pour tester.

    Si tu as une idée à me suggérer je suis preneur
    Ce serait grandement apprécié en tout cas.
    Fichiers attachés Fichiers attachés

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Ok bon, j'ai fais le truc le plus débile de la planète.

    J'ai copié mes données Ctrl-C depuis mon fichier source, et collé Ctrl-V (Spécial Valeurs) dans un fichier tout neuf, au même format que le fichier source, c'est à dire en xlsm, puis en xls, en xlsb et xlsx.

    Là, ça fonctionne sans anicroche.

    HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA /arrachage de cheveux

    Je fais actuellement une incantation vaudou pour ne pas me taper le répertoire entier de l'année 2016 en Ctrl C-Ctrl V.

    Celui ou celle qui réussi à trouver le pourquoi ça plante, je lui offre une carte cadeau Canadian Tire de 25 pièces. Sans rire !

  16. #16
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, c'est donc l'appli générant ces fichiers qui a dérapé ?

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Hello kiki

    Nous n'utilisons que Excel, nous n'avons pas d'équipement qui génère de fichier.
    En fait, la collecte des données se fait à la main, c'est le technicien à la qualité qui rentre toutes ses infos avec Excel. Maintenant, à savoir comment ils ont créés le fichier, ces artistes...
    Il y a bien une macro d'effacement dedans mais d'après moi c'est loin d'être gênant.

    Je cherche encore une soluce, si quelqun a une info je suis preneur.

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Bonjour a tous,

    Depuis j'ai refais d'autre test avec des fichiers avec et sans macro pour voir si je rencontre le même problème.

    Serait il possible qu'Excel m'interdise de lire le fichier pour raison de sécurité ?

    Je sais, c'est débile comme réflexion mais j'ai peut être raté un truc. Est ce que quelqu'un peut tester de son côté si il rencontre les mêmes problèmes ? En supposant qu'il s'agit d'une config logiciel ou je ne sais quoi...

    Merci d'avance.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 53
    Par défaut
    Ok les gars, ça marche. Je suis un gros niais en fait. C'est tellement débile que j'en ai honte.

  20. #20
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, dis toujours cela servira peut-être à d'autres.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/02/2009, 12h02
  2. [Optimisation] Comment bien utiliser le StringBuffer?
    Par mathieu dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2004, 14h22
  3. Comment bien utiliser ce forum ?
    Par Alcatîz dans le forum Pascal
    Réponses: 0
    Dernier message: 21/04/2004, 16h37
  4. [scrapbook] comment l'utiliser ?
    Par Didier 69 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 16/04/2004, 17h28
  5. [INDY] -> IdIdentServer comment l'utiliser ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 9
    Dernier message: 06/08/2003, 16h00

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