Syntaxe pour un code (LEN)
duduleray
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonsoir a tous, forum bonsoir,
<config>Windows / Edge 81.0.416.64</Excel 2007>
J'aimerai svp savoir la syntaxe pour connaitre la longueur d'un texte, voir svp ci-dessous les codes en REM qui ne fonctionnent pas avec explications.
Bonne soirée a tous et merci de votre aide.
Cdlt
<config>Windows / Edge 81.0.416.64</Excel 2007>
J'aimerai svp savoir la syntaxe pour connaitre la longueur d'un texte, voir svp ci-dessous les codes en REM qui ne fonctionnent pas avec explications.
Bonne soirée a tous et merci de votre aide.
Cdlt
Sub Mess_01() Dim Lt ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 750, 100, 200, 50).Name = "monshape" With ActiveSheet.Shapes("monshape") .TextFrame.Characters.Font.Size = 12 .TextFrame.Characters.Text = "Cellules et colonnes inaccessibles" '*** Message 34 lettres ' Lt = Len(.Text) '>>> j'aimerai connaitre automatiquement la longueur du message ' MsgBox Lt '>>> afficher le résultat ' .TextFrame.Characters(1, Len(Lt)).Font.ColorIndex = 3 '>>> mettre le bon code dans .Characters(1, Len(Lt)) .Fill.ForeColor.RGB = RGB(255, 255, 0) End With End Sub
A voir également:
- Syntaxe pour un code (LEN)
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
3 réponses
Bonjour,
C'est normal que ça ne fonctionne pas : un shape n'a pas de propriété .text
Pour faciliter la saisie du code il est préférable de définir une variable pour manipuler un objet, tu bénéficie alors de l'intellisense (i.e. l'autocomplétion du langage) :
C'est normal que ça ne fonctionne pas : un shape n'a pas de propriété .text
Pour faciliter la saisie du code il est préférable de définir une variable pour manipuler un objet, tu bénéficie alors de l'intellisense (i.e. l'autocomplétion du langage) :
Sub Mess_01() Dim Lt As Long Dim shp As Shape Set shp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 750, 100, 200, 50) With shp .Name = "monshape" With .TextFrame With .Characters .Font.Size = 12 .Text = "Cellules et colonnes inaccessibles" Lt = Len(.Text) MsgBox Lt End With .Characters(9, Lt - 9 - 13).Font.ColorIndex = 3 ' et colonnes et rouge End With .Fill.ForeColor.RGB = RGB(255, 255, 0) End With End Sub
Bonsoir Patrice33740,
Merci pour ta réponse,
ça fonctionne bien, j'ai chercher un bon moment, mais hélas pas trouver malgré des recherches sur le net.
Merci pour le découpage
j'ai modifier ainsi pour mon besoin
et pour la sélection With c'est plus clair et plus court pour certains codes.
Première partie faites pour moi, en fait c'est pour faire la main car je cherche a utiliser qu'un seul shape pour afficher plusieurs messages d'erreur et éviter le répètitif.
Avec quelques couleurs de textes, gras, police, hauteur texte, etc etc
Merci a toi et bonne soirée, bye bye
bien cdlt
Merci pour ta réponse,
ça fonctionne bien, j'ai chercher un bon moment, mais hélas pas trouver malgré des recherches sur le net.
Merci pour le découpage
.Characters(9, Lt - 9 - 13)
j'ai modifier ainsi pour mon besoin
.Characters(1, Lt )
et pour la sélection With c'est plus clair et plus court pour certains codes.
Première partie faites pour moi, en fait c'est pour faire la main car je cherche a utiliser qu'un seul shape pour afficher plusieurs messages d'erreur et éviter le répètitif.
Avec quelques couleurs de textes, gras, police, hauteur texte, etc etc
Merci a toi et bonne soirée, bye bye
bien cdlt
RE,
Si je ai écrit (volontairement) :
c'est pour que tu voies comment on peut colorer une partie du texte !
Lt étant la longueur du texte, quand tu écris :
ça colore tout le texte, mais pour colorer tout le texte, il est inutile de préciser le début et la longueur, il suffit d'écrire :
Si je ai écrit (volontairement) :
.Characters(9, Lt - 9 - 13).Font.ColorIndex = 3
c'est pour que tu voies comment on peut colorer une partie du texte !
Lt étant la longueur du texte, quand tu écris :
.Characters(1, Lt).Font.ColorIndex = 3
ça colore tout le texte, mais pour colorer tout le texte, il est inutile de préciser le début et la longueur, il suffit d'écrire :
.Characters.Font.ColorIndex = 3
Salut Patrice33470
Une question, si tu veux bien, est t'il possible d'attribuer une couleur par ligne comme indiquer ci dessous pour exemple.
Cette partie de code est bonne de chaque ligne --- Mess(1) = "DECOMPTE": Pause = 6 ---
Merci pour ton aide, bonne après midi.
Cdlt
Une question, si tu veux bien, est t'il possible d'attribuer une couleur par ligne comme indiquer ci dessous pour exemple.
Cette partie de code est bonne de chaque ligne --- Mess(1) = "DECOMPTE": Pause = 6 ---
Merci pour ton aide, bonne après midi.
Cdlt
Mess(1) = "DECOMPTE": Pause = 6 '<< .Colorindex= 3 Mess(2) = "Deux nombres sont interdits": Pause = 6 '<< .Colorindex= 4 Mess(3) = "Les lettres interdites": Pause = 4 '<< .Colorindex= 5 Mess(4) = "Cellules et colonnes inaccessibles": Pause = 5 '<< .Colorindex= 7
Salut Patrice,
Désolé, j'aurai pu te mettre le code entier.
Le but : Une question, si tu veux bien, est t'il possible d'attribuer une couleur par ligne comme indiquer ci dessous pour exemple.
Cette partie de code est bonne de chaque ligne --- Mess(1) = "DECOMPTE": Pause = 6 ---
Merci pour ton aide, bonne soirée.
Cdlt
Désolé, j'aurai pu te mettre le code entier.
Le but : Une question, si tu veux bien, est t'il possible d'attribuer une couleur par ligne comme indiquer ci dessous pour exemple.
Cette partie de code est bonne de chaque ligne --- Mess(1) = "DECOMPTE": Pause = 6 ---
Merci pour ton aide, bonne soirée.
Cdlt
Mess(1) = "DECOMPTE": Pause = 6 '<< .Colorindex= 3 Mess(2) = "Deux nombres sont interdits": Pause = 6 '<< .Colorindex= 4 Mess(3) = "Les lettres interdites": Pause = 4 '<< .Colorindex= 5 Mess(4) = "Cellules et colonnes inaccessibles": Pause = 5 '<< .Colorindex= 7
Public Tps, Krono, Start, Pause, Mg As Byte: Public Shp As Shape Public Mess(1 To 4) As String Sub Affiche_Message() Mess(1) = "DECOMPTE": Pause = 6 Mess(2) = "Deux nombres sont interdits": Pause = 6 Mess(3) = "Les lettres interdites": Pause = 4 Mess(4) = "Cellules et colonnes inaccessibles": Pause = 5 '*** ### Zone_Affichage_Information ### Set Shp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 750, 110, 200, 65): Shp.Select '<< Shape Information rectangulaire With Selection Shp.TextFrame.Characters.Text = Mess(4) .Name = "Information" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Interior.ColorIndex = 24 '<< Violet clair .Font.Name = "Arial" .Font.ColorIndex = 1 .Font.Size = 14 .Font.Bold = True End With '*** ### Zone_Affichage_Décompte_Chrono ### Set Shp = ActiveSheet.Shapes.AddShape(msoTextOrientationHorizontal, 750, 180, 200, 80): Shp.Select '<< Shape Chrono rectangulaire With Selection .Name = "Chrono" .HorizontalAlignment = xlCenter '<-- Texte centré horizontalement .VerticalAlignment = xlCenter '<-- Texte centré verticalement .Interior.ColorIndex = 24 '<-- Couleur de fond interior .Font.Name = "Arial" '<-- Police de caractères .Font.ColorIndex = 3 '<-- Couleur du texte Font .Font.Size = 16 '<-- Taille police des caractères .Font.Bold = True '<-- Style gras End With Range("A2").Activate '<-- Quitter la sélection de la zone de texte '*** ### Zone_Décompte_Krono ### Tps = Now: Start = Timer: Pause = Pause '<-- Définit la pause Do While Timer < Start + Pause DoEvents Krono = Pause - Second(Now - Tps) Shp.TextFrame.Characters.Text = Mess(1) & Chr(10) & "00:0" & Krono '<-- Message et Chrono Loop ActiveSheet.Shapes.Range(Array("Information", "Chrono")).Delete '<-- Efface "Chrono" End Sub