Boucle sur commandbutton & userform à éviter

Fermé
J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018 - 12 oct. 2017 à 20:50
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 19 oct. 2017 à 13:10
Bonjour,

Je vais tenter d'explique mon problème, ci-joint mon fichier.
J'ai supprimé un plan correspondant à mon travail.
Userform1 est toujours actif et me sert de fenêtre de travail.
J'ai des commandbutton renomés lorsque là V1, V2, V3 etc etc etc et d'autres avec d'autres noms suivront lorsque j'aurais trouvé la solution à mon problème.
Lorsque je clic sur l'un d'entre eux, si ce dernier est vert alors il ouvre l'userform2 pour le mettre en rouge. S'il est à l'inverse rouge, il ouvre l'useform3 pour le mettre en vert.
Cependant à la fin de ce dernier, il réouvre automatiquement et celà sans fin l'userform2 pour le remettre en rouge.
Je ne trouve pas la solution à ce problème bloquant.
Je suis certain que c'est une petite erreur ....
Google déjà consulté bien entendu !
merci pour votre aide, je suis débutant en vba.
Ici : https://www.cjoint.com/c/GJmsXOdzSUY




--

8 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
13 oct. 2017 à 07:02
Bonjour,

MonBout est le nom du Bouton pas un Control

Fichier modifie: https://www.cjoint.com/c/GJnfccqjOqf
0
J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
13 oct. 2017 à 12:41
Salut f894009,
tout d'abord merci, je pensais que ce n'était pas grand chose.
J'ai vu les modifications pour l'appeler l'userform.
Tu as peut être vu d'autres erreurs dont je suis preneur, tant que ça ne ralenti pas ce dernier et que surtout ça facilite l'écriture des autres à venir ...
Tu as peut être remarqué que le multipage ne s'affichait pas correctement, mais aussi que si tu changes de pages, par moment il disparait ...
Tu aurais également la solution à ce problème éventuellement ?

Encore merci pour mon dépatouillage des commandbutton's....

--
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 13 oct. 2017 à 12:51
Re,

Je regarde la chose. Ceci-dit je n'ai pas un ecran geant, donc je vais faire des modif pour tester
A+
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
13 oct. 2017 à 13:50
Re,

fichier modifie pour probleme pages Multipage non vislbles: scroll userform1 sur affichage, changement de page Multipage

https://mon-partage.fr/f/nUlK7ZVp/
0
J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
13 oct. 2017 à 19:59
Un énorme merci !!!!!
C'est vraiment bien de maitriser ce qu'on veut faire, je vous envie très franchement ....
Personnellement pas le temps à tout ça, j'essai de faire des choses qui au final restent simple ....
[RESOLU]
--
0
J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
15 oct. 2017 à 09:44
Bonjour,
Je me permets de poursuivre ....
Dans ce que tu as modifié, je souhaite utiliser MonBout pour lancer une macro dont le nom serait associé ...
Je vais avoir tellement de commandbutton et de choses à réaliser qu'en fait je pense qu'organiser le travail par des macros c'est le plus simple ....
Là, le problème c'est que vu que je ne maitrise pas VBA, j'ai des soucis avec les IF et ce qui va avec, ça relis constament et refait les actions alors que je ne souhaite pas que ça se passe .... bref
Si je fais :
run monbout
Ceci me dont erreur d'execution 1004, impossible d'executer la macro 'V3' il est possible qu'elle ne soit pas disponible dans ce classeur .....
Bref, est ce que ça vient du fait que ce soit un objet ?
Merci

--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
15 oct. 2017 à 10:59
Bon j'ai enfin trouvé une autre solution, je passe par le commandbutton_click directement sauf que je dois renomer le call V3 en call Vanne3 .... Pas des soucis là dessus, un peu d'écriture mais rien de gênant ...
Merci (j'ai cherché toute la nuit et ce matin aussi d'où le post ! ;)
Bonne journée !

--
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
15 oct. 2017 à 11:16
Bonjour,

Vous pouvez remettre le fichier a dispo??
Je vais voir ce qui pourrait vous aider
0
J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
15 oct. 2017 à 16:50
Voici le fichier modifié en version macro...
Il y a une macro qui vérifie certaines vannes ..... Vous verez la V4 et V5 et V6 fonctionne (sauf une ligne ajoutée si v4 alors ext sub sinon ça relancait un msgbox .... pas compris ...
J'ai mis la matinée à comprendre que j'avais une erreur ...
N'est il pas possible d'avoir une simplification dans tout ça ? Car j'ai mis toutes les possibilités à avoir pour lancer la chose .... ca risque d'etre compliqué en avancant dans ce projet, car le réseau : V2 V3 V5 V50 ca fait déjà beaucoup de possibilité ...
> si c'est rouge alors ça fait qq chose, si l'une d'elle n'est plus rouge alors ça fait autre chose ...
J'ai supprimé le plan car c'est un site à risque aux attentats ...
Merci
lien : https://www.cjoint.com/c/GJpoTIfUQjc
D'avance merci pour l'aide !!!
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
16 oct. 2017 à 07:09
Bonjour,

En effet, je regarde la chose

A+
0
J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
16 oct. 2017 à 11:12
ah le en effet me fait peur :(
M E R C I
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > J0K068 Messages postés 32 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 8 mai 2018
16 oct. 2017 à 13:17
Re,

Le code pour les boutons vannes peut etre simplifie en utilisant un module de classe(top), mais sans module de classe peut aussi etre simplifie (moins top); Par contre vos equations etats de vannes(O/F) pourrait etre simplifiees en passant par des variables qui donnerait l'etats de groupes de vannes significatifs au lieu de tester systematiquement les x vannes considerees. You pige la chose ??
Pour cela il vous faut regarder les decoupages possibles, ecrire betement toutes les equations sur papier ou sur des lignes excel et voir les regroupements de vannes adéquoats et aussi ce simplifier purement les equations
0
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 17
18 oct. 2017 à 18:39
Désolé, troisième réponse qui ne s'affiche pas ... bon ! journée de m**** !
Après des recherches et une modif l'UF s'ouvre sur le 64 et 32 .... Cool ;)
'ajouter l 'option zoom sur userform1
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long


Par contre erreur dans les deux versions sur votre code ... :

If Left(MonBout, 1) = "V" Then

Une idée ? Je n'avais pas testé sans passer avant par la modif du 64/32 ....
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
18 oct. 2017 à 19:10
Bonjour,

If Left(MonBout, 1) = "V" Then

teste si la premiere lettre a gauche de MonBout est egale a "V"

Quelle erreur avez vous?? Parce que chez moi y a pas d'erreur

Coabition 64/32 pour les API
' --- DECLARATION API WINDOWS
#If VBA7 Then
  Private Declare PtrSafe Function ShellExecute _
    Lib "shell32.dll" _
    Alias "ShellExecuteA" ( _
      ByVal hwnd As LongPtr, ByVal lpOperation As String, _
      ByVal lpFile As String, ByVal lpParameters As String, _
      ByVal lpDirectory As String, ByVal nShowCmd As Long) _
    As LongPtr
#Else
  Private Declare Function ShellExecute _
    Lib "shell32.dll" _
    Alias "ShellExecuteA" ( _
      ByVal hwnd As Long, ByVal lpOperation As String, _
      ByVal lpFile As String, ByVal lpParameters As String, _
      ByVal lpDirectory As String, ByVal nShowCmd As Long) _
    As Long
#End If
0
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 17
18 oct. 2017 à 19:03
Bon, le fichier ouvre bien l'UF mais pas toujours ... des fois les DLL sont manquantes et donc plante le fichier ...
La galère !
Je me dis qu'il faudrait quand même ajouter cette probabilité ... Je suppose que de plus en plus les ordinateurs passeront en 64 bits ...
Je sens que je vais galérer encore ! :(
En attendant, je ne sais pas si on peut se parler en privé, ça serait bien, j'avais une question à poser.
Merci
0
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 17
18 oct. 2017 à 19:14
J'ai bien trouvé cette cohabitation mais je le mets où ?
Où que je le mette ça ne fonctionne pas ...
MErci
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
18 oct. 2017 à 19:43
Re,

les ordinateurs passeront en 64 bits ...
Oui, votre office est un 64 bits ou 32 bits car chez moi Windows en 64bits et office aussi donc chez vous qu'est ce qui a change?

c'est un exemple pour la fonction ShellExecute, il faut modifier pour vos APIs
0
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 17
18 oct. 2017 à 20:34
Je suis au boulot mais j'ai accès à distance à mon pc : processeur M3 64bits et VBA 7.1 v.1048 excel 2016.
Hmmmm il me semble que j'avais déjà une panique à bord à cause de cette version ....
Pour l'erreur de monbout il me surligne le left.
0
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 17
18 oct. 2017 à 20:47
Bon :
C'est pénible de l'un à l'autre ça diffère :
Sur le PC du boulot VBA 7.0 ça fonctionne, j'ai trouvé pour la cohabitation, je l'ai mis dans thisworkbook.
J'ai modifié la partie zoom où il faisait des erreurs dès l'ouverture comme indiqué au 28 ème message.
Je confirme votre proposition fonctionne à merveille. MERCI !
Chez moi sur ce nouveau pc le code left n'est pas compris : l'erreur est projet ou bibliothèque introuvable.
Je ne comprends pas.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019
18 oct. 2017 à 21:05
Re,
Si problème de DLL, va être laborieux pour continuer sur ce PC. Office 32 ou 64bits
0
J0K0 Messages postés 163 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 19 juillet 2019 17
18 oct. 2017 à 21:20
ok je vais voir pour éventuellement downgrader de version du coup ...
Petite question : puis je utiliser l'option left pour sélectionner tous les controls d'un même début de nom ?
Ou dois je procéder différemment ?
0