Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Tellen aantal regels in een veld TextBox1  (gelezen 6625 keer)

0 leden en 1 gast bekijken dit topic.

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Tellen aantal regels in een veld TextBox1
« Gepost op: 24 januari 2007, 11:31:04 »
Ik heb een formulier met daarop een veld TextBox1 dmv de functie len(TextBox1) kan ik het aantal tekens bepalen in deze TextBox1.

De eigenshap Multiline heb ik op True staan zodat ik ook meerdere lijnen kan invoegen in deze TextBox1

Mijn vraag is nu ik via vba kan achterhalen hoeveel lijnen er zitten in TextBox1.
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tellen aantal regels in een veld TextBox1
« Reactie #1 Gepost op: 24 januari 2007, 23:36:34 »
Cladon, ik heb je situatie ff nagemaakt in een sheet (zie attachment). In het form heb ik extra textboxen gemaakt om het volgende te kunnen tonen:
  • hoeveel characters er ingetikt zijn (inclusief de spaties, want dat is óók een character)
  • wat de ASCII waarde is van het laatst ingetikte character
  • en als geintje: wat de binaire waarde is van het laatst ingetikte character (volkomen nutteloos, maar wél leuk! ;D ;D ;D ;))
  • het geschatte aantal regels...

Ik hoopte met het bepalen van het aantal characters per 'line' te berekenen om hoeveel 'lines' het gaat. De grap is dat een 'line' in een multi line textbox gewoon uit 1 regel bestaat! :o Welliswaar 1 die bij het bereiken van de rechter TextBox-rand doorgaat op een volgende (voor ons zichtbare) regel, maar voor de computer is het echt 1 eindeloos doorgaande zin! ;)

De reden dat ik die ASCII textbox er bij maakte, was om te zien of er soms een LineFeed (10) of CarriageReturn (13) character werd ingevoegd... Nee dus!!!!

Ik ben dus bang dat het tellen van het aantal 'lines' niet zal lukken.... :'(
OF je moet genoegen nemen met een redelijk (goede?) schatting. Als je mijn voorbeeld neemt, heb je de mogelijkheid om 33 kleine letters of 28 hoofdletters op 1 line te  tikken. Je zou dan dus kunnen zeggen: len(TextBox1)/30 = het aantal regels.... (maar het blijft een schatting met alle fouten vandien! Bijvoorbeeld als een woord te lang is voor de regel, zal dat woord doorgezet worden naar de volgende... Dan gaat je telling en deling dus volkomen de mist in! :()

Blijft dus mijn vraag: Waarom moet je het aantal 'lines' weten dat er gebruikt is????  ???

Groet, Leo
______________________________

Groet, Leo

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re: Tellen aantal regels in een veld TextBox1
« Reactie #2 Gepost op: 25 januari 2007, 10:47:20 »
Ik ben aan het werken aan een rapporteringstool in excel. Mijn collega's (leerkrachten) rapporteren heel uitbundig (lees te veel). Rond bepaalde onderdelen moet zij een verslag uitbrengen. Ik beperk het aantal tekens al maar wil ook het aantal regels beperken.

Waarom de beperking op het aantal regels? -> Alles moet ook komen te staan op een rapport wat kan worden afgedrukt. Om het aantal pagina's te beperken beperk ik op het aantal tekens wat ze kunnen inbrengen En op een maximaal aantal regels.

DOEL = De leerkrachten te verplichten om te komen tot de essentie in een verslag.

Deze avond ga ik je voorbeeld eens bestuderen.

Op het internet https://www.devx.com/vb2themax/Tip/18380 heb ik de volgende code gevonden

Private Sub CommandButton1_Click()
    Dim myParas As Variant
    myParas = Split(TextBox1, vbNewLine)
    MsgBox UBound(myParas) + 1

End Sub

en

Private Declare Function SendMessageAsLong Lib "user32" _
     Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
     ByVal wParam As Long, ByVal lParam As Long) As Long
Const EM_GETLINECOUNT = 186

    Dim lCount As Long
    lCount = SendMessageAsLong(TextBox1, EM_GETLINECOUNT, 0, 0)
    MsgBox lCount

 

Het tweede voorbeeldje is me momenteel nog wat onduidelijk.
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline Firebirdy

  • Ambassadeur
  • *****
  • Berichten: 2.408
  • Geslacht: Man
Re: Tellen aantal regels in een veld TextBox1
« Reactie #3 Gepost op: 25 januari 2007, 11:35:14 »
Beide zullen waarschijnlijk werken :). Het eerste split en telt zoals er staat op newlines (dat is \r\n in Windoze), het tweede spreekt de windows API aan om het aantal lijnen op te vragen. 'k Vind het vreemd dat je met het bekijken van de ASCII codes geen newlines tegengekomen bent :s.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tellen aantal regels in een veld TextBox1
« Reactie #4 Gepost op: 25 januari 2007, 19:58:00 »
Cladon, mooie stukjes code... De 1e kan ik nog wel volgen, de 2e niet echt.
Ik heb de 1e dan ook met een button in mijn sheet gevoegd (zie attachment).

Firebirdy, de reden dat...
Citaat
'k Vind het vreemd dat je met het bekijken van de ASCII codes geen newlines tegengekomen bent
...komt omdat de regel in een textbox ECHT maar uit 1 zin bestaat! Je hebt géén mogelijkheid om een enter oid te geven. Daarmee zou je volgens mij een NewLine creeeren.
Binnen Access ken je volgens mij de mogelijkheid van een Memo veld. Deze kan je bewerken alsof het een Worddocument was (uiteraard zonder opmaak). Dus dat je daar NewLines in vindt, lijkt me begrijpelijk.

Maar hopelijk voor Cladon zit ik er met mijn beweringen VRESELIJK naast!   ;) ;D

Groet, Leo
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tellen aantal regels in een veld TextBox1
« Reactie #5 Gepost op: 27 januari 2007, 13:14:01 »
Cladon, Het leed is geleden!  ;D  Ik heb de oplossing gewoon nog wel uit de helpfile van VBA zelf gehaald.... (kijk bij 'KeyUp KeyDown events / example) Het object TextBox kent de eigenschap CurLine.
Als jouw invoer TextBox 'TextBox1' heet, zou je het volgende kunnen opgeven:Dim iAantalRegels as Integer
iAantalRegels = TextBox1.Curline + 1
Dit uiteraard wel in het door mij voorgestelde KeyUp event...

Ik hoop dat je nu weer verder kunt met je project en je collega's zo kunt dwingen om wat korter van stof te zijn...   ;) ;D ;D ;D

Groet, Leo
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tellen aantal regels in een veld TextBox1
« Reactie #6 Gepost op: 27 januari 2007, 14:24:01 »
Cladon, Het nadeel van die eigenschap is dat er werkelijk wordt gekeken naar de cursor. Als een collega van je besluit om de cursor een paar regels hoger te zetten, heb je ineens een stuk minder 'Lines'.
Dit heb ik ondervangen met een if-statement bij TextBox5. Kijk maar ff in het attachment.
(let trouwens maar niet op de regels die in de worksheet getoond worden na het sluiten van het UserForm1. Dit is wat spelerij van mij om te kijken of ik wat regeltjes machinetaal zou kunnen genereren. Dit gaat voor een deel goed, maar óók een deel niet (ik ontleed namelijk de hele tijd TextBox1 en dat is in dat geval niet juist!)).

Groet, Leo
______________________________

Groet, Leo

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re: Tellen aantal regels in een veld TextBox1
« Reactie #7 Gepost op: 27 januari 2007, 14:36:36 »
Bedankt Leo - ik kijk er eens naar in de loop van deze dag.
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tellen aantal regels in een veld TextBox1
« Reactie #8 Gepost op: 28 januari 2007, 12:08:59 »
Cladon, en om het leven nog simpeler te maken heeft Microsoft voor een TextBox de eigenschap LineCount ontwikkeld... :o ;)

Dan hoef je niet eens mijn voorgestelde if statement door te ploeteren en kan je gewoon met je sluitknop (als je die hebt in je form) op dat moment je telling van het aantal regels laten doen en eventueel afvangen als je het te lang vindt...

O ja, voor het geval dat je het volgende nog niet wist, dit kwam ik nog tegen met zoeken. 'Om in een textbox naar een echte volgende regel te gaan, druk je shift en enter tegelijk in.' Dit kan handig zijn voor de opmaak. Hou er wel rekening mee dat er dan aan het regeleinde bij het opslaan een vierkantje getoont wordt...

Tja, soms is moeilijk denken heeeeel leerzaam, maar misschien niet zo slim! (ik praat hier over mezelf!) ;D ;D
Maar ik moet je zeggen... IK ben er weer een stuk wijzer door geworden. 8)

Groet, Leo
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Tellen aantal regels in een veld TextBox1
« Reactie #9 Gepost op: 05 februari 2007, 08:49:22 »
...en dan kan je dit...
Citaat
Hou er wel rekening mee dat er dan aan het regeleinde bij het opslaan een vierkantje getoont wordt...
...nog ondervangen door je celopmaak op Wrap Text (terugloop tekst) te zetten. Het vierkantje (Char(10)) doet dan wat tie moet doen. Namelijk een nieuwe regel beginnen! ;)

Groet, Leo
______________________________

Groet, Leo

Offline cladon

  • Volledig lid
  • **
  • Berichten: 246
  • Geslacht: Man
Re: Tellen aantal regels in een veld TextBox1
« Reactie #10 Gepost op: 08 februari 2007, 22:50:31 »
Bedankt Leo
Windows 10 Home   NLD 64bit,
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3401
P8B75-M LE
Intel(R) HD Graphics 4000 3072MB 1920 x 1080
VIA HD Audio
C:\ NTFS 237,25GB 135,35GB 15 293MB
AV: Kaspersky
FW: Windows 10

 


www.combell.com