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

Usine à gaz

XLDnaute Barbatruc
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

  • inputBox_test.xlsm
    14.4 KB · Affichages: 14

patty58

XLDnaute Occasionnel
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
 

patty58

XLDnaute Occasionnel
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
 

Usine à gaz

XLDnaute Barbatruc
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 :)
 

patty58

XLDnaute Occasionnel
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
 

Usine à gaz

XLDnaute Barbatruc
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 :)
 

patricktoulon

XLDnaute Barbatruc
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é
 

Usine à gaz

XLDnaute Barbatruc
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 :)
 

Usine à gaz

XLDnaute Barbatruc
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,
 

Discussions similaires

Statistiques des forums

Discussions
315 132
Messages
2 116 589
Membres
112 798
dernier inscrit
nicoolio