Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !

gerard55

XLDnaute Occasionnel
Bonjour à tous
J'ai besoin de votre aide pour le code ci-dessous. Je voudrais que s'il y a une erreur de saisie, il m'indique un message d'erreur. Mais, ce que j'ai écrit ne fonctionne pas.

Sub calendrier()
Dim jour As String
jour = InputBox("calendrier")
Range("ai1").Value = jour
If "ai1" = LUNDI Or MARDI Or MERCREDI Then
Range("AI1").Select
Selection.AutoFill Destination:=Range("AI1:AI7"), Type:=xlFillDefault
Range("AI1:AI7").Select
Range("f14").Select
Else
MsgBox ("vous avez une erreur de saisie")
End Sub

Merci pour vos proposition
Gérard
 
Re : Condition VBA

Regarde modif en rouge

 
Re : Condition VBA

Bonjour le fil 🙂,
J'avais été juste un peu plus loin, alors 🙄...
Code:
Sub calendrier()
Dim jour As String
Recommence:
jour = UCase(InputBox("calendrier"))
If jour = "LUNDI" Or jour = "MARDI" Or jour = "MERCREDI" Then
Range("AI1").Value = jour
Range("AI1").AutoFill Destination:=Range("AI1:AI7"), Type:=xlFillDefault
Else
MsgBox ("vous avez une erreur de saisie")
GoTo Recommence
End If
End Sub
UCase passe en majuscule, donc l'utilisateur peux tapper lundi, Lundi ou LUNDI.
Recommence: permet de redemander à l'utilisateur de resaisir grace à GoTo.
Et il parait plus logique de ne remplir la cellule que si la valeur est juste.
Bonne soirée 😎
PS : Habitude, tu avais loupé le End If 😛
 
Re : Condition VBA

Tu veux remplacer le
MsgBox ("vous avez une erreur de saisie")

Par une validation du inputbox?

@Jnp tu as raison pour le end if et aussi le Ucase.

Donc je me permets de

Code:
Sub calendrier()
Dim jour As String

Do While jour <> "LUNDI" and jour <> "MARDI" and jour <> "MERCREDI"
     jour = UCase(Trim(InputBox("calendrier")))
Loop

Range("ai1").Value = jour
Range("AI1").Select
Selection.AutoFill Destination:=Range("AI1:AI7"), Type:=xlFillDefault

End Sub
 
Dernière édition:
Re : Condition VBA

Re 🙂,
Mais, la condition telle qu'elle est écrite n'empèche aucune écriture. l'on peut écrire ce que l'on veut
C'est bien ce que j'avais écrit, tester la variable, et si le test est bon, écrire 😉.
A + 😎
@ Habitude : J'allais dire que si l'utilisateur voulait sortir, il fallait peut-être ajouter
Code:
jour = UCase(InputBox("calendrier"))
If jour = "" Then Exit Sub
If jour = "LUNDI" Or jour = "MARDI" Or jour = "MERCREDI" Then
 
Dernière édition:
Re : Condition VBA

Bonsoir à tous
Une variante sur le principe de la procédure de Habitude :
Code:
[COLOR="DarkSlateGray"][B]Sub calendrier()
Dim jour$, msg$
   With Range("AI1")
      Do
         jour = WorksheetFunction.Proper(InputBox("calendrier", msg, .Value))
         If msg = "" Then msg = "Vous avez une erreur de saisie !"
      Loop Until jour Like "Lun*" Or jour Like "Mar*" Or jour Like "Mer*" Or jour = ""
      .Value = jour
      .AutoFill Destination:=.Resize(7, 1), Type:=xlFillWeekdays
   End With
End Sub[/B][/COLOR]
ROGER2327
#3940


Samedi 7 Tatane 137 (Saint Biribi, taulier, SQ)
2 Thermidor An CCXVIII
2010-W29-2T23:24:24Z
 
Dernière édition:
Re : Condition VBA

Re 🙂,
mais , j'ai essayé toute vos suggestions. Mais, je peux saisir ce que je veux.
C'est sûr, une InputBox est en saisie libre, c'est après que tu peux tester ce que l'utilisateur a rempli. Il n'y a pas de masque de saisie 😛...
Il est possible, mais assez complexe, de modifier l'intitulé des bouton, et de remplacer Oui, Non et Annuler par exemple par tes LUNDI, etc., mais il mes semble que tu es limité à 3 possibilité, et ça tient plutôt de l'usine à gaz 😀...
Si tu veux forcer la saisie, il faut passer par un ComboBox (voir PJ) 😉.
La liste de validation d'Habitude serait une autre possibilité, sauf qu'il me semble qu'on ne peux pas forcer à prendre un élément de la liste déroulante, donc la saisie est libre, c'est la validation de la cellule qui est interdite, ce qui correspond à l'InputBox de départ 😱.
Bonne journée 😎
 

Pièces jointes

- 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
4
Affichages
586
Réponses
6
Affichages
737
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…