inputbox

LaurentG

XLDnaute Occasionnel
Bonjour,

Est-il possible de faire appel à une sorte de inputbox, mais au lieu d'avoir un champ pour écrire, on a un champ 'Refedit' (pour sélectionner une cellule dans la feuille)? Et donc ne pas passer par la création d'un USF.

merci

Laurent
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re : inputbox

Salut Laurentg, Jeannot45

En fait il existe dans VBA deux commandes inputbox, la méthode et la fonction (ne me demandez pas pourquoi).
la fonction, au contraire de la méthode, ne permet pas de préciser le type de données et le retour est obligatoirement de type string
Les débutants font souvent l'erreur d'appeler la fonction à la place de la méthode
l'appel de la fonction:
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
qui donne
MyValue = InputBox(Message, Title, Default)
l'appel de la méthode:
expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
qui donne
Set myCell = Application.InputBox( prompt:="Select a cell", Type:=8)
ou
MyValue = Application.InputBox( prompt:="Enter a number", Type:=1)

Cordialement, A+
 

Hervé

XLDnaute Barbatruc
Re : inputbox

bonjour tout le monde

Je profite de ce post pour poser une petite question.

Comment gérer vous l'appui sur annuler dans le cas de la méthode ?

perso, je passe par des on error :

Dim plage As Range

On Error Resume Next
Set plage = Application.InputBox("laquelle ?", Type:=8)
MsgBox plage.Address
On Error GoTo 0

auriez vous une autre syntaxe pour eviter les on error ?

salut
 
M

Mytå

Guest
Re : inputbox

Salut le forum,

Hervé pour ma part je préfere gérer la gestion d'erreur :

Code:
Sub Essai()
 
Dim PlageSource As Range
Dim Msg
 
On Error GoTo Erreur
 
'Permet de sélectionner une plage avec la souris (Méthode InputBox)
    Set PlageSource = Application.InputBox _
        ("Sélectionnez la ou les cellule(s) à copier !", "Plage source", Type:=8)
 
'..... le code
 
Exit Sub
 
Erreur:
If err.Number = 424 Then
    MsgBox "You press Cancel, this procedure will now terminate."
Else
    Msg = "L'erreur # " & Str(err.Number) & " a été générée par " & _
        err.Source & Chr(13) & err.Description
    MsgBox Msg, , "Erreur", err.HelpFile, err.HelpContext
End If
 
End Sub

Mytå
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : inputbox

Bonjour

autre possibilité mais toujours par on error

Code:
On Error Resume Next
 
'Permet de sélectionner une plage avec la souris (Méthode InputBox)
    Set PlageSource = Application.InputBox _
        ("Sélectionnez la ou les cellule(s) à copier !", "Plage source", Type:=8)


If PlageSource Is Nothing Then MsgBox "rien"
Mais bon c'est moins pro que ce que propose Myta

Bonne journée
 

Discussions similaires

Réponses
3
Affichages
594

Statistiques des forums

Discussions
312 523
Messages
2 089 321
Membres
104 119
dernier inscrit
karbone57