Sélection par default d'un bouton de commande activX
Résolu
mod77
Messages postés
1284
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un bouton de commande activX qui me permet d'entrer une valeur par "inputbox".
Une fois la valeur entrée, je vérifie que ce n'est pas un doublon dans une boucle for "each worksheets".
Si ça l'est alors j'efface ma cellule "03", j'invite a entrer une nouvelle valeur et je quitte ma boucle "for each worksheets".
J'aimerais qu'une fois sorti, mon bouton de commande soit pré-sélectionné, pour taper directement "enter" pour l'activer, plutôt que chercher la souris pour cliquer MAIS seulement dans ce cas.
Comment puis-je faire svp?
J'ai un bouton de commande activX qui me permet d'entrer une valeur par "inputbox".
Une fois la valeur entrée, je vérifie que ce n'est pas un doublon dans une boucle for "each worksheets".
Si ça l'est alors j'efface ma cellule "03", j'invite a entrer une nouvelle valeur et je quitte ma boucle "for each worksheets".
J'aimerais qu'une fois sorti, mon bouton de commande soit pré-sélectionné, pour taper directement "enter" pour l'activer, plutôt que chercher la souris pour cliquer MAIS seulement dans ce cas.
Comment puis-je faire svp?
A voir également:
- Sélection par default d'un bouton de commande activX
- Invite de commande - Guide
- Commande terminal mac - Guide
- Bouton reinitialisation pc - Guide
- Commande dism - Guide
- Diagnostic bouton photo - Accueil - Outils
3 réponses
Eh bien finalement j'ai juste rappelé sa fonction par :
Mais je ne sais pas si le code "exit" après l'appel est nécessaire?
Call cbLire_Click
Mais je ne sais pas si le code "exit" après l'appel est nécessaire?
Voici le code de mon bouton cbLireVote_Click():
Mais les lignes en gras m'inquiète car j'appelle dans la procédure cette même procédure.
Est-ce que je fais bien, svp? ou y a-t-il une façon plus sereine de le faire svp?
Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!
Passez en résolu si ça l'est!
'Demande du numéro
num = InputBox("Entrer un numéro:", "Vote ", "0")
'Controle si numéro de feuil "Réso XX" existe déjà dans une feuille
For Each WS In Worksheets
If Left(WS.Name, 5) = "Réso " Then 'si Nomfeuil = "Réso "
If Mid(WS.Name, 6) = num Then
MsgBox (" Numéro déjà existant! Entrer un nouveau numéro svp!")
Sheets("Votes").Range("O3") = ""
Call cbLireVote_Click
Exit For 'si num existe déjà on sort de la boucle
Else
'si num n'existe pas, écrit le numéro en "O3"
Worksheets("Votes").Range("O3") = num
End If
Else 'si Nomfeuil différent de "Réso "
'Ecrit le numéro en "O3"
Worksheets("Votes").Range("O3") = num
End If 'Nom feuille
Next WS
Mais les lignes en gras m'inquiète car j'appelle dans la procédure cette même procédure.
Est-ce que je fais bien, svp? ou y a-t-il une façon plus sereine de le faire svp?
Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!
Passez en résolu si ça l'est!
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
plus serein, vite fait et pas très élégant:
'Demande du numéro debut: num = InputBox("Entrer un numéro:", "Vote ", "0") 'Controle si numéro de feuil "Réso XX" existe déjà dans une feuille For Each WS In Worksheets If Left(WS.Name, 5) = "Réso " Then 'si Nomfeuil = "Réso " If Mid(WS.Name, 6) = num Then MsgBox (" Numéro déjà existant! Entrer un nouveau numéro svp!") Sheets("Votes").Range("O3") = "" goto debut Else 'si num n'existe pas, écrit le numéro en "O3" Worksheets("Votes").Range("O3") = num End If Else 'si Nomfeuil différent de "Réso " 'Ecrit le numéro en "O3" Worksheets("Votes").Range("O3") = num End If 'Nom feuille Next WS
je ne suis pas certain d'avoir compris ce que tu voulais faire, et je suggère:
Option Explicit Sub test() Dim unique As Boolean Dim num As String unique = False Do num = InputBox("Entrer un numéro:", "Vote ", "0") If existe(num) Then MsgBox (" Numéro déjà existant! Entrer un nouveau numéro svp!") Else unique = True End If Loop While Not unique Worksheets("Votes").Range("O3") = num End Sub Function existe(num As String) As Boolean Dim ws As Worksheet For Each ws In Worksheets If Left(ws.Name, 6) = "Réso " & num Then existe = True Exit Function End If Next ws existe = False End Function
Je pense que je me suis mal exprimé.
Ce que je veux indiquer c'est qu'il n'est pas nécessaire de réécrire plusieurs fois "num".
On peut peut-être l'éviter.
En fait, je n'avais pas précisé que je nomme les feuilles selon la valeur de "num".
C'est pour cela, qu'avant de la créer, je dois vérifier qu'une feuille ne porte pas déjà ce nom et numéro (Réso1, Réso2...) parmi les feuilles existantes.
Mais ton code est bon ça marche très bien!
Merci
Ce que je veux indiquer c'est qu'il n'est pas nécessaire de réécrire plusieurs fois "num".
On peut peut-être l'éviter.
En fait, je n'avais pas précisé que je nomme les feuilles selon la valeur de "num".
C'est pour cela, qu'avant de la créer, je dois vérifier qu'une feuille ne porte pas déjà ce nom et numéro (Réso1, Réso2...) parmi les feuilles existantes.
Mais ton code est bon ça marche très bien!
Merci