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 :

remplissage zone de liste (Combobox) : Erreur d'exécution 1004 !?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 27
    Points : 16
    Points
    16
    Par défaut remplissage zone de liste (Combobox) : Erreur d'exécution 1004 !?
    Bonjour


    je tente de remplir une combobox (zone de liste) sachant que je la remplis à partir d'une colonne qui comporte des cellules vides et des doublons.
    Pour contourner le pb des cellules vides, j'ai filtré les données non vides sur cette liste et copier uniquement les cellules visibles dans une autre feuille puis ensuite j'ai pu alimenter mon combobox.

    Problème : j'ai souvent le message suivant
    "Erreur d'exécution 1004 : La méthode Paste de la classe Worksheet a échoué."
    et selon le support Microsoft ceci apparaît lorsqu'on essaie de copier et coller par programmation des données filtrées dans un classeur.

    D'après support Microsoft :

    Cause

    Ce problème peut se produire lorsque l'une des conditions suivantes est remplie :
    •La macro Microsoft Visual Basic pour Applications (VBA) copie et colle une ligne entière dans un classeur Excel 2003.
    •La macro Microsoft VBA copie et colle une plage de 2 516 lignes ou plus dans un classeur Excel 2003.

    Contournement

    Pour contourner ce problème si votre macro VBA copie et colle une ligne entière, modifiez le code de la macro pour copier uniquement
    la section de la ligne contenant des données. Par exemple, utilisez un code de macro VBA semblable au suivant :
    Range(Range("A" & ActiveCell.Row), Range("IV" & ActiveCell.Row).End(xlToLeft)).Select

    Pour contourner ce problème si votre macro VBA copie et colle une plage de 2 516 lignes ou plus,
    modifiez le code de la macro pour s'exécuter en boucle pour copier et coller des plages de données plus réduites
    jusqu'à ce que toute la plage souhaitée soit copiée et collée.


    Mais ce qu'il propose pour résoudre le pb ne m'aide pas trop (trop vague)...


    Quelqu'un a-t-il déjà eu ce pb ?
    ou
    Est-ce qu'il existerait un moyen direct pour remplir une zone de liste sans vide et sans doublons ?


    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Tu devrais surtout utiliser la méthode additem :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for A=1 to 10
    MonCombo.additem .cells(A,2)
    next A
    Comme ca pas de copier coller et ca va extrèmement vite.

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Merci pour la réponse mais cela ne résoud pas le pb des vides et des doublons dans ma zone de liste...

Discussions similaires

  1. Remplissage zone de liste
    Par lelensois16 dans le forum IHM
    Réponses: 1
    Dernier message: 21/01/2010, 20h40
  2. Réponses: 11
    Dernier message: 09/03/2009, 12h47
  3. Réponses: 6
    Dernier message: 28/03/2007, 15h53
  4. Réponses: 8
    Dernier message: 23/08/2006, 22h22
  5. Réponses: 4
    Dernier message: 07/07/2006, 09h00

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