Est-il possible de modifier la couleur du fond ou du texte de l'info-bulle ?
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+
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+
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
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
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+
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
.Top = Target.Top + 15 'ou aussi => Target.Top + Target.Height + 3
.Left = Target.Left + 20 'ou aussi => Target.Left + Target.Width / 2
.Top = Target.Offset(, 1).Top + Target.Height / 2
.Left = Target.Offset(, 1).Left - Target.Width / 2
.Top = Target.Top + Target.Height / 2
.Left = Target.Left + Target.Width / 2