VBA - textbox.backcolor qui fait planter excel

arkhan07

XLDnaute Nouveau
Bonjour,

J'utilisais dans une forme, un grand nombre de textbox, environ 300. Mon code en VBA me permet de choisir la couleur de fond d'une box. En voici un exemple :






Dim vert As Double
Dim orange As Double
Dim etat_emp As String

vert = 59392
orange = 42495

If etat_emp = "libre" Then
TextBox_emp1.BackColor = vert 'vert
End If
If etat_emp = "occupee" Then
TextBox_emp1.BackColor = orange 'orange
End If







Jusqu'a là tout fonctionne.

J'ai rajouter des textbox dans ma forme, dupliquer le code de cette maniere :





If etat_emp = "libre" Then
TextBox_emp2.BackColor = vert 'vert
End If
If etat_emp = "occupee" Then
TextBox_emp2.BackColor = orange 'orange
End If




quand je génère le code en mode débogage dans VBA tout fonctionne. Mais quand je l'utilise a partir de ma feuille excel, les anciennes textbox se colories comme à leur habitude et arriver à la recente textbox, le programme plante de cette maniere :

Microsoft Office Excel a rencontré un problème et doit être fermé. Nous vous prions de nous excuser pour le désagrément encouru.

Je n'arrive pas à comprendre pourquoi tout marche en mode débogage et pourquoi excel plante lorsqu'il doit atribué une coleur a la nouvelle textbox.

Merci de votre aide.
 

phlaurent55

XLDnaute Barbatruc
Re : VBA - textbox.backcolor qui fait planter excel

Bonjour arkhan, et bienvenue sur le forum

ne sachant pas l'endroit où tu as mis le code, essaie ceci:

UserFrom1. TextBox_emp2.BackColor = vert

sinon, mets ton fichier en pièce jointe (sans données confidentielles)

à+
Philippe
 

arkhan07

XLDnaute Nouveau
Re : VBA - textbox.backcolor qui fait planter excel

Merci Philippe pour ton aide.

J'ai compris d'où venait l'erreur. En faite excel ne me propose pas toujours d'initialiser les controles ActivesX. Lorsque qu'il m'ouvre la fenetre pour me le proposer et que j'autorise l'oppération, mon application marche.

J'ai donc une nouvelle question à vous poser.

Comment forcer excel à me proposer cette activation. J'aimerais ecrire dans le code de ma fenetre quelque chose de ce genre :



Private Sub UserForm_Initialize()

'-------Démarrer les activesX-------
'ouvrire la fenetre d'excel qui propose d'initialiser les activiesX.
'-------Démarrer les activesX-------

End Sub

merci
 

Discussions similaires


Haut Bas