Verkeerde velden

Status
Niet open voor verdere reacties.

JJZijlstra

Gebruiker
Lid geworden
26 nov 2013
Berichten
299
Beste lezer(s),

Bijgevoegd het bestandje. Ik zou graag één van de tekstvelden willen wijzigen, maar er zijn een paar problemen waar ik niet helemaal uit kom.
De selectie loopt in het menu t.o.v. het werkblad niet altijd synchroon en de datum wordt automatisch in een getal gewijzigd, ook als er een ander tekstveld wordt gewijzigd.
Ook wordt een ander tekstveld gewijzigd in plaats van het geselecteerde of afhankelijk waar de 'verkeerde' selectie staat.
Er is iets in de code wat niet helemaal klopt, hoe kan ik dit kloppend krijgen, hierbij uitgaande van mijn eenvoudig gehouden code?
Wat is er fout in mijn code?

Vriendelijke groet,
Johan
 

Bijlagen

Laatst bewerkt:
De boel een beetje opgeschoond.

Volgende -Vorige - format datum - juiste rij - dubbelklik in listbox - lengte van de listbox.
 

Bijlagen

Laatst bewerkt:
Dank je voor het bericht Harry, ik zal je correcties goed bestuderen en als er vragen zijn, hoor je van mij.
In ieder geval werkt het goed.
Vraag: Waarom wordt in de ene cel de maand in getalopmaak genoteerd terwijl in een cel lager de naam van de maand wordt genoemd terwijl de de datumformat in de code dezelfde blijft.

Groet,
Johan
 
Laatst bewerkt:
Probeer het zo eens

Code:
Private Sub CommandButton4_Click()      'Gegevens wijzigen en bevestigen
   Cells(ListBox1.ListIndex + 2, 1).Resize(, 3) = Array(TextBox1, TextBox2, CDate(TextBox3))
 
Hallo VenA,

Dank voor je antwoord. Het bestandje blijft nog steeds op dezelfde manier werken.
Afwisselend in 'getal' en sommige rijen in tekst v.w.b. datum.
Ik heb het liefste één vast format.

Groet,
Johan
 
Laatst bewerkt:
Ik heb ook geen idee welke format je wil zien.
De normale Cdate is de gemakkelijkste versie.
De format zetten lukt niet altijd feilloos.

Voeg een extra regel in (blauwe) om er zeker van te zijn dat het goed gaat.

Code:
Cells(ListBox1.ListIndex + 2, 1).Resize(, 3) = Array(TextBox1, TextBox2, CDate(TextBox3))
[COLOR=#3366ff]   Cells(ListBox1.ListIndex + 2, 3).NumberFormat = "dd mmmm yyyy"[/COLOR]
 
Hallo Harry

Nu gaat het helemaal goed! Het maakt mij niet uit om welke format het gaat, daar kun je uit kiezen.
Hartelijk dank voor je hulp. :)

Groet,
Johan
 
Toch nog even een vraagje. In de volgende regel staat:

Code:
Cells(ListBox1.ListIndex + 2, 1).Resize(, 3) = Array(TextBox1, TextBox2, CDate(TextBox3))

Mijn vraag is hoe ik deze regel moet lezen, waarom staat er een 2 achter ListIndex? Is dit de tweede rij direct onder de kolomtitel ?
En de 1 direct daarna duidt dat op de eerste kolom?

Groet,
Johan
 
Helemaal juist.
Als er niet is geselecteerd in de listbox, is listindex - 1.
de eerste rij geselecteerd = 0

Als de tweede rij geselecteerd is in de listbox de listindex 1 is.

Omgerekend naar cells is dit cells(1,1)
Daar staat je kopregel, en dat is niet waar de gegevens staan.
De tweede rij in listindex = cells(3,1) van je blad, dus listindex+2.

Die ander is inderdaad het nummer van de kolom.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan