Aperçu (Genre d'info-bulle) d'une cellule trop large

  • Initiateur de la discussion Initiateur de la discussion Gedch
  • Date de début Date de début

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 !

Gedch

XLDnaute Occasionnel
Bonjour

Je souhaiterais en passant la souris sur une cellule dont la largeur ne permet pas de voir tout son contenu directement, d’avoir un aperçu (genre d'info-bulle) comme lorsque l’on passe sur les commentaires par exemple.

Est-ce possible ?

Merci
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour Gedch, le forum,

Est-il possible de modifier la couleur du fond ou du texte de l'info-bulle ?

Pour modifier l'apparence des info-bulles Windows voyez ce fil :

Comment augmenter la taille des infobulles ? - Fiche pratique

Mais ici il s'agit de messages de saisie dans les validations de données d'Excel, je ne sais pas si ça changera quelque chose.

Et je n'ai pas testé car je n'ai pas envie de modifier le paramétrage de mon ordi 🙂

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Re,

Une variante que le post d'eriiiic m'a inspirée :

Code:
Sub Info(Target As Range)
Dim larg1 As Single, larg2 As Single, f As String
Application.ScreenUpdating = False
With Target.Cells(1, 1)
  larg1 = .ColumnWidth
  .Columns.AutoFit 'ajustement de la colonne
  larg2 = .ColumnWidth
  .ColumnWidth = larg1
  f = .NumberFormat
End With
With Target.Validation
  .Delete
  .Add Type:=xlValidateInputOnly
  .InputMessage = IIf(larg2 > larg1, Format(Target.Cells(1, 1), f), "")
End With
End Sub

Le message utilise le format nombre de la cellule.

A+

Je n'avais vu ce poste

Je l'ai essayé, mais rien se passe !

Est-ce qu'il faut combiner ta macro avec celle d'eriiiic ?

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour Gedch, le forum,



Pour modifier l'apparence des info-bulles Windows voyez ce fil :

Comment augmenter la taille des infobulles ? - Fiche pratique

Mais ici il s'agit de messages de saisie dans les validations de données d'Excel, je ne sais pas si ça changera quelque chose.


A+

J'ai essayé, cela fonctionne parfaitement,
Petit problème effectivement, cela agit sur toutes les Info-bulles de Windows

On peut tout remettre à létat initial sans problème !, mais cela fait beaucoup de manipes ....

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonsoir le forum,

Il ne faut pas oublier de gérer l'erreur n°1004 (Erreur définie par l'application ou par l'objet) quand le nombre de caractères de la cellule traitée est supérieur à 254 :

En utilisant par exemple le code suivant :
Left(Trim(Target), 254)

Ce qui revient à supprimer les espaces à droite et à gauche et à conserver les 254 premiers caractères.

Sinon cette astuce est excellente !

A+
Hamcec
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour Gedch, hamcec, le forum,

@ Gedch post #17

Pour voir la différence entre les macros des posts #10 et #11, entrez une date et mettez la cellule au format personnalisé jjjj j mmmm aaaa.

@ Gedch post #18

J'espérais bien obtenir ce résultat.

Peut-être existe-t-il des API Windows permettant de modifier l'apparence des info-bulles depuis Excel, mais je n'ai rien trouvé.

@ hamcec post #19

Tout à fait exact, il faut limiter à 254 caractères, donc modifier la macro :

Code:
Sub Info(Target As Range)
Dim larg1 As Single, larg2 As Single, f As String
Application.ScreenUpdating = False
With Target.Cells(1, 1)
  larg1 = .ColumnWidth
  .Columns.AutoFit 'ajustement de la colonne
  larg2 = .ColumnWidth
  .ColumnWidth = larg1
  f = .NumberFormat
End With
With Target.Validation
  .Delete
  .Add Type:=xlValidateInputOnly
  .InputMessage = IIf(larg2 > larg1, [COLOR="Red"]Format(Left(Trim(Target.Cells(1, 1)), 254), f)[/COLOR], "")
End With
End Sub

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Re,

Voici une autre solution qui utilise une TextBox :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Info ActiveCell
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Info Target.Cells(1, 1)
End Sub

Sub Info(Target As Range)
Dim larg1 As Single, larg2 As Single, f As String
Application.ScreenUpdating = False
With Target
  larg1 = .ColumnWidth
  .Columns.AutoFit 'ajustement de la colonne
  larg2 = .ColumnWidth
  .ColumnWidth = larg1
  f = .NumberFormat
End With
With MaChose 'nom de la TextBox
  .Visible = larg2 > larg1
  .Value = Format(Target, f)
  .AutoSize = True
  .Top = Target.Top
  .Left = Target.Offset(, 1).Left
End With
End Sub

Créez la TextBox avec la Boîte à Outils Contrôles et nommez-la MaChose.

En mode Création, on peut modifier à loisir les propriétés de la TextBox.

Il n'y a plus de limitation du nombre de caractères (testé jusqu'à 10000...).

Fichier joint.

A+
 

Pièces jointes

Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour job75


Re,

Voici une autre solution qui utilise une TextBox :

Créez la TextBox avec la Boîte à Outils Contrôles et nommez-la MaChose.

En mode Création, on peut modifier à loisir les propriétés de la TextBox.

Il n'y a plus de limitation du nombre de caractères (testé jusqu'à 10000...).

Fichier joint.

A+

Peux tu m'en dire un peu plus sur comment "Créez la TextBox avec la Boîte à Outils Contrôles", ou se trouve cette "Boîte à Outils Contrôles" ?

Merci

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour Gedch,

Là c'est du archi archi classique 🙂

Je n'ai pas Excel 2007, alors cherchez sur le forum.

De même pour modifier les propriétés de la TextBox, vous devriez arriver à vous débrouiller tout seul 🙂

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonsoir

Cette TextBox a effectivement des avantages par rapport à l'autre solution
On a pas de problème de nombre de caractères
On peut paramétrer pas mal de choses comme la couleur

Par contre on a un problème d'affichage
c'est que la TexteBox s'étire en longueur à l'infini
On ne peut donc pas lire toute la phrase.

J'ai bien essayé de figer la taille, mais dans ce cas même si la hauteur permet de mettre plusieurs lignes, il n'y a pas de retour à la ligne et on ne voit donc que une partie du texte.

Reste plus que à chercher comment mettre une césure automatique ...

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour Gedch,

Il faut savoir que (presque) tout a été prévu sur Excel 🙂

Voyez ce fichier et la macro :

Code:
Sub Info(Target As Range)
Dim larg1 As Single, larg2 As Single, f As String, Lmax As Single
Application.ScreenUpdating = False
With Target
  larg1 = .ColumnWidth
  .Columns.AutoFit 'ajustement de la colonne
  larg2 = .ColumnWidth
  .ColumnWidth = larg1
  f = .NumberFormat
End With
With MaChose 'nom de la TextBox
  .Visible = larg2 > larg1
  .Value = Format(Target, f)
  .AutoSize = True
  [COLOR="Red"].MultiLine = False
  Lmax = 200 'on définit ici la largeur max de la TextBox
  If .Width > Lmax Then
    .AutoSize = False
    .MultiLine = True
    .Width = Lmax
    .AutoSize = True
  End If[/COLOR]
  .Top = Target.Top
  .Left = Target.Offset(, 1).Left
End With
End Sub

On joue sur les propriétés MultiLine et AutoSize de la TextBox

A+
 

Pièces jointes

Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour job75

Merci pour la réponse

Maintenant c'est parfaitement lisible

J'ai bien trouvé les couleurs, les bordures, Le mode transparent.

Les effets ? (Je ne voit pas de changement ?)

J'ai cherché s'il était possible de paramétrer la zone ou apparaît la bulle
Plutôt à droite que à gauche, dessus au lieu de en-dessous
Voir si il était possible de faire apparaître à partir du milieu, pour avoir en fait la même présentation que une info-bulle

Mais je n'ai rien trouvé, mais peut-être que c'est pas paramétrable

A+
 
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonjour,

L'endroit où apparaît la TextBox est défini par ses propriétés Top et Left.

Essayez en modifiant la macro par :

Code:
.Top = Target.Top + 15 'ou aussi => Target.Top + Target.Height + 3
.Left = Target.Left + 20 'ou aussi => Target.Left + Target.Width / 2

Mais cela gêne un peu pour sélectionner la cellule du dessous.

Modifiez les nombres 15 et 20 pour obtenir ce que vous voulez.

A+
 
Dernière édition:
Re : Aperçu (Genre d'info-bulle) d'une cellule trop large

Bonhour

J'ai modifié avec ces valeurs :

Code:
  .Top = Target.Offset(, 1).Top + Target.Height / 2
  .Left = Target.Offset(, 1).Left - Target.Width / 2

A présent j'ai bien la Textbox en plein centre de la cellule, quelle que soit la hauteur et la largeur.

Merci

A+
 
- 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

Réponses
2
Affichages
1 K
Retour