Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

vb a des yeux

4 réponses
Avatar
Aurélien
bonjour,

j'ai une preuve, le code vb regarde la userform avant d'executer le code !
oui oui je suis sérieux et c'est d'ailleurs pour ca que je post ici, je n'en
crois toujours pas mes lignes de codes !

voila je m'explique, dans mon code (sous vba excel) j'utilise une listbox
pour stocker des données temporaires.
tout marche bien sauf si je met la propriété visible=false ou locked=true
cela me surprend un peu mais je suppose qu'il y a des methode qui ne sont
plus appellées dans ces cas précis donc je ne suis pas surpris plus que ca.
Je me dis donc, je vais "cacher" ma listbox sous une autre (en la mettant en
arriére plan et l'autre en premier plan), de facon a ce qu'elle ne se voit
pas sur la userform.
et là, le code ne marche plus
j'ai remis cette listbox en plein milieu de ma userform de facon bien
visible, le code remarche
j'ai effectué ceci aprés redémarrage du fichier et comme ca le faisais
toujours, d'excel puis la session puis le pc tout entier ! (et chaque étape
plusieurs fois, c'est tellement inexplicable pour moi que je prefere
confirmer longuement) donc je ne pense pas que ce soit juste un petit bug
d'affichage ou une variable non initialisé ou quoique ce soit d'habituel.
les dimensions de cette listbox joue aussi, faut pas qu'elle soit trop
petite sinon le code ne marche pas non plus !

donc voila, vb me surprend souvent car la programmation n'est pas mon métier
à la base mais là, vraiment ca dépasse tout ce que je pouvais imaginer !

je ne sais pas si quelqu'un a déja vécu une aventure similaire, mais en tous
cas c'est tres embetant.
enfin je commence à me dire qu'on m'a jete un sort vaudou sur mon projet vb
car c'est déja moi qui a une userform qui bouge dés fois (mais pas tout le
temps) toute seule sur l'écran !

pour conclure ce petit post d'un codeur surpris et etonne, faites attention
quand vous créez une userform, vb vous rajoute des handicap si elle est mal
faite ;)

cordialement
A. DUCHAMP

4 réponses

Avatar
Yvan
Salut Aurélien!

Ta conviction et ton enthousiasme font plaisir à constater, mais tu es un peu "dense"
dans tes explications, et il y est difficile d'imaginer concrètement ton exemple.

J'imagine que tu a compris depuis longtemps que le fait de masquer un userform ne
l'empêche pas d'exister et donc de vivre.

Par contre, le fait qu'il soit masqué diminue la priorité des évènements qui le
gèrent, priorité qui sera d'autant diminuée qu'il n'y aura d'autres tâches plus
prioritaires en cours(autres userforms affichés par exemple, mais aussi d'autres
tâches), jusqu'à devenir insignifiante, ce qui fait que le Userform parait "mort",
alors qu'il attend son tour, simplement.

Ceci est peut-être, j'ai bien dit peut-être, une explication, mais ...

Le meilleur moyen d'en avoir le coeur net serait que tu procèdes à un suivi pas à pas
des instructions dans la procédure VB, pour voir ce qui coince, et où çà coince.
Sinon, publie avec cjoint ton code. Il y en aura probablement quelques-uns pour
s'intéresser au cas que tu nous proposes.

Mais à mon avis, VBA serait quand même plutot coopératif, et non complice d'une
machination contre les programmeurs!

VBA a des yeux, mais surtout des oreilles. Il nous regarde peut-être (?), mais sutout
il nous écoute. Et si il ne comprend pas, c'est peut-être que l'on ne sait pas lui
expliquer!!

Mais le cas que tu exposes est intéressant. Tiens nous au courant de tes cogitations.
Il y a surement quelque chose à en tirer!

Amicalement


Yvan


"Aurélien" a écrit dans le message de news:

| bonjour,
|
| j'ai une preuve, le code vb regarde la userform avant d'executer le code !
| oui oui je suis sérieux et c'est d'ailleurs pour ca que je post ici, je n'en
| crois toujours pas mes lignes de codes !
|
| voila je m'explique, dans mon code (sous vba excel) j'utilise une listbox
| pour stocker des données temporaires.
| tout marche bien sauf si je met la propriété visibleúlse ou locked=true
| cela me surprend un peu mais je suppose qu'il y a des methode qui ne sont
| plus appellées dans ces cas précis donc je ne suis pas surpris plus que ca.
| Je me dis donc, je vais "cacher" ma listbox sous une autre (en la mettant en
| arriére plan et l'autre en premier plan), de facon a ce qu'elle ne se voit
| pas sur la userform.
| et là, le code ne marche plus
| j'ai remis cette listbox en plein milieu de ma userform de facon bien
| visible, le code remarche
| j'ai effectué ceci aprés redémarrage du fichier et comme ca le faisais
| toujours, d'excel puis la session puis le pc tout entier ! (et chaque étape
| plusieurs fois, c'est tellement inexplicable pour moi que je prefere
| confirmer longuement) donc je ne pense pas que ce soit juste un petit bug
| d'affichage ou une variable non initialisé ou quoique ce soit d'habituel.
| les dimensions de cette listbox joue aussi, faut pas qu'elle soit trop
| petite sinon le code ne marche pas non plus !
|
| donc voila, vb me surprend souvent car la programmation n'est pas mon métier
| à la base mais là, vraiment ca dépasse tout ce que je pouvais imaginer !
|
| je ne sais pas si quelqu'un a déja vécu une aventure similaire, mais en tous
| cas c'est tres embetant.
| enfin je commence à me dire qu'on m'a jete un sort vaudou sur mon projet vb
| car c'est déja moi qui a une userform qui bouge dés fois (mais pas tout le
| temps) toute seule sur l'écran !
|
| pour conclure ce petit post d'un codeur surpris et etonne, faites attention
| quand vous créez une userform, vb vous rajoute des handicap si elle est mal
| faite ;)
|
| cordialement
| A. DUCHAMP
Avatar
Aurélien
oui ce dois surement etre une histoire de priorité car la "surprise" arrive
moins souvent maintenant que j'ai mis service.list(service.listindex) au lieu
de service tout court ! (toujours sensible à la taille toutefois)

je croyais que c'étais la même chose mais non ! égal pour des grandes
valeurs de 2 dirait mon prof de statistique !

et oui vb est tres gentil avec moi, en 1 semaine, j'ai fais quasiment mon
sujet de stage qu'on m'avais donné pour quelques mois ;) devant les yeux
ébahis de toute l'entreprise :)

(par contre, à chaque version d'office, on enleve une fonction que j'adore,
je ne comprend pas !, mais il en reste tout plein d'autre)

pour le code, il fait 1300 lignes au total donc peut etre trop long à
disséquer (même s'il est truffé de commentaires)

cordialement,
A. DUCHAMP
Avatar
ClémentMarcotte
Bonjour,

voila je m'explique, dans mon code (sous vba excel) j'utilise une listbox
pour stocker des données temporaires.


Il existe au moins 3 alternatives pour conserver des données temporaires

Feuille de classeur que l'on efface ou supprime à la fin
Fichier texte que l'on peut supprimer à la fin
Presse-papier.

tout marche bien sauf si je met la propriété visibleúlse ou locked=true
Pour visible, je ne sais pas, mais pour locked, c'est vraiment barré,

inaccessible et inutilisable tant que Locked est à True

Avatar
Yvan
Conviction, enthousiasme, ... et sagesse: Bien vu, Aurélien!

Continue comme çà!

Bon courage, et bonne chance pour la suite de tes travaux.

A bientot, avec plaisir!

Yvan


"Aurélien" a écrit dans le message de news:

| oui ce dois surement etre une histoire de priorité car la "surprise" arrive
| moins souvent maintenant que j'ai mis service.list(service.listindex) au lieu
| de service tout court ! (toujours sensible à la taille toutefois)
|
| je croyais que c'étais la même chose mais non ! égal pour des grandes
| valeurs de 2 dirait mon prof de statistique !
|
| et oui vb est tres gentil avec moi, en 1 semaine, j'ai fais quasiment mon
| sujet de stage qu'on m'avais donné pour quelques mois ;) devant les yeux
| ébahis de toute l'entreprise :)
|
| (par contre, à chaque version d'office, on enleve une fonction que j'adore,
| je ne comprend pas !, mais il en reste tout plein d'autre)
|
| pour le code, il fait 1300 lignes au total donc peut etre trop long à
| disséquer (même s'il est truffé de commentaires)
|
| cordialement,
| A. DUCHAMP