Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion chinel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

chinel

XLDnaute Impliqué
Salut tout le monde i

j'ai une inputbox qui s'ouvre quand je clique sur le bouton mais peut-on annuler une inputbox voir ceci :

mot = InputBox("pour qui veux-tu imprimer le planning ?") & "*"

quand je mets ok pas de problèmes elle fais sont travail, mais je veux annuler elle le fais quand même !!!!
pourquoi ????


merci de votre aide !
 
Re : inputbox

Bonjour Chinel, salut JeanPierre, le fil

Extrait de l'aide:
Si l'utilisateur clique sur OK ou appuie sur ENTRÉE , la fonction InputBox renvoie le texte contenu dans la zone de texte. Si l'utilisateur clique sur le bouton Annuler, la fonction renvoie une chaîne de longueur nulle ("").
Donc tu dois gérer la chaîne vide renvoyée si tu cliques sur annuler. par ex :
Code:
If mot = "" Then Exit Sub
Mais dans ton exemple, tu ne renvoies jamais de chaîne vides à cause de ton & "*" qui fait que même si ton inputbox ne renvoie rien, ta variable "mot" sera toujours au minimum: mot = "*". Dans ce cas ce n'est pas une chaîne vide, donc géré comme une saisie valable.

bonne journée
 
Re : inputbox

Bonjour 🙂,
J'ai rencontré le même genre de problème avec les USF car le fait de fermer l'USF avec la croix en haut à gauche décharge l'USF mais n'arrête pas pour autant la macro en cours. Je l'ai contourné en publiant une variable Cancel dans mon module:
Code:
Public Cancel as string
Puis dans mon USF, j'initialise sur "OUI":
Code:
Private Sub UserForm_Initialize()
    Cancel = "OUI"
End Sub
Et dans le cas où le clic se fait sur "OK":
Code:
Private Sub CommandButton1_Click()
    Cancel = "NON"
End Sub
Il te reste juste à tester Cancel dans ta macro.
C'est un peu plus lourd qu'un InputBox, mais ça fonctionne 😎
 
Re : inputbox

Besoin d'aide car cela fonctionne mais bizarrement voici mon code !

Private Sub CheckBox5_Click()
Sheets("Calendrier").Unprotect
If CheckBox5.Value = True Then
Set f = Sheets("Calendrier")
Dim C As Range
mot = InputBox("pour qui veux-tu imprimer le planning ?") & "*"
Set rng = f.Range("A8:N11"): Set rng1 = f.Range("A15:N18")
Set rng2 = f.Range("A22:N25"): Set rng3 = f.Range("A29:n32")
Set rng4 = f.Range("A36:h39"): Set rng5 = f.Range("A43:N47"): Set rngP = Application.Union(rng, rng1, rng2, rng3, rng4, rng5)

Application.ScreenUpdating = False
For Each C In rngP
If Not IsEmpty(C) And Not C Like mot Then C.Font.ColorIndex = 2
If Not IsEmpty(C) And Not C Like mot Then C.Interior.ColorIndex = 2
Next
Application.ScreenUpdating = True
Sheets("Calendrier").Activate
Sheets("Calendrier").Visible = True
Application.Dialogs(xlDialogPrinterSetup).Show
Sheets("Calendrier").Range("a2:n47").PrintPreview
Sheets("Calendrier").Visible = False
Application.ScreenUpdating = False
For Each C In rngP
C.Font.ColorIndex = 0
Next
Application.ScreenUpdating = True
CheckBox5.Value = False
If CheckBox5.Value = False Then
End If

End If
End Sub

merci de votre aide !
 
Re : inputbox

Sans aller plus loin, il semble qu'en cas d'édition, tu ne laisses pas le temps au système de réaliser cette édition avant de modifier l'affichage. Tu devrais déjà ajouter DoEvents après chaque sollicitation du système
Code:
Sheets("Calendrier").Visible = True
DoEents
Application.Dialogs(xlDialogPrinterSetup).Show
Sheets("Calendrier").Range("a2:n47").PrintPreview
DoEvents
Sheets("Calendrier").Visible = False
Application.ScreenUpdating = False
Bonne journée
 
Re : inputbox

Epaf , j'ai mis "DoEvents" mais j'ai une erreur "ERREUR DE COMPILATION; SUB OU FUNCTION NON DEFINIE" et j'ai vu dans ton code une erreur surement de frappe regarde :

Sheets("Calendrier").Visible = True
DoEents
Application.Dialogs(xlDialogPrinterSetup).Show
Sheets("Calendrier").Range("a2:n47").PrintPreview
DoEvents
Sheets("Calendrier").Visible = False
Application.ScreenUpdating = False

je ne comprend pas, j'ai surment sauté une étape !


merci de ton aide !
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
242
Réponses
7
Affichages
689
Réponses
19
Affichages
867
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…