Gestion d'erreur sur Application.InputBox
Bonjour,
Je souhaite utiliser un UserForm avec 16 boutons pour compléter rapidement une ou des cellules choisies par l'utilisateur (via InputBox) entre F18 et F40.
Exemple : Si le bouton ActiveX "CommandButton1" est enabled = True , l'appui sur le CommandButton1 présent dans le UserForm va écrire "1 / 10" dans la ou les cellules sélectionnées.
Le code ci-dessous illustre l'appui sur le bouton1 du UserForm
Option Explicit
Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Dim Cel As Range
Set Cel = Application.InputBox("Sélectionnez une cellule !", Left:=(Application.Width / 2), Top:=(Application.Height / 2), Title:="Sélection de cellule(s)", Type:=8)
If ActiveSheet.CommandButton1.Enabled = True Then
Cel.NumberFormat = "@"
Cel = "1 / 10"
With Cel
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Unload Me
Else
Cel.NumberFormat = "@"
Cel = "1 / 16"
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Unload Me
End If
Application.DisplayAlerts = True
End SubJouer avec Application.DisplayAlerts permet d'empêcher l'erreur si l'on appuie sur OK sans avoir saisi de range, mais je cherche à empêcher l'utilisateur de mettre la macro en erreur si il appuie sur ANNULER ou sur la croix pour fermer l'InputBox
Appuyer sur ANNULER ou la croix de fermeture de l'InputBox = Erreur '424' Objet Requis
Ayant regardé quelques forums sans avoir pu adapter de solution à mon besoin, je fais appel au forum
Merci d'avance
Bonsoir,
Pour le principe.
Cdlt.
Private Sub CommandButton1_Click()
Dim Cel As Range
On Error GoTo errHandler
Set Cel = Application.InputBox("Sélectionnez une cellule !", _
Left:=(Application.Width / 2), _
Top:=(Application.Height / 2), _
Title:="Sélection de cellule(s)", _
Type:=8)
With Cel
.NumberFormat = "@"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Cel.Value = IIf(Me.CommandButton1.Enabled = True, "1 / 10", "1 / 16")
errHandler:
Exit Sub
End SubMerci Jean-Eric, c'est ce que je cherchais à faire
je passe le topic en résolu