XL 2016 Récupérer le contenu de cellule dans une InputBox

Fab117

XLDnaute Occasionnel
Hello,

Pour faire du classement, je dois récupérer diverses informations contenues dans plusieurs cellules de mon onglet (j'ai par exemple une cellule contenant une date, une autre un Nom, ...).

Je voudrais donc qu'il m'ouvre une InputBox en me demandant par exemple: "Date" et qu'au lieu de renseigner le champ de l'inputbox manuellement (clavier) avec la date, je puisse cliquer dans la cellule contenant la date.
Ensuite, il démarrera la 2ème InputBox (Nom), et aisni de suite.

Quelqu'un saurait-il comment procéder ?

Excellent week-end.

Fab
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je m'orienterais plus vers un UserForm comportant une TextBox pour chaque information, affiché en non modal, prenant en charge l'évènement SheetSelectionChange d'un objet Application.
(Ou d'ailleurs l'évènement SelectionChange d'un objet Worksheet, c'est peut être plus familier)
Si c'est un travail préparatoire qui doit définir plusieurs plages devant intervenir dans un traitement lancé à la fin, j'ai aussi un excellent UFmSelect fait pour ça.
 
Dernière édition:

Fab117

XLDnaute Occasionnel
Salut,
Merci pour ta proposition. Le UserForm est une bonne idée. Je vais creuser et je reviendrai si je bloque.
Bonne soirée.

Fab
 

laurent950

XLDnaute Impliqué
Bonsoir,
La construction d'un usurform sera je pense aussi plus adapter.
le principe avec une ImputBox ci dessous.
VB:
Sub test1()
' Pour la selection d'une cellule
Dim txt As Range
Set txt = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
MsgBox txt.Value
End Sub
VB:
Sub test2()
' Pour la selection de plusieurs cellules
Dim txt As Range
Set txt = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
For Each res In txt
    MsgBox res.Value
Next res
End Sub
VB:
Sub test3()
' Pour la selection d'une ou de plusieurs cellules
Dim txt As Range
Set txt = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8)
If txt.Count = 1 Then
    MsgBox txt.Value
Else
    For Each res In txt
        MsgBox res.Value
    Next res
End If
End Sub
 

Haut Bas