ActiveX inactifs après création dans workbook_open

Bonjour à toutes et à tous...

Je tiens à remercier avant toute chose les membres du forum qui m'ont permis de me former sur VBA depuis un mois (je débute)

Je suis en "formation" et j'explore VBA grâce à vous.

Aujourd'hui je m'adresse à vous car je cale sur un point.

Dans le workbook_open j'ai réussi à créer 6 CommandButton activeX qui apparaissent sur la feuille.

Par contre ceux-ci restent inactifs lorsque le chargement est terminé et j'ai une msgbox qui valide qu'ils sont enabled, tout comme quand je repasse en mode création/propriété. Je pense que je passe complétement à côté de la méthode !

Désolé d'avance pour le manque possible de clarté dans mes propos, ceci est mon premier post, je vous demande de me pardonner et compte sur votre bienveillance.

Stef71

Bonjour et bienvenu,

Comment veux tu que le forum intervienne sans code et surtout sans un fichier ?

En conséquence tu joins un classeur à ta demande.

Cdlt.

Bonsoir Jean Eric,

Désolé pour la méthode et la maladresse je n'ai pas trop l'habitude !!

Promis demain je joins mon classeur en cours, je n'ai plus le temps ce soir...

Merci encore de l'attention que tu as porté à mon message quoi qu'il arrive !

Cdlt

Stéphane

Bonsoir,

Dans le workbook_open j'ai réussi à créer 6 CommandButton activeX qui apparaissent sur la feuille.

Soit tu t'exprimes mal, et tu as mis en place des boutons sur une feuille, en oubliant que sans programme déclenché par le clic tu peux toujours t'escrimer à cliquer dessus, il ne se passera rien...

Soit tu t'es lancé dans une opération de création de boutons par programmation à l'ouverture du classeur, ainsi que tu le laisses entendre, et alors je te conseillerai d'attendre d'être suffisamment aguerri en la matière pour ce type d'exercice qui au demeurant est d'une utilité tout à fait marginale au regard des utilisations globales d'Excel-VBA...

Cordialement.

Bonjour à tous,

MFerrand, je te remercie de ta réponse, certes je suis débutant mais est-ce une raison pour ne pas essayer ? Mon projet à pour but d'apprendre, il n'a "aucune" autre utilité. Bien sûr je me suis mis la barre trop haute visiblement mais j'aime les challenges. Je suis encore très brouillon dans mon code, parfois (voire même souvent) incohérent mais quand j'ai commencé à utiliser Excel, c'était la même chose...

Cdlt et bonjour à la Réunion depuis la métropole

Jean Eric je joins mon classeur d'étude comme promis. Comme je le disais à MFerrand, je suis débutant... avec tous les défauts inhérents...

Volià la méthode que j'ai utilisée (réduite à un bouton pour faire court) dans mon workbook_open :

Sub CréerBouton() ''
Dim CB1 As OLEObject 
Set CB1 = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
    Link:=False, DisplayAsIcon:=False, Left:=76, Top:=327, Width:=115, Height:=40)

     CB1.Name = "CB1NUM" 'texte du bouton 1

    ActiveSheet.OLEObjects(1).Object.Caption = "NUMEROS"
    ActiveSheet.OLEObjects(1).Object.BackColor = RGB(27, 79, 8)
    ActiveSheet.OLEObjects(1).Object.ForeColor = vbRed
    ActiveSheet.OLEObjects(1).Object.Font.Bold = True
    ActiveSheet.OLEObjects(1).Object.Font.Size = 14

Worksheets("Bingo").OLEObjects(1).Object.Enabled = True

end sub

Merci à vous deux pour votre dévouement...

Cdlt

Stef

Bonsoir à tous,

Après un gros weekend à potasser le problème, j'ai trouvé ceci :

For i = 1 To ActiveSheet.Shapes.Count

Worksheets("Bingo").OLEObjects(i).Activate

Next

positionné à la fin de WorkBokk_Open () et cela à l'air de fonctionner.

Merci à tous ceux qui ont passé du temps à réfléchir, je vous libère !!!

Cdlt

Stef

Bonsoir,

Je n'avais pas trouvé le temps de revenir... mais j'avais tout de même ouvert ton fichier.

Il y a bien d'indéniables connaissances dans ton code mais aussi une quasi méconnaissance du maniement d'instructions élémentaires. Un rééquilibrage à opérer avec le temps... Il ne faudrait pas non plus négliger l'indentation, cela a plus d'importance que le fait d'adopter une présentation normalisée...

J'ai eu un dysfonctionnement au départ mais je pense, causé par des réactions intempestives [quand on me modifie l'interface sans que je m'y attende, ça me met en rage ! Là le rétablissement était rapide, contrairement à un cas que j'ai eu il n'y a pas si longtemps... ]

En relançant, tous tes boutons étaient actifs ! Tu avais donc résolu le problème avant !

Bonne continuation, mais n'oublie pas que la manipulation de tableaux et de boucles reste ce que tu as le plus souvent besoin d'utiliser en VBA.

Cordialement.

Bonjour MFerrand,

Désolé premièrement d'avoir causé un souci à ton interface ! Sincèrement je ne comprends pas tout à ce sujet, le principal est que tout soit rentré dans l'ordre. Merci de ne pas m'avoir "assassiné" pour mon code de débutant ; je suis loin de maîtriser l'intégralité c'est clair...

Déjà tu me parles d'indentation ? Je vais me pencher sur le sujet - car à ce jour je ne connais pas vraiment ! - et en ce qui concerne les manipulations élémentaires c'est la même chose. Je picore sur le forum pour m'instruire, à mon rythme. J'ai parfois du mal à comprendre la manipulation des variables et leur portée, les tableaux, etc.... C'est un peu pour ça que je me suis lancé dans mon projet "ludique" plutôt que dans un sujet plus "sérieux" ! VBA est assez passionnant tout de même, bien qu'il soit davantage conçu, je te l'accorde volontiers, à des tâches plus "utiles" dans Excel.

Merci pour ta réponse de toute façon, c'est agréable de voir qu'il existe encore de l'entraide dans notre société. De mon côté je vais retourner à mon projet. Maintenant que mon "problème" s'est résolu, je vais avancer un peu plus loin. Déjà épurer le code et supprimer les sub de "travail". Je les avais créer pour éviter de fermer et ouvrir Excel à chaque fois que je modifiais mes lignes... Là aussi je suppose qu'il existe des méthodes plus "propres" ou du moins plus appropriées.

A nouveau merci du temps que tu as consacré à lire mon post.

Bonne continuation aussi dans tes projets...

Stéphane

Rechercher des sujets similaires à "activex inactifs creation workbook open"