Affichage d'un texte en partie invisible en vba

Le
M41
Bonjour

Soit une chaîne de 100 caractères dont on ne veut laisser visibles que les
10 premiers dans une cellule.
J'ai bien trouvé qqs solutions :
- insertion d'un retour à la ligne puis forcer la hauteur des cellules
de la ligne
- justifier en écrivant en blanc et corps de 1 les 90 derniers
caractères

Excel refuse l'écriture en corps 0 (taille de police) qui serait la solution
la plus élégante en VBA. Peut on forcer cette solution ? existe t il
d'autres méthodes ?

Peut on créer une police dont le graphisme est celui de chr(0) ?

Cordialement

M41
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4446971
Bonjour,

A la saisie en colonne A:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Target.Characters(Start:, Length:00).Font.ColorIndex = 2
End If
End Sub

JB

On 14 avr, 18:55, "M41"
Bonjour

Soit une chaîne de 100 caractères dont on ne veut laisser visibles qu e les
10 premiers dans une cellule.
J'ai bien trouvé qqs solutions :
- insertion d'un retour à la ligne puis forcer la hauteur des cellu les
de la ligne
- justifier en écrivant en blanc et corps de 1 les 90 derniers
caractères

Excel refuse l'écriture en corps 0 (taille de police) qui serait la sol ution
la plus élégante en VBA. Peut on forcer cette solution ? existe t il
d'autres méthodes ?

Peut on créer une police dont le graphisme est celui de chr(0) ?

Cordialement

M41


garnote
Le #4446961
Bonjour M41,

Quelque chose du genre, peut-être :

Sub Invisible()
[A1].Characters(Start:, Length:).Font.ColorIndex = 2
End Sub

Serge


"M41"
Bonjour

Soit une chaîne de 100 caractères dont on ne veut laisser visibles que les 10 premiers dans une cellule.
J'ai bien trouvé qqs solutions :
- insertion d'un retour à la ligne puis forcer la hauteur des cellules de la ligne
- justifier en écrivant en blanc et corps de 1 les 90 derniers caractères

Excel refuse l'écriture en corps 0 (taille de police) qui serait la solution la plus élégante en VBA. Peut on forcer cette
solution ? existe t il d'autres méthodes ?

Peut on créer une police dont le graphisme est celui de chr(0) ?

Cordialement

M41




M41
Le #4446901
Re

Merci
mais cette solution déborde sur les colonnes voisines
problème si les fonds de cellules sont colorés
une justification ajoutée rend le début illisible

Je l'ai aussi testée avec les 2 autres méthodes décrites

Cordialement

M41




"garnote"
Bonjour M41,

Quelque chose du genre, peut-être :

Sub Invisible()
[A1].Characters(Start:, Length:).Font.ColorIndex = 2
End Sub

Serge


"M41" 46210738$0$27381$
Bonjour

Soit une chaîne de 100 caractères dont on ne veut laisser visibles que
les 10 premiers dans une cellule.
J'ai bien trouvé qqs solutions :
- insertion d'un retour à la ligne puis forcer la hauteur des cellules
de la ligne
- justifier en écrivant en blanc et corps de 1 les 90 derniers
caractères

Excel refuse l'écriture en corps 0 (taille de police) qui serait la
solution la plus élégante en VBA. Peut on forcer cette solution ? existe
t il d'autres méthodes ?

Peut on créer une police dont le graphisme est celui de chr(0) ?

Cordialement

M41








garnote
Le #4446681
Alors peut-être ceci :

Sub Les_10_Premiers_Visibles_Les_90_Derniers_Invisibles()
Dim i As Integer
Dim rep As String
With [a1]
.WrapText = True
.Characters(Start:, Length:).Font.ColorIndex = .Interior.ColorIndex
For i = 1 To 56
.Characters(Start:=1, Length:).Font.ColorIndex = i
rep = MsgBox("Quand vous êtes satisfait de la couleur" & vbNewLine _
& "des dix premiers caractères, cliquez sur Oui.", vbYesNo)
If rep = vbYes Then Exit Sub
Next i
End With
End Sub

Serge






"M41"
Re

Merci
mais cette solution déborde sur les colonnes voisines
problème si les fonds de cellules sont colorés
une justification ajoutée rend le début illisible

Je l'ai aussi testée avec les 2 autres méthodes décrites

Cordialement

M41




"garnote"
Bonjour M41,

Quelque chose du genre, peut-être :

Sub Invisible()
[A1].Characters(Start:, Length:).Font.ColorIndex = 2
End Sub

Serge


"M41"
Bonjour

Soit une chaîne de 100 caractères dont on ne veut laisser visibles que les 10 premiers dans une cellule.
J'ai bien trouvé qqs solutions :
- insertion d'un retour à la ligne puis forcer la hauteur des cellules de la ligne
- justifier en écrivant en blanc et corps de 1 les 90 derniers caractères

Excel refuse l'écriture en corps 0 (taille de police) qui serait la solution la plus élégante en VBA. Peut on forcer cette
solution ? existe t il d'autres méthodes ?

Peut on créer une police dont le graphisme est celui de chr(0) ?

Cordialement

M41












garnote
Le #4446661
ou un tipeu mieux :

Sub Les_10_Premiers_Visibles_Les_90_Derniers_Invisibles()
Dim i As Integer
Dim rep As String
With [a1]
.WrapText = True
.Characters(Start:, Length:).Font.ColorIndex = .Interior.ColorIndex
For i = 1 To 56
If i <> .Interior.ColorIndex Then
.Characters(Start:=1, Length:).Font.ColorIndex = i
rep = MsgBox("Quand vous êtes satisfait de la couleur" & vbNewLine _
& "des dix premiers caractères, cliquez sur Oui.", vbYesNo)
If rep = vbYes Then Exit Sub
End If
Next i
End With
End Sub

Serge



"garnote"
Alors peut-être ceci :

Sub Les_10_Premiers_Visibles_Les_90_Derniers_Invisibles()
Dim i As Integer
Dim rep As String
With [a1]
.WrapText = True
.Characters(Start:, Length:).Font.ColorIndex = .Interior.ColorIndex
For i = 1 To 56
.Characters(Start:=1, Length:).Font.ColorIndex = i
rep = MsgBox("Quand vous êtes satisfait de la couleur" & vbNewLine _
& "des dix premiers caractères, cliquez sur Oui.", vbYesNo)
If rep = vbYes Then Exit Sub
Next i
End With
End Sub

Serge






"M41"
Re

Merci
mais cette solution déborde sur les colonnes voisines
problème si les fonds de cellules sont colorés
une justification ajoutée rend le début illisible

Je l'ai aussi testée avec les 2 autres méthodes décrites

Cordialement

M41




"garnote"
Bonjour M41,

Quelque chose du genre, peut-être :

Sub Invisible()
[A1].Characters(Start:, Length:).Font.ColorIndex = 2
End Sub

Serge


"M41"
Bonjour

Soit une chaîne de 100 caractères dont on ne veut laisser visibles que les 10 premiers dans une cellule.
J'ai bien trouvé qqs solutions :
- insertion d'un retour à la ligne puis forcer la hauteur des cellules de la ligne
- justifier en écrivant en blanc et corps de 1 les 90 derniers caractères

Excel refuse l'écriture en corps 0 (taille de police) qui serait la solution la plus élégante en VBA. Peut on forcer cette
solution ? existe t il d'autres méthodes ?

Peut on créer une police dont le graphisme est celui de chr(0) ?

Cordialement

M41
















garnote
Le #4446631
Ave M41,

Je n'avais pas tenu compte du cas ou il n'y a aucun remplissage
et j'ai choisi deux couleurs de caractères (blanc ou noir) selon la
couleur de fond de la cellule (tu peux modifier mon choix).
Ça donne ceci :

Sub Les_10_Premiers_Visibles_Les_90_Derniers_Invisibles()
Dim i As Integer
Dim rep As String
With [a1]
.WrapText = True
If .Interior.ColorIndex = xlNone Then
.Characters(Start:=1, Length:).Font.ColorIndex = 1
.Characters(Start:, Length:).Font.ColorIndex = 2
Exit Sub
End If
.Characters(Start:, Length:).Font.ColorIndex = .Interior.ColorIndex
Select Case .Interior.ColorIndex
Case 2, 4, 6, 8, 15, 19, 20, 24, 27, 28, 33, 34, 35, 36, 37
.Characters(Start:=1, Length:).Font.ColorIndex = 1
Case Else
.Characters(Start:=1, Length:).Font.ColorIndex = 2
End Select
End With
End Sub

Cela te convient-il ?

À cette heure-ci, au Québec, il est temps d'aller faire dodo.
J'ai bien aimé mon vino uruguayen, le Don Pascual, Tannat 2005 ;-)
Allez Hic, au pieu !

Serge


















"garnote"
ou un tipeu mieux :

Sub Les_10_Premiers_Visibles_Les_90_Derniers_Invisibles()
Dim i As Integer
Dim rep As String
With [a1]
.WrapText = True
.Characters(Start:, Length:).Font.ColorIndex = .Interior.ColorIndex
For i = 1 To 56
If i <> .Interior.ColorIndex Then
.Characters(Start:=1, Length:).Font.ColorIndex = i
rep = MsgBox("Quand vous êtes satisfait de la couleur" & vbNewLine _
& "des dix premiers caractères, cliquez sur Oui.", vbYesNo)
If rep = vbYes Then Exit Sub
End If
Next i
End With
End Sub

Serge



"garnote"
Alors peut-être ceci :

Sub Les_10_Premiers_Visibles_Les_90_Derniers_Invisibles()
Dim i As Integer
Dim rep As String
With [a1]
.WrapText = True
.Characters(Start:, Length:).Font.ColorIndex = .Interior.ColorIndex
For i = 1 To 56
.Characters(Start:=1, Length:).Font.ColorIndex = i
rep = MsgBox("Quand vous êtes satisfait de la couleur" & vbNewLine _
& "des dix premiers caractères, cliquez sur Oui.", vbYesNo)
If rep = vbYes Then Exit Sub
Next i
End With
End Sub

Serge






"M41"
Re

Merci
mais cette solution déborde sur les colonnes voisines
problème si les fonds de cellules sont colorés
une justification ajoutée rend le début illisible

Je l'ai aussi testée avec les 2 autres méthodes décrites

Cordialement

M41




"garnote"
Bonjour M41,

Quelque chose du genre, peut-être :

Sub Invisible()
[A1].Characters(Start:, Length:).Font.ColorIndex = 2
End Sub

Serge


"M41"
Bonjour

Soit une chaîne de 100 caractères dont on ne veut laisser visibles que les 10 premiers dans une cellule.
J'ai bien trouvé qqs solutions :
- insertion d'un retour à la ligne puis forcer la hauteur des cellules de la ligne
- justifier en écrivant en blanc et corps de 1 les 90 derniers caractères

Excel refuse l'écriture en corps 0 (taille de police) qui serait la solution la plus élégante en VBA. Peut on forcer cette
solution ? existe t il d'autres méthodes ?

Peut on créer une police dont le graphisme est celui de chr(0) ?

Cordialement

M41




















Publicité
Poster une réponse
Anonyme