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 :

sumIfs Incompatibilité de type


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 24
    Par défaut sumIfs Incompatibilité de type
    Bonjour à tous

    Je ne comprends pas d'où vient mon erreur.
    J'ai l'erreur incompatibilité de type sur la ligne SumIfs

    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
     
    Sub stk()
     
        Dim xlapp As New Excel.Application
        Dim xlbook As New Excel.Workbook
        Dim xlsheet As New Excel.Worksheet
        Dim poids as single
     
        Set xlbook = xlapp.Workbooks.Open("C:\Users\val\Desktop\bddstk.xlsx")
        Set xlsheet = xlbook.Sheets("Feuil1")
        xlsheet.Select
     
        poids = WorksheetFunction.SumIfs(xlsheet.Range("k10:k100"), xlsheet.Range("d10:d100"), "52320", xlsheet.Range("f10:f100"), "4110000004")
     
        xlbook.Close
        xlapp.Quit
     
        Set xlsheet = Nothing
        Set xlbook = Nothing
        Set xlapp = Nothing
     
    End Sub
    lorsque je teste ce code sans faire appel à ce classeur externe, tout marche très bien... Comme si la fonction sumifs ne pouvait pas être utilisé pour un classeur externe ??!!!

    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    As tu testé de cette façon ? Chez moi, ça me renvoi bien la somme en k10:k100 quand les conditions des autres plages sont réunies. Je pense que le problème viens de l'initialisation d'une des variables xlapp et xlbook mais difficile à dire quand ça fonctionne chez soi :
    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
     
    Sub stk()
     
        Dim xlapp As Excel.Application
        Dim xlbook As New Excel.Workbook
        Dim xlsheet As New Excel.Worksheet
        Dim poids As Single
     
        Set xlapp = New Excel.Application
        Set xlbook = Application.Workbooks.Open("D:\Classeur1.xls")
        Set xlsheet = xlbook.Sheets("Feuil1")
        xlsheet.Select
     
        poids = WorksheetFunction.SumIfs(xlsheet.Range("k10:k100"), xlsheet.Range("d10:d100"), "52320", xlsheet.Range("f10:f100"), "4110000004")
        MsgBox poids
     
        Set xlsheet = Nothing
        Set xlbook = Nothing
        Set xlapp = Nothing
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 24
    Par défaut
    je vais tester ton code.

    je pense également qu'il y a un soucis avec ces variables car j'ai remédié au problème en copiant collant la feuille dans mon classeur actif et la fonction marche parfaitement.

    ya donc bien un soucis avec ces variables. mais pourtant j'arrive à lire une cellule de cette feuille "xlsheet", c'est juste la fonction sumifs qui plante.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ai pas testé le code VBA mais comme tu utilises WorksheetFunction.SumIfs, tu devrais avoir les mêmes erreurs qu'en utilisant simplement les fonctions Excel sans VBA.
    Je suis en train de tester un paquet de fonctions Excel entre des classeurs qui sont liés.
    La fonction SUMIF ou SOMME.SI renvoie une erreur si le classeur source est fermé.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Incompatibilité de type ListBox
    Par priest69 dans le forum Access
    Réponses: 1
    Dernier message: 16/11/2005, 11h19
  2. Message incompatibilité de type
    Par Daniel MOREAU dans le forum Access
    Réponses: 5
    Dernier message: 10/10/2005, 20h57
  3. incompatibilité de type
    Par zooffy dans le forum Access
    Réponses: 2
    Dernier message: 13/06/2005, 15h12
  4. Incompatibilité de types dans un formulaire
    Par ahage4x4 dans le forum ASP
    Réponses: 3
    Dernier message: 03/05/2005, 15h39
  5. [XSD] Incompatibilité des types xs:ID et xs:IDREF ?
    Par Cpt.FLAM dans le forum Valider
    Réponses: 6
    Dernier message: 08/04/2005, 14h54

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