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 count sur excel 2010


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut fonction count sur excel 2010
    BOnjour

    j'ai un bout de code qui marche sans souci sur excel 2003 par contre sur excel 2010 il me met l'erreur suivante :

    erreur d'éxécution 1004 erreur définie par l'application ou pas l'objet

    le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For k = 1 To Workbooks("clients.xls").Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row
      ' code pour effectuer des calculs
     
    Next k
    le probleme ne se pose pas si je réecris en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Workbooks("clients.xls").activate
    For k = 1 To Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row
      ' code pour effectuer des calculs
     
    Next k
    mais comme je travaille sur plusieurs classeur excel différent il faut que je reprenne tout le code vba pour réactiver les bons classeurs ....

    n'y a-t-il un moyen de garder le code sans avtgiver le classeur auparavant?

    merci

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    sur qu'elle ligne l'erreur ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    l'erreur se situe sur la lgine 3 cad

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    For k = 1 To Workbooks("clients.xls").Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    je n'ai pas excel 2010 sous la main peu tu voir si tu as la même erreur sur la ligne suivante :

    que tu place avant le FOR ...

    et si tu as l'erreur regarde si celle-ci persiste avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox Workbooks("clients.xls").Sheets(1).Rows.Count

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Citation Envoyé par bbil Voir le message
    je n'ai pas excel 2010 sous la main peu tu voir si tu as la même erreur sur la ligne suivante :

    Ca devrait être OK vu qu'on aura : 1048576 donc qui rentre encore dans un Long, il en est autrement d'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Dénombrer()
     
       MsgBox Worksheets(1).Cells.Count
     
    End Sub
    voir ce fil

    cordialement,

    Didier

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Ce n'est pas un problème d'entrer dans un long ...

    ce que je pense c'est que Rows ... sans rien devant s'applique à la feuille active .. et si la feuille active n'est pas un feuille de calcul mais un graphique ou autre on doit avoir l'erreur 1004 ...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    en effet il n'y a pas d'erreur avec
    le msg affiché est bien 1048576 comme l'a dit Ormonth.

    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks("clients.xls").Sheets(1).Rows.Count
    n'affiche pas d'erreur
    par contre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Worksheets(1).Cells.Count
    affiche un dépssement de capacité comme décrit dans le fil dédié .


    donc il faut que j'enregistre tous mes classeurs en xlsm?
    c'est le seul changement que je teste.?

    mais si je l'enregistre au format 2010 peut on l'ouvrir avec excel 2003?

    merci

  8. #8
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    je pense à un conflit de formats...

    le classeur incriminé doit inclure des macros, hors sous 2007 et après les formats avec et sans diffèrent xlsx ou xlsm...

    Donc Excel ne sait pas retrouver ses petits...

    Si tu actives le classeur, l'interprétation ne suit pas le même processus vu que le classeur est actif et que ses macros ont été ou non activées = pas de dilemme

    test la même chose en sauvegardant ton classeur en xlsm sous le même code en le gardant non actif...

    cordialement,

    Didier

Discussions similaires

  1. [XL-2010] Étiquettes sur Excel 2010
    Par Morgble dans le forum Excel
    Réponses: 1
    Dernier message: 23/08/2011, 14h09
  2. [Débutant] Problème de représentation graphique sur Excel 2010
    Par Tuanou dans le forum VB.NET
    Réponses: 0
    Dernier message: 21/07/2011, 10h14
  3. Supprimer un graphique provenant de SAS ADD-IN sur EXCEL 2010
    Par Salamandar dans le forum ODS et reporting
    Réponses: 16
    Dernier message: 17/06/2011, 16h51
  4. [XL-2007] Fonction SI sur Excel 2007
    Par ANTMA dans le forum Excel
    Réponses: 5
    Dernier message: 28/08/2009, 11h51
  5. [VBA-E]Executer fonction VBA sur Excel sans activer la macro
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/01/2006, 14h34

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