OVH Cloud OVH Cloud

Position d'un caractère après des espaces dans une cellule

7 réponses
Avatar
Gaston
Bonjour tout le monde,
Voici mon défi:
J'ai plusieurs cellules débutant par des espaces, le nombre d'espace est
variable.
Je ne veux pas supprimer les espaces.
Je veux mettre le premier caractère après les espaces en bleu.
Je sais que ça se fait avec une boucle, mais je veux le faire en 1 écriture.
J'ai essayé:
no = Instr(1,Selection,<>" ") 'No du caractère différent de vide
no = Instr(1,Selection, >chr(42)) 'No du caractère plus grand que l'espace.
Tout ça ne fonctionne pas.
Est-ce que la solution existe ou je me creuse la tête pour rien?
Merci à l'avance
Gaston

7 réponses

Avatar
Gaston
"Gaston" wrote:

Bonjour tout le monde,
Voici mon défi:
J'ai plusieurs cellules débutant par des espaces, le nombre d'espace est
variable.
Je ne veux pas supprimer les espaces.
Je veux savoir le no du premier caractère.
Je sais que ça se fait avec une boucle, mais je veux le faire en 1 écriture.
J'ai essayé:
no = Instr(1,Selection,<>" ") 'No du caractère différent de vide
no = Instr(1,Selection, >chr(42)) 'No du caractère plus grand que l'espace.
Tout ça ne fonctionne pas.
Est-ce que la solution existe ou je me creuse la tête pour rien?
Merci à l'avance
Gaston


Avatar
Garette
Bonjour,

Sans boucle je ne vois pas mais avec, je propose :

Sub test()
i = 1
If ActiveCell.Characters(i, 1).Text = " " Then
While ActiveCell.Characters(i, 1).Text = " "
i = i + 1
Wend
ActiveCell.Characters(i, 1).Font.FontStyle = "Gras"
End If
End Sub
Avatar
MichDenis
Tu adaptes la plage de cellules :

'----------------------------
Sub test()
Dim Pos As Integer, C As Range
For Each C In Range("A1:A10")
With C
Pos = Len(.Text) - Len(LTrim(.Text)) + 1
.Characters(Pos, 1).Font.Color = vbBlue
'.Characters(Pos, 1).Font.Bold = True
End With
Next
End Sub
'----------------------------


"Gaston" a écrit dans le message de news:

Bonjour tout le monde,
Voici mon défi:
J'ai plusieurs cellules débutant par des espaces, le nombre d'espace est
variable.
Je ne veux pas supprimer les espaces.
Je veux mettre le premier caractère après les espaces en bleu.
Je sais que ça se fait avec une boucle, mais je veux le faire en 1 écriture.
J'ai essayé:
no = Instr(1,Selection,<>" ") 'No du caractère différent de vide
no = Instr(1,Selection, >chr(42)) 'No du caractère plus grand que l'espace.
Tout ça ne fonctionne pas.
Est-ce que la solution existe ou je me creuse la tête pour rien?
Merci à l'avance
Gaston
Avatar
Gaston
Je veux juste savoir le no du premier caractère en une écriture. Je le
mettrai en bleu plus tard.
Merci

"Gaston" wrote:

Bonjour tout le monde,
Voici mon défi:
J'ai plusieurs cellules débutant par des espaces, le nombre d'espace est
variable.
Je ne veux pas supprimer les espaces.
Je veux mettre le premier caractère après les espaces en bleu.
Je sais que ça se fait avec une boucle, mais je veux le faire en 1 écriture.
J'ai essayé:
no = Instr(1,Selection,<>" ") 'No du caractère différent de vide
no = Instr(1,Selection, >chr(42)) 'No du caractère plus grand que l'espace.
Tout ça ne fonctionne pas.
Est-ce que la solution existe ou je me creuse la tête pour rien?
Merci à l'avance
Gaston


Avatar
MichDenis
La variable Pos de la procédure soumise te donne la position du caractère


"Gaston" a écrit dans le message de news:

Je veux juste savoir le no du premier caractère en une écriture. Je le
mettrai en bleu plus tard.
Merci

"Gaston" wrote:

Bonjour tout le monde,
Voici mon défi:
J'ai plusieurs cellules débutant par des espaces, le nombre d'espace est
variable.
Je ne veux pas supprimer les espaces.
Je veux mettre le premier caractère après les espaces en bleu.
Je sais que ça se fait avec une boucle, mais je veux le faire en 1 écriture.
J'ai essayé:
no = Instr(1,Selection,<>" ") 'No du caractère différent de vide
no = Instr(1,Selection, >chr(42)) 'No du caractère plus grand que l'espace.
Tout ça ne fonctionne pas.
Est-ce que la solution existe ou je me creuse la tête pour rien?
Merci à l'avance
Gaston


Avatar
Garette
Idem, "i" renvoit la position du caractere apres le dernier espace.
Avatar
Gaston
Oui, MichDenis cette ligne là répond à ma question
Merci
Gaston

"MichDenis" wrote:

La variable Pos de la procédure soumise te donne la position du caractère


"Gaston" a écrit dans le message de news:

Je veux juste savoir le no du premier caractère en une écriture. Je le
mettrai en bleu plus tard.
Merci

"Gaston" wrote:

Bonjour tout le monde,
Voici mon défi:
J'ai plusieurs cellules débutant par des espaces, le nombre d'espace est
variable.
Je ne veux pas supprimer les espaces.
Je veux mettre le premier caractère après les espaces en bleu.
Je sais que ça se fait avec une boucle, mais je veux le faire en 1 écriture.
J'ai essayé:
no = Instr(1,Selection,<>" ") 'No du caractère différent de vide
no = Instr(1,Selection, >chr(42)) 'No du caractère plus grand que l'espace.
Tout ça ne fonctionne pas.
Est-ce que la solution existe ou je me creuse la tête pour rien?
Merci à l'avance
Gaston