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 :

Compatibilité ExecuteExcel4Macro classeur xlsm et windows7 [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut Compatibilité ExecuteExcel4Macro classeur xlsm et windows7
    Bonjour,

    J'utilise cette fonction pour lire une donnée dans un classeur fermé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ExecuteExcel4Macro("'" & rep & "[" & Fich & "]Validation PDE'!r5c7")
    Or il semble que cela ne fonctionne pas sous Win7 avec les classeurs xlsm, mais que cela refonctionne sous Win10 ?
    Vu sur un post
    https://www.mrexcel.com/forum/excel-...ndows-7-a.html

    Est ce que vous confirmez ?
    avez vous un autre alternative que les OLE etc défini dans le tuto de ce site sur la lecture des classeurs fermés.

    Merci

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par Denis_67 Voir le message
    Bonjour,

    avez vous un autre alternative que les OLE etc défini dans le tuto de ce site sur la lecture des classeurs fermés.

    Merci
    L'accès aux données dans Office est basé sur OLEDB. Peu importe la méthode utilisée, il faut utiliser OLEDB, d'une façon ou d'une autre. Et puis travailler sur un classeur sans ouvrir un classeur d'une façon ou d'une autre, c'est un mythe.

    Quant à chercher à ta place si cela fonctionne sur Windows 10, j'ai d'autres chats à fouetter. Et puis cela n'a aucune importance. Dans un univers hétéroclite de machines Win7 et Win10, cela ne mène à rien de toutes façons.

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Citation Envoyé par Denis_67 Voir le message
    avez vous un autre alternative que les OLE etc défini dans le tuto de ce site sur la lecture des classeurs fermés.
    Oui, via le B-A-BA d'Excel :  une simple formule de calculs …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …


  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Travailler avec des formules qui vont chercher des données dans un autre classeur relève pour moi d'un sérieux problème de conception de données. Si le fichier source (celui dans lequel tu vas chercher tes données par formules) est retravaillé (tris, insertions, suppressions) alors que ton fichier cible (celui qui contient la formule) est fermé, c'est la pagaille assurée sans qu'aucun message ne t'informe du problème.

    Il serait pour moi judicieux de revoir la conception et d'importer ou de lier des tables de données du classeur source dans le classeur cible. Plusieurs outils sont à ta disposition pour réaliser cela: données externes avec MSQuery ou importation de données, PowerQuery (à installer sur une 2013, mais très puissant).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Pourquoi ces réponses un peu rudes !

    J'ai juste créé une procédure qui vérifie en temps réel le status d'une cellule dans un classeur.
    Il n'y a pas de mise à jour ni quoi que ce soit.

    Avant de faire l'action A, je vérifie que j'ai bien l'action B qui a été faite dans un classeur que je cherche parmis x classeurs.

    Quand à la conception, on est souvent pas le géniteur des solutions, mais les docteurs qui apportent parfois des emplatres sur des jambes de bois.

    Mais pourquoi je me justifie au fait !

    Je clos le sujet.
    Merci pour vos réponses.
    Denis

  6. #6
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    817
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 817
    Par défaut
    Toi qui passes ici, j'ajoute la conclusion.

    La lecture du classeur fermé fonctionne comme je le souhaite.
    J'avais cumulé un problème avec le nom des classeurs qui contenait une apostrophe '

    Un curiosité d'excel (pas en VBA, mais dans Excel) si on met une formule dans une cellule appelant la valeur d'un autre classeur et que le nom de ce classeur comporte une apostrophe, alors Excel met deux apostrophes dans la formule.

    J'ai donc solutionne ma requête commes suit:

    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
     
    Sub check_file()
     
    Dim Fich, Maformule, Mon_Rep As String, Ctr As Long
     
    Ctr = 0
    ' Quelque valeurs pour tester
    'art = "85683474" '
    'art = "85679054"  'oui
    'art = "85679232"    'non
    'art = "85702746"   ' demande
    'art = "85703415"
    'art = "toto"
    art = "85623579"
     
    Mon_Rep = "G:\DEPARTEMENT TECHNIQUE\Création Essais CCA1\Articles Essais Créés\"
            Fich = Dir("G:\DEPARTEMENT TECHNIQUE\Création Essais CCA1\Articles Essais Créés\" & art & "*")
        If Fich <> "" Then Ctr = 1
     
    If Ctr = 1 Then
     
          Fich = Replace(Fich, "'", "''") '<----- celle qui m'a fait suer !
        If Fich Like "*Création*" Then Maformule = "='" & Mon_Rep & "[" & Fich & "]VALIDATION PDE'!G5"
        If Fich Like "*Demande*" Then Maformule = "='" & Mon_Rep & "[" & Fich & "]VALIDATION PDE'!G18"
    On Error GoTo Alternatif
            With ThisWorkbook.Sheets("Feuil1").Range("H2")
            .ClearContents
            .Formula = Maformule
            .Value = .Value
            End With
    On Error GoTo 0
     
    End If
    Exit Sub
    Alternatif:
        If Fich Like "*Création*" Then Maformule = "='" & Mon_Rep & "[" & Fich & "]VALIDATION DTE'!G4"
    Resume Next
    End Sub

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

Discussions similaires

  1. [XL-2010] Ecrire et Modifier dans un classeur .xlsm fermé
    Par Naru31 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 03/03/2021, 22h22
  2. [XL-2007] Copie d'un classeur .xlsm dans un nouveau .xls sans le code VBA
    Par Chris50 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/12/2015, 16h09
  3. [XL-2010] Lancement macro classeur xlsm depuis un autre classeur xlsm
    Par Romain_8 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/11/2013, 17h48
  4. [XL-2007] Copier-coller plusieurs feuilles dans un autre classeur (xlsm=>xlsx)
    Par Cesaror dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/06/2012, 11h55
  5. Enregistrer un classeur xlsm en xlsx
    Par possible924 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/02/2011, 22h46

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