OVH Cloud OVH Cloud

Code pour bouton "Annuler".

2 réponses
Avatar
Quaisako
Bonsoir le Forum,

Cette procédure se déclenche à partir du click sur un bouton.

Une InputBox s'ouvre et je sélectionne une cellule.

L'adresse de la cellule sélectionnée s'inscrit dans la zone de texte de
l'InputBox.

Mon problème:
Si je veux Annuler (avant ou après la sélection de la
cellule),
la procédure se poursuit jusq'à la fin.

Comment coder le bouton Annuler de l'InputBox. ? Où placer ce code ?
ou une autre solution.

Merci pour votre aide
Jipé

'=========================================================
'Ajouter une feuille. Frédéric Sigonneau, ChrisV, (N°1152)
'=========================================================
Private Sub CommandButton1_Click()

Dim Rep As String

Rep = Application.InputBox( _
prompt:="Selectionnez un nom dans la liste", Type:=8)
If Rep = "" Then Exit Sub
On Error Resume Next
Application.ScreenUpdating = False

ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count), _
Type:=Application.TemplatesPath &
"Modèle_notation.xlt"
ActiveSheet.Name = Application.WorksheetFunction.Proper(Rep)

ActiveSheet.Name = Rep
If Err <> 0 Then
Err.Clear
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
Msg = "Le nom de feuille que vous avez tapé n'est pas valide !" _
& vbCrLf
Msg = Msg & vbCrLf
Msg = Msg & "- Vérifiez que le nom de la feuille ne dépasse " _
& "pas 31 caractères" & vbCrLf
Msg = Msg & "- Vérifiez que le nom de la feuille ne contient " _
& "aucun des caractères suivants :" & vbCrLf
Msg = Msg & " \ / : ? * [ ou ]" & vbCrLf
Msg = Msg & "- Vérifiez qu'une feuille du classeur ne possède " _
& "pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(Msg, , "Saisie invalide")
End If

'Colorie les onglets des élèves.
.Tab.ColorIndex = 36
End With

'Appel du tri des onglets.
TriNomsOnglets

Exit Sub

End Sub

2 réponses

Avatar
michdenis
Bonjour Quaisako,

Essaie en modifiant légèrement le début de ta macro :


Dim Rep As String
On Error Resume Next
Rep = Application.InputBox( _
prompt:="Selectionnez un nom dans la liste", Type:=8).Value

If Rep = "" Then Exit Sub
On Error Resume Next
Application.ScreenUpdating = False



Salutations!


"Quaisako" a écrit dans le message de news: OlY%
Bonsoir le Forum,

Cette procédure se déclenche à partir du click sur un bouton.

Une InputBox s'ouvre et je sélectionne une cellule.

L'adresse de la cellule sélectionnée s'inscrit dans la zone de texte de
l'InputBox.

Mon problème:
Si je veux Annuler (avant ou après la sélection de la
cellule),
la procédure se poursuit jusq'à la fin.

Comment coder le bouton Annuler de l'InputBox. ? Où placer ce code ?
ou une autre solution.

Merci pour votre aide
Jipé

'======================================================== 'Ajouter une feuille. Frédéric Sigonneau, ChrisV, (N°1152)
'======================================================== Private Sub CommandButton1_Click()

Dim Rep As String

Rep = Application.InputBox( _
prompt:="Selectionnez un nom dans la liste", Type:=8)
If Rep = "" Then Exit Sub
On Error Resume Next
Application.ScreenUpdating = False

ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count), _
Type:=Application.TemplatesPath &
"Modèle_notation.xlt"
ActiveSheet.Name = Application.WorksheetFunction.Proper(Rep)

ActiveSheet.Name = Rep
If Err <> 0 Then
Err.Clear
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
Msg = "Le nom de feuille que vous avez tapé n'est pas valide !" _
& vbCrLf
Msg = Msg & vbCrLf
Msg = Msg & "- Vérifiez que le nom de la feuille ne dépasse " _
& "pas 31 caractères" & vbCrLf
Msg = Msg & "- Vérifiez que le nom de la feuille ne contient " _
& "aucun des caractères suivants :" & vbCrLf
Msg = Msg & " / : ? * [ ou ]" & vbCrLf
Msg = Msg & "- Vérifiez qu'une feuille du classeur ne possède " _
& "pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(Msg, , "Saisie invalide")
End If

'Colorie les onglets des élèves.
.Tab.ColorIndex = 36
End With

'Appel du tri des onglets.
TriNomsOnglets

Exit Sub

End Sub
Avatar
Quaisako
Bonjour le Forum,
Merci michdenis.
Jipé

"michdenis" a écrit dans le message de news:
er$
Bonjour Quaisako,

Essaie en modifiant légèrement le début de ta macro :


Dim Rep As String
On Error Resume Next
Rep = Application.InputBox( _
prompt:="Selectionnez un nom dans la liste", Type:=8).Value

If Rep = "" Then Exit Sub
On Error Resume Next
Application.ScreenUpdating = False



Salutations!


"Quaisako" a écrit dans le message de news:
OlY%
Bonsoir le Forum,

Cette procédure se déclenche à partir du click sur un bouton.

Une InputBox s'ouvre et je sélectionne une cellule.

L'adresse de la cellule sélectionnée s'inscrit dans la zone de texte de
l'InputBox.

Mon problème:
Si je veux Annuler (avant ou après la sélection de la
cellule),
la procédure se poursuit jusq'à la fin.

Comment coder le bouton Annuler de l'InputBox. ? Où placer ce code ?
ou une autre solution.

Merci pour votre aide
Jipé

'======================================================== > 'Ajouter une feuille. Frédéric Sigonneau, ChrisV, (N°1152)
'======================================================== > Private Sub CommandButton1_Click()

Dim Rep As String

Rep = Application.InputBox( _
prompt:="Selectionnez un nom dans la liste", Type:=8)
If Rep = "" Then Exit Sub
On Error Resume Next
Application.ScreenUpdating = False

ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count), _
Type:=Application.TemplatesPath &
"Modèle_notation.xlt"
ActiveSheet.Name = Application.WorksheetFunction.Proper(Rep)

ActiveSheet.Name = Rep
If Err <> 0 Then
Err.Clear
With Application
.ScreenUpdating = True
.DisplayAlerts = False
End With
ActiveSheet.Delete
Msg = "Le nom de feuille que vous avez tapé n'est pas valide !" _
& vbCrLf
Msg = Msg & vbCrLf
Msg = Msg & "- Vérifiez que le nom de la feuille ne dépasse " _
& "pas 31 caractères" & vbCrLf
Msg = Msg & "- Vérifiez que le nom de la feuille ne contient " _
& "aucun des caractères suivants :" & vbCrLf
Msg = Msg & " / : ? * [ ou ]" & vbCrLf
Msg = Msg & "- Vérifiez qu'une feuille du classeur ne possède " _
& "pas déjà un nom identique" & vbCrLf
Reponse = MsgBox(Msg, , "Saisie invalide")
End If

'Colorie les onglets des élèves.
.Tab.ColorIndex = 36
End With

'Appel du tri des onglets.
TriNomsOnglets

Exit Sub

End Sub