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 :

Problème avec Application.WorksheetFunction [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut Problème avec Application.WorksheetFunction
    Bonjour,

    J'ai passé un bon moment à rechercher pourquoi cela ne fonctionnait pas, mais je n'y arrive pas. Sous Excel, il n'y a aucun problème avec cette écriture (pour transférer dans une plage, la colonne d'un Array(T)):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        FL1.[AG3].Resize(UBound(T, 1)) = Application.Index(T, , 5)
    Mais je suis sous Access, d'où je manipule des fichiers Excel.
    Et même si j'y arrive autrement (plus lent), je souhaiterai le faire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim FL1 As Excel.Worksheet
     
        FL1.[AG3].Resize(UBound(T, 1)) = xlApp.WorksheetFunction.Index(T, , 5)
    Erreur : "Argument not optional"

    En vous remerciant de m'aider à résoudre mon problème.
    Cordialement,
    J-Michel

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    bonjour,

    si tu enlève justement .worksheetFunction ?

    Car dans Excel : Application = l'application Excel

    donc quand tu es dans Access, normalement si tu remplaces Application par la variable Objet représentant l'application Excel ...

    dans excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FL1.[AG3].Resize(UBound(T, 1)) = Application.Index(T, , 5)
    dans une autre application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FL1.[AG3].Resize(UBound(T, 1)) = xlApp.Index(T, , 5)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut Déjà essayé
    Bonjour,

    je te remercie pour ta réponse. J'ai déjà essyé et erreur : "type mismatch". Je vais, à nouveau, y passer un moment aujourd'hui et tenter de trouver une solution.
    Bien entendu, je reste connecté pour vous lire.
    Bien cordialement,
    Jean-Michel

  4. #4
    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
    Montre-nous s'il te plait où et comment tu as affecté une valeur à tes variables FLI, T, etc ... (toutes celles qui pointent vers des variables VBA/Excel)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut
    Bonjour,

    J'ai des valeurs de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("C:\Temp\Book1.xlsx", 0, True)
    xlApp.Visible = True
    xlBook.Activate
    Set FL1 = xlBook.Worksheets("Sheet1")
    FL1.Activate
    ReDim T(1 To 2, 1 To 2)
    T(1, 1) = "1"
    T(1, 2) = "#N/A"
    T(2, 1) = "Pierre"
    T(2, 2) = ""
    Mais je ne comprends toujours pas.
    En vous remerciant pour votre aide.
    Cordialement.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Par défaut
    J'ai enfin trouvé. Cela semble prvenir d'une incompatibilité avec la feuille Excel sur laquelle je travaillais. En effet, sous Office 2010 cela fonctionne, mais pas sous 2016.
    Je suis donc reparti avec une feuille vierge crée sous 2016 et j’ai recopié l’ancienne. Maintenant, ça marche.
    En vous remerciant pour votre patience.
    Cordialement.
    Jean-michel

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

Discussions similaires

  1. Problème avec Application.Dialogs(xlDialogSaveAs).Show
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/12/2007, 18h54
  2. Problème avec Application.OnTime
    Par Uopip dans le forum VBA Outlook
    Réponses: 14
    Dernier message: 09/07/2007, 15h14
  3. Problème avec Application.Minimize
    Par Alchemist dans le forum Delphi
    Réponses: 1
    Dernier message: 27/01/2007, 21h49
  4. [VBA-E] Problème avec Application.StatusBar
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/03/2006, 16h44
  5. problème avec Application->ProcessMessages()
    Par petitours dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/08/2005, 10h27

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