Connaitre la colonne courante d'un textbox, cad le nombre de caractere entre le bord gauche et le curseur

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 442 fois - Téléchargée 36 fois

Contenu du snippet

Le titre dit tout. Mais si vous ne savez pas de quoi je parle regardez donc la capture. Inspiré du code de OrionLG

Source / Exemple :


'Afficher le numero de colonne où est le curseur dans Text1

Dim NColonne As Integer
Dim i As Integer
NColonne = 1

'Le problème c'est qu'il fait tout le TextBox jusqu'au curseur et que 
'dès qu'il 'voit un passage à la ligne il revient à 0. Imaginez qu'il y en ait 
'200 et ce code est bon pour la poubelle

For i = 1 To Text1.SelStart 'Il part du début du textbox et va jusqu'au curseur
    NColonne = NColonne + 1 'à chaque caractère il fait plus 1 puisque 
    '1 caractère = 1 colonne
    If Mid(Text1.Text, i, 1) = Chr(10) Then NColonne = 1 'Mais si il passe à 
    'la ligne alors il revient à 0
Next

Conclusion :


Ben voila ce n'est pas grandiose mais ça pourrait vous aider. En fait je me suis inspiré du code de OrionLG qui détectait les lignes. Donc si vous trouvez un truc plus rapide faites-le moi savoir !

A voir également

Ajouter un commentaire Commentaires
Messages postés
48
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
11 juin 2007
1
merci
je n'ai pas besoin spécifiquement de cette fonction, mais elle va me permettre de faire la fonction dont j'ai besoin en me relaiant sur celle ci.
je vais te mettre 9/10 (histoire de pas mettre 10)
Messages postés
319
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
16 février 2009

Salut !

Je n'ai pas très bien compris ta fonction, mais essais de lui faire aller jusqu'au premier saut de ligne. Et si tu arrive au début du fichier tu définit la colone comme 1 !
J'espère que ça pourra t'aider !

@+
Messages postés
24
Date d'inscription
vendredi 22 août 2003
Statut
Membre
Dernière intervention
29 juin 2004

J'ai un problème. Quand je mets

Dim Colonne As Integer
Colonne = TextEdit.SelStart - (InStrRev(TextEdit.Text, vbCrLf, TextEdit.SelStart, vbTextCompare))

A la 1ère ligne, la 1ère colonne est 0 et aux autres elle est 1. Moi j'aimerais l'avoir tout le temps en 1.

J'espère que vous me comprenez.
Messages postés
24
Date d'inscription
vendredi 22 août 2003
Statut
Membre
Dernière intervention
29 juin 2004

Merci. Je vais faire comme ça et remettre le code
Messages postés
319
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
16 février 2009

Salut !

JE pense que si tu part de selstart et que tu remonte jusqu'au dernier saut de ligne, c'est beaucoup plus rapide !

@+
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.