Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

  • 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
Supporter XLD
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
Supporter XLD
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é
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
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 ...
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Hé ben là, c'est tout bon ,
Merci beaucoup
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick d'être là toi aussi
ET...... c'est tout bon également Merci
lionel,
 

Discussions similaires

Réponses
8
Affichages
483
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…