Microsoft 365 InputBox : saisir ou modifier le contenu de la cellule cliquée à l'aide de l'InputBox

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 !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite un beau dimanche 🙂

Pour des besoins dans l'un de mes fichiers de travail, je voudrais saisir ou modifier le contenu de la cellule cliqué à l'aide de l'InputBox :

l'InputBox prenant le contenu de la cellule (vide ou non), je saisi dans l'InputBox,
1 - à la validation, la cellule cliquée prend la valeur de l'InputBox,
2 - si j'annule, la cellule cliquée garde sa valeur (vide ou non).

J'ai fait des recherches (peut-être mal cherché) et des tentatives sans trouver comment coder.
Auriez-vous la solution ?

Un grand merci à toutes et à tous,
Je mets un p'tit fichier test et je continue à chercher.
Amicalement,
lionel 🙂
 

Pièces jointes

Bonjour Lionel,
Essayez :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
        Nom = Application.InputBox("Saisir ou modifier", "")
        If Nom <> 0 Then R = Nom
    End If
End Sub
 
Bonjour Usine à gaz

Essaie peut-être cela , à moins que je n'ai pas bien compris :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
    Nom = Application.InputBox("Saisir ou modifier", "")
    Range(R.Address).Value = Nom
End If
End Sub
 
Pardon...n'ai pas prévu bouton annuler :
voilà :
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
    Nom = Application.InputBox("Saisir ou modifier", "")
    If Nom = False Then Exit Sub
    Range(R.Address).Value = Nom
End If
End Sub
 
Bonjour Usine à gaz

Essaie peut-être cela , à moins que je n'ai pas bien compris :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
    Nom = Application.InputBox("Saisir ou modifier", "")
    Range(R.Address).Value = Nom
End If
End Sub
Bonjour patty58 merci d'être là toi aussi.
Malheureusement ça ne fonctionne pas.
l'InputBox ne prend pas le contenu de la cellule cliquée et me renvoie des "FAUX dans ma cellule.
Pour info : sylvanu est tout près de la solution,
lionel 🙂
 
Décidément dur dur le dimanche matin :

Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
    Nom = Application.InputBox("Saisir ou modifier", "", Range(R.Address).Text)
    If Nom = False Then Exit Sub
    Range(R.Address).Value = Nom
End If
End Sub

Bonne continuation
 
Pardon...n'ai pas prévu bouton annuler :
voilà :
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
    Nom = Application.InputBox("Saisir ou modifier", "")
    If Nom = False Then Exit Sub
    Range(R.Address).Value = Nom
End If
End Sub
Re 🙂

Presque nickel comme sylvanu ça fonctionne ...
Mais l'InputBox ne prend pas le contenu de la cellule cliquée.
lionel 🙂
 
Bonjour

c'est ça le problème avec les imputbox de l'application difficile de gérer l'annulation quand on met dans le default la valeur initilale

il faut donc utiliser le inputbox de VB

et utiliser la fonction strptr pour l'annulation

démo
tu a bien la valeur par defaut affiffée dans l'input
si tu annule le control strptr annulera tout simplement la commande

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim V$
V = CStr(Target.Value)
If Not Intersect(Target, Range("a1:zz10000")) Is Nothing Then
    nom = InputBox("Saisir ou modifier", "", V)
        If StrPtr(nom) > 0 Then Target.Value = nom
End If
End Sub

pour info strptr renvoie l'adress memoire de la donnée de l'imput
si c'est 0 c'est que tu a annulé
c'est pas compliqué
 
Oups !
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
        Nom = InputBox("Saisir ou modifier", "Modifier", R.Value)
        If Nom <> "" Then R = Nom
    End If
End Sub
Je suis un peu à labour ...🙂
 
Décidément dur dur le dimanche matin :

Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
    Nom = Application.InputBox("Saisir ou modifier", "", Range(R.Address).Text)
    If Nom = False Then Exit Sub
    Range(R.Address).Value = Nom
End If
End Sub

Bonne continuation
Hé ben là, c'est tout bon ,
Merci beaucoup 🙂
 
Bonjour

c'est ça le problème avec les imputbox de l'application difficile de gérer l'annulation quand on met dans le default la valeur initilale

il faut donc utiliser le inputbox de VB

et utiliser la fonction strptr pour l'annulation

démo
tu a bien la valeur par defaut affiffée dans l'input
si tu annule le control strptr annulera tout simplement la commande

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim V$
V = CStr(Target.Value)
If Not Intersect(Target, Range("a1:zz10000")) Is Nothing Then
    nom = InputBox("Saisir ou modifier", "", V)
        If StrPtr(nom) > 0 Then Target.Value = nom
End If
End Sub
Bonjour Patrick d'être là toi aussi 🙂
ET...... c'est tout bon également Merci 🙂
lionel,
 
Oups !
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
    If Not Intersect(R, Range("a1:zz10000")) Is Nothing Then
        Nom = InputBox("Saisir ou modifier", "Modifier", R.Value)
        If Nom <> "" Then R = Nom
    End If
End Sub
Je suis un peu à labour ...🙂
Merci sylvanu, j'ai pu complété ton code avec l'aide des autres réponses.
Merci à toi 🙂
lionel 🙂
 
- 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

Retour