• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA Userform Textbox kopie naar ListBox regel.

  • Onderwerp starter Onderwerp starter H91
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

H91

Gebruiker
Lid geworden
13 nov 2019
Berichten
5
Goedenavond,

Ik ben nieuw op dit forum.

Met diverse excel functies met ik redelijk bekend, dat krijg ik allemaal aardig voor elkaar.

Enkele weken geleden ben ik wat dingen gaan proberen in VBA, dat lukt aardig, maar ik loop tegen wat dingen aan die niet lukken.

Zoals gezegd heb ik weinig ervaring met VBA, ik zie dus liever een eenvoudige code die ik meerdere keren toe pas dan een korte code vol variabelen, (dat komt hoop ik nog wel :)

Ik ben met een programma bezig waar deelnemers in verschillende klassen toegevoegd kunnen worden, vervolgens wordt de lijst automatisch op klasse gesorteerd. Ik gebruik een random cijfer bij wijze van loting, hier voeg ik een uniek cijfer aan toe om een regel te vinden. Verder kunnen punten ingevuld worden in TextBox5, deze moeten dan in de ListBox gezet worden.

1. Het belangrijkste is dat ik op een eenvoudige manier een TextBox in een bepaalde kolom van een ListBox regel kan zetten. (punten toevoegen) Hierbij wil ik zoeken op de waarde uit TextBox1(deze zijn uniek) in kolomA, in de gevonden rij wil ik in kolom E de waarde uit TextBox5 zetten. Het liefst zou ik dat doen met bijv:
- Cells(Range("A100000").Find.TextBox1. Row, 5) = TextBox5
Ofzoiets. (deze werkt uiteraard niet)

2. Verder wil ik een geselecteerde regel verwijderen, dit moet op en omslachtige manier omdat anders formules uit bepaalde cellen overstuur gaan. Als ik eerst in de geselecteerde regel in kolom E, 100 invul, en vervolgens weer deze rij selecteer en dan verwijder moet het lukken. Ik weet alleen niet hoe zo’n code eruit ziet. (het liefst ook een eenvoudige code ;)

3. Het zou mooi zijn als ik in de ComboBox (huidigeKLASSE) een klasse selecteer dat dan alleen deelnemers in deze klasse in de listbox weergegeven worden, is dat mogelijk?

Verder heb ik nog een paar dingen die ik nog wil aanpassen, maar ik denk als ik voor bovenstaande oplossingen niet te complexe code heb ik deze wel aan kan passen.

Ik hoop dat het verhaal een beetje duidelijk is.

Tips zijn altijd welkom! Tips om de code korter te maken heb ik alleen nog niet zoveel aan ;)

Bij voorbaat dank.

Grt.
 

Bijlagen

Mijn tip; Maak van het hele verhaal een vraag.

Tips om de code korter te maken heb ik alleen nog niet zoveel aan
Dus de gevonden inefficiënte code moet zo blijven?

het liefst ook een eenvoudige code
Deze is vaak complexer om te begrijpen.

Dus wat moet het worden?

Code:
Private Sub UserForm_Initialize()
  HuidigeKLASSE.List = Split("1 2 3 4 5")
End Sub

Jouw Capslock lijkt ook een beetje vast te zitten.:)
 
Bedankt voor je reactie.

Ik zal in de volgende reactie de belangrijkste vraag zo duidelijk mogelijk omschrijven.

Dat stukje over de code heb ik niet heel handig omschreven, de code mag uiteraard korter worden, zoals het voorbeeld dat je geeft werkt super! (en is goed te begrijpen) Het gaat er vooral om dat ik een beetje begrijp hoe de code werkt. Zodat ik het programma kan uitbreiden en eventueel dingen aanpassen.

Capslock heb ik aangezet om het voor mezelf een beetje herkenbaar te maken. ;)
 
De belangrijkste vraag van het hele verhaal:

De bedoeling is dat ik in TextBox5 punten kan invoeren, en vervolgens met de knop PUNTEN TOEVOEVEN de punten worden toegevoegd in de geselecteerde regel in kolom E.

De waarden uit kolom A zijn uniek, deze worden weergegeven in TextBox1, we kunnen dus zoeken in kolom1 naar de waarde van TextBox1. En vervolgens de waarde van TextBox5 toevoegen in kolom E.

Ik zou dat het graag doen met een code die hier op lijkt:

Code:
Cells(Range("A100000").Find.TextBox1. Row, 5) = TextBox5
 
Ik heb de oplossing van bovenstaande vraag inmiddels gevonden:

Code:
For x = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If Range("WEDSTRIJD!A" & x) = TextBox1 Then
Range("WEDSTRIJD!E" & x) = TextBox5
End If
Next x

Volgende vraag is:

Ik wil graag als in bij huidigeKLASSE de klasse selecteer, dat dan in ListBox1 alleen deelnemers uit de geselecteerde klasse weergegeven worden. Kan iemand me daarmee helpen?

PS: ik denk dat mijn bericht in de verkeerde categorie staat, kan ik deze verplaatsen naar VBA??
 

Bijlagen

Het is gelukt, werkt super zo! Bedankt.

Ik zal de tips meenemen. grt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan