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 :

[VBA-E]Création de boutons dans VB


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2005
    Messages : 39
    Par défaut [VBA-E]Création de boutons dans VB
    Bonjour,
    dans une procédure, je recrée à chaque passage un même tableau, et je lui crée un certain nombre de boutons en tête de colones.
    Le système refuse aujourd'ui de me créer ces boutons.
    Je pense que j'ai dépassé un nombre max (68000 ++ boutons crées) autorisé (le système marche dans d'autre procédures où je n'en suis qu'à quelques centaines).
    Comment donc réinitialise-t-on ce nombre max à zéro?
    Merci d'avance à tous ceux qui vont m'aider.
    Cordialement.
    Bernard

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Par défaut
    tu veux supprimer les boutons deja existant?

    quelle est la structure du nom du bouton?

  3. #3
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par BBe8127
    Je pense que j'ai dépassé un nombre max (68000 ++ boutons crées) autorisé

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut
    Citation Envoyé par BBe8127
    Comment donc réinitialise-t-on ce nombre max à zéro?
    C'est difficile de répondre tant qu'on ne sait pas:
    1. ce que tu appelle bouton en entête;
    2. ce que tu appelle tableau (tableau en mémoire, FlexGrid, DataGrid...);
    3. dans quoi (quelle variable et quel type) tu garde le nombre de boutons créés;
    4. le nombre max est-il limité par le type de variable, si oui, prends un type avec plus de capacité, genre Long;
    5. la méthode pour créer les fammeux boutons.

    Donc, avec quelques bouts de code stratégiques, on pourrait mieux cibler le problème et du même coup t'aider.

  5. #5
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2005
    Messages : 39
    Par défaut
    Bonjour,

    et merci à ceux qui ont essayé de me répondre.
    Manisfestement, je me suis mal exprimé et j'en suis désolé.
    Je reprends donc mon message en l'explicitant un peu mieux.

    "dans une macro VB, je recrée à chaque passage un même tableau Excel "(rab du tableau précédent, et effacement des boutons qui existaient)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          Sheets("Tout").Select 
          Cells.Select 
          Selection.ClearContents 
          Selection.ClearFormats 
          Sheets("Tout").Shapes.
          SelectAll Selection.Delete
    "Ce tableau comporte une vingtaine de colones et pour pouvoir l'exploiter, "je crée en tête de certaines colones des boutons renvoyant à des macros "de tri.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
           ActiveSheet.Buttons.Add(2, 5, 30, 30.75).Select 
           Selection.OnAction = "'Forces -
               Tableaux.xls'!a_Affichage.Tout_Genre"    Selection.Characters.
               Text ="Genre" 
            With Selection.Characters(Start:=1, Length:=9).Font 
                .Name = "Times New Roman" 
                .FontStyle = "Normal" 
                .Size = 11
            End With
    "Ce code qui fonctionnait depuis plus d'un an refuse aujourd'ui de me créer "ces boutons.
    Erreur d'exécution "1004"
    La méthode Select de le classe Button a échoué
    "Je pense que j'ai dépassé un nombre max autorisé (68000 ++ boutons "crées dans ce dossier Exel ou sur cette feuille).
    "VB numérote automatiquement les les objets crées.

    "Le même code fonctionne dans des procédures où le nombre de boutons "créés ne dépasse pas "quelques centaines".
    "Mon problème est donc de "remettre à zéro" ce compteur.
    "Comment cela se fait-il?
    ________________

    Pour répondre plus particulièrement à Zazaraignée:

    3. dans quoi (quelle variable et quel type) tu garde le nombre de boutons créés;
    4. le nombre max est-il limité par le type de variable, si oui, prends un type avec plus de capacité, genre Long;

    = je ne gère pas moi même le nombre des boutons, c'est le système qui le fait, je ne connais donc ni son nom ni sa position.

    Les réponses à tes trois autres questions sont dans ma nouvelle présentation de la question.
    ___________________________

    Dans l'attente de vous lire.
    Cordialement.
    Bernard

    PS: ThierryAIM , j'ai cherché avant de poser ma question.

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Visiblement, d'après ton code, tu n'es pas en VB mais bien en VBA.

    J'ai corrigé le tag en ce sens.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    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
    bon en tout cas l'erreur et reproductible... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Test()
           ActiveSheet.Buttons.Add(2, 5, 30, 30.75).Select
           Set s = ActiveSheet.Buttons(1)
           Debug.Print s.Name
           s.Delete
    End Sub
     
    Sub Test2()
     For i = 1 To 65535
      Test
      DoEvents
     Next
    End Sub
    c'est le 65536éme .. qui fait planter.., mqe plus qu'a voir comment réinitialiser ce fameux compteur...? .
    j'ai déjà une solution de contournement... tu copie la feuille compléte dans le même classeur, tu détruit l'original ... et le compteur repart à 1....

  8. #8
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2005
    Messages : 39
    Par défaut
    bbil.

    Même si ta solution n'est pas tout a fait celle recherchée, ça marche en effet.

    Merci à ceux qui ont planché.

    Cordialement.
    Bernard

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

Discussions similaires

  1. [Débutant] Création de bouton dans un tableau
    Par sybcat dans le forum Visual Studio
    Réponses: 0
    Dernier message: 21/11/2012, 18h52
  2. Création de bouton dans Outlook
    Par greg12 dans le forum Outlook
    Réponses: 2
    Dernier message: 21/07/2008, 12h28
  3. Création de bouton dans une fenêtre
    Par Lion09 dans le forum Débuter
    Réponses: 7
    Dernier message: 08/07/2008, 20h07
  4. [VBA-E] Supprimer un bouton dans la barre de menu
    Par damsmut dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/06/2007, 18h15
  5. [VBA-E]Création de boutons selon une liste
    Par frevale dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/03/2006, 15h31

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