Treeview Macro qui recommence

Le
Roland Miller
Bonjour,

J'ai un souci … depuis un bon bout de temps.

Lorsque du code est exécuté … rendu à une étape=
le code recommence et je cherche à éviter ceci. En espérant=
que c'est assez clair comme intro.

J'ai un treeview alimenté par une feuille Excel. Dans la macro je met =
à jour des plages de cellules dans la feuille qui alimente le treeview=
. Mais lorsque le code ci-dessous s'exécute … c'est comme si l=
e treeview est sollicité ou comme s'il s'ouvrait alors qu'il ne l'est =
pas … et qu'alors la macro recommence.

En fait ce code … quelque soit la ligne lance Sub Pro_TREEVIEWINITI=
ALUPDATE().

Existe t'il une façon de rendre le Treeview genre "dormant" un peu com=
une enableevents = false durant l'exécution de code?

Los de l'exécution de ce code le EnableEvents est à False.

Merci à l'avance.

'**********************************************************************

UF_Treeview.ListBox1.RowSource = "Var_ListFile"
UF_Treeview.TextBox6.Text = "Liste de tous les documents externes dans le=
dossier"
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26538520
Le 17/02/20 à 18:30, Roland Miller a écrit :
UF_Treeview.ListBox1.RowSource = "Var_ListFile"
UF_Treeview.TextBox6.Text = "Liste de tous les documents externes dans le dossier"

Bonjour,
A )
UF_Treeview.ListBox1.RowSource = "Var_ListFile"
Il faut éviter d'utiliser la propriété "RowSource" pour remplir les
contrôles d'un formulaire, utilise plutôt quelque chose comme ceci :
With UF_Treeview.ListBox1
'pour 2 colonnes de données
.ColumnCount = 2
'La largeur de chacune des colonnes
.ColumnWidths = "20;25"
'Le contenu du listbox
'En supposant que "Var_ListFile"
'est une plage nommée de cellules
.List = Range("A1:B10").Value
End With
B ) UF_Treeview.TextBox6.Text = "Liste de tous les documents externes
dans le dossier"
Cela dépend dans quelle procédure événementielle du formulaire, tu as
inscrit cette ligne de code. Par elle-même, prise toute seule, je n'ai
rien à dire sur ce sujet.
MichD
Roland Miller
Le #26538521
Plus précisément … ça lance Private Sub UserForm_Ini tialize().
MichD
Le #26538522
Le 17/02/20 à 19:04, Roland Miller a écrit :
Plus précisément … ça lance Private Sub UserForm_Initialize().


Quel est le nom de la procédure qui exécute le nom de cette ligne de code :
UF_Treeview.TextBox6.Text = "Liste de tous les documents externes dans
le dossier".
Est-ce que tu as dans ce formulaire, des procédures événementielles
comme Private Sub TextBox1_Change() par exemple...lorsque le contenu du
textgbox1 est modifié peu importe la procédure, cela appelle la
procédure "Sub TextBox1_Change()" et il faut alors voir ce qu'il y a
comme code dans cette procédure.
Dans rien voir, je ne peux pas deviner ce qui se passe.
MichD
Roland Miller
Le #26538523
Effectivement … j'ai regardé et ça appelle Private Sub Li stBox1_Click().
À ce moment dans le ListBox il y a une liste de nom de documents. Et q uand on clique dans le ListBox … selon le document … ç a "enabled" ou "disabled" des boutons et ça met à jour des infos dans une feuille Excel.
Mais alors … concernant "peu importe la procédure, cela appell e la procédure "Sub TextBox1_Change()" … il n'y a aucun moyen de ne pas appeler l'évènement? Comme un EnableEvents = False? J 'ai essayé et ça passe par dessus.
MichD
Le #26538542
| EnableEvents
Ceci n'est applicable qu'aux procédures événementielles du classeur et
n'a aucun impact sur les événements du formulaire.
| il n'y a aucun moyen de ne pas appeler l'évènement?
**** Cela est possible en utilisant une variable dans le haut du formulaire.
Dim Toto As Boolean
Dans la procédure qui appelle ceci : Sub ListBox1_Click(), tu donnes à
la variable la valeur toto = True et dans la procédure "Click" tu fais
le test suivant : if toto = true then exit sub.
Il ne faut pas oublier de remettre dans ton code la valeur Toto = False
pour que tu puisses avoir accès à la procédure "clic" au moment désiré.
C'est le principe que tu peux appliquer au besoin.
MichD
Roland Miller
Le #26538551
Merci … encore … infiniment. J'apprécie énormément.
Publicité
Poster une réponse
Anonyme