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

Microsoft 365 msgBox : afficher contenu de la cellule cliquée

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite une belle journée pleine de soleil

Je me tourne à nouveau vers nos ténors pour un codage que je n'arrive pas à faire.

J'ai un code qui m'a été "concocté" sur notre forum et j'en remercie encore l'auteur car il fonctionne toujours super bien :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(R, Range("f4")) Is Nothing And R.Count = 1 Then

If Not Intersect(R, Range("f4:f10")) Is Nothing And R.Count = 1 Then
Application.EnableEvents = False: Application.ScreenUpdating = False
MsgBox Range("f4")
[a1].Select
Application.EnableEvents = True: Application.ScreenUpdating = True
Exit Sub
End If
End If
End Sub

Si je clique sur ma cellule F4, j'ai bien le msgBox qui apparait avec le contenu de la cellule :

Pour m'en servir dans un autre fichier de travail, j'aimerais pouvoir afficher le msgBox pour chaque cellule cliquée, par exemple de "F4:F100"
Je n'arrive pas à le faire.
Pouvez-vous m'aider ?
Je joins un petit fichier test,
Avec mes remerciements,
lionel,
 

Pièces jointes

  • cellule_msgBAffiche.xlsm
    17 KB · Affichages: 16
Solution
Bonjour Lionel, Marcel32,

Une simple TextBox sur la feuille fait l'affaire, il me semble qu'on a déjà vu ensemble un truc comme ça :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
With TextBox1
    .Visible = False
    If Intersect(ActiveCell, [F4:F27]) Is Nothing Or ActiveCell = "" Then Exit Sub
    .Top = ActiveCell.Top
    .Left = ActiveCell.Offset(, 1).Left + 5
    .Text = ActiveCell
    .SelStart = 0
    .Visible = True
End With
End Sub

Private Sub TextBox1_Change()
Application.ScreenUpdating = False
ActiveCell = TextBox1
ActiveCell.WrapText = False
End Sub
A+

job75

XLDnaute Barbatruc
Bonjour Lionel, le forum,

Pourquoi compliquer les choses :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If Not Intersect(ActiveCell, Range("f4:f100")) Is Nothing Then MsgBox ActiveCell: [a1].Select
End Sub
A+
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Je ne pige pas pourquoi tu as un double test Intersect.

Essaye ces modifications :
- Enlève le premier test.
- Pour le test qui reste, élargi-le à F4:F100 au lieu de F4:F10.
- Pour le MsgBox, utilise R au lieu de "F4".
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard,

LOL évidemment ... mais cette fois, c'était pas moi
Merci Gérard comme d'habitude clair - net et précis.
Encore un GRAND merci,
lionel
 

Usine à gaz

XLDnaute Barbatruc
Bonjour,

Je ne pige pas pourquoi tu as un double test Intersect.

Essaye ces modifications :
- Enlevève le premier test.
- Pour le test qui reste, élargi-le à F4:F100 au lieu de F4:F10.
- Pour le MsgBox, utilise R au lieu de "F4".
Bonjour marcel,
Merci à toi d'être là,
double test Intersect = erreur de copie dans le fil.
Mais c'est résolue.
Bonne journée
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite une belle journée

Je me bats pour rester le meilleur "usine à gaz" et pas question de quitter cette terre sans mon titre !

Je reviens sur le fil car j'en ai une bien bonne.
Gérard (merci à toi) m'a donné un code simple pour afficher le détail contenu dans une cellule.
Le but de ce msgbox est de pouvoir lire clairement sans clic dans la cellule tout le contenu qui n'est pas affiché (cellule petite).

Mon rêve d'usine à gaz folle" .
Dans la continuité de l'objet de mon fil, est-il possible de modifier directement dans le msgbox le contenu de la cellule ? (sans avoir à cliquer dans la cellule).

En cas, je joins le fichier.
En fait, j'avais pensé à un UserForm mais ...

Amicalement,
lionel,
 

Pièces jointes

  • cellule_msgBAffiche.xlsm
    17 KB · Affichages: 7
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
est-il possible de modifier directement dans le msgbox le contenu de la cellule ? (sans avoir à cliquer dans la cellule).
Sans avoir à cliquer "dans" la cellule, je ne vois pas bien comment Excel peut savoir quelle cellule tu veux éditer.

À ma connaissance, une MsgBox est "en lecture seule".
Mais si tu cliques sur la cellule à éditer, au lieu d'afficher une MsgBox tu peux, comme tu le disais, afficher un UserForm contenant une TextBox avec le contenu de la cellule, un bouton "OK" (pour fermer le UserForm en remplaçant le contenu de la cellule par celui de la TextBox) et un bouton "Annuler" (pour fermer le UserForm sans modifier le contenu de la cellule).
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Lionel, Marcel32,

Une simple TextBox sur la feuille fait l'affaire, il me semble qu'on a déjà vu ensemble un truc comme ça :
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
With TextBox1
    .Visible = False
    If Intersect(ActiveCell, [F4:F27]) Is Nothing Or ActiveCell = "" Then Exit Sub
    .Top = ActiveCell.Top
    .Left = ActiveCell.Offset(, 1).Left + 5
    .Text = ActiveCell
    .SelStart = 0
    .Visible = True
End With
End Sub

Private Sub TextBox1_Change()
Application.ScreenUpdating = False
ActiveCell = TextBox1
ActiveCell.WrapText = False
End Sub
A+
 

Pièces jointes

  • cellule_msgBAffiche (1).xlsm
    25.6 KB · Affichages: 12

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite une belle journée

Mon Cher Gérard m'a rappelé que ma demande avait déjà été traitée avec lui par le passé et m'a transmis le fichier en #post9. Evidemment, comme d'hab, ça fonctionne nickel ... Mais ... lol

Toujours dans mes délires , j'y reviens pour une amélioration ... Peut-être, car vraiment pas sûr que ce soit possible !

Excel permet en double clic sur une cellule d'intercaler ou d'ajouter 1 ou plusieurs lignes dans le contenu de la cellule :

Est-il possible de faire la même chose dans le TexBox ?
Je remets le fichier en cas,
Avec mes remerciements,
Amicalement,
lionel
 

Pièces jointes

  • cellule_msgBAffiche (1).xlsm
    22.7 KB · Affichages: 3
Dernière édition:

Discussions similaires

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