• 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.

Opslaan in de verkeerde rij

Status
Niet open voor verdere reacties.

selsmakke

Gebruiker
Lid geworden
19 mei 2015
Berichten
11
Hallo

Ik worstel al de hele avond met het volgende: Op een formulier heb ik een combobox waarmee je een bepaald gerecht kunt selecteren (hij selecteert een nummer, corresponderend met het gerecht: gerecht 1 heeft nummer 1; gerecht 2 heeft nummer 2 enz.). Je kan per gerecht een aantal opties kiezen die hij verwerkt in een textbox (waarde). Met de knop "Opslaan" moet hij de waardes opslaan, op de rij corresponderend aan het gerecht (nummer).
Dit doet hij, echter een regel te hoog: gegevens voor gerecht 4 zet hij bij gerecht 3.

Dit gebeurd middels deze code:

Code:
Private Sub CommandButtonopslaan_Click()
With ComboBoxsoep
        If .Value <> "" Then
            Cells(Application.Match(Val(.Value), Range("EA2:EA" & .ListCount), 1), 133).Resize(, 14) = _
            Array(TextBoxa1.Value, TextBoxa2.Value, TextBoxa3.Value, TextBoxa4.Value, TextBoxa5.Value, TextBoxa6.Value, TextBoxa7.Value, TextBoxa8.Value, TextBoxa9.Value, TextBoxa10.Value, TextBoxa11.Value, TextBoxa12.Value, TextBoxa13.Value, TextBoxa14.Value)
             
        TextBoxa1.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 3, False)
        TextBoxa2.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 4, False)
        TextBoxa3.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 5, False)
        TextBoxa4.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 6, False)
        TextBoxa5.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 7, False)
        TextBoxa6.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 8, False)
        TextBoxa7.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 9, False)
        TextBoxa8.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 10, False)
        TextBoxa9.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 11, False)
        TextBoxa10.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 12, False)
        TextBoxa11.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 13, False)
        TextBoxa12.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 14, False)
        TextBoxa13.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 15, False)
        TextBoxa14.Value = Application.VLookup(Val(.Value), Range("EA2:EZ" & .ListCount), 16, False)
                        
        End If
               
        End With
        
End Sub

Hoe kan ik ervoor zorgen dat hij de juiste regel pakt?

Ik snap dat een voorbeeldbestandje handiger is, maar misschien zie ik iets simpels over het hoofd?
Deze code gebruik ik in meerdere formulieren (in hetzelfde bestand) en daar werkt het goed. Het enigste wat anders is aan deze opzet, is dat er niet vanaf kolom 1 geteld wordt maar vanaf kolom 130 (en vanaf kolom 133 wordt opgeslagen).

Ik hoop dat jullie hiermee kunnen helpen...

FokkeB
 
Zo op eerste zicht zou ik deze
Code:
Cells(Application.Match(Val(.Value), Range("EA2:EA" & .ListCount), 1), 133).Resize(, 14)

vervangen door
Code:
Cells(Application.Match(Val(.Value), Range("EA2:EA" & .ListCount), 0), 133).Resize(, 14)


mvg
Leo
 
Bedankt Leo

Helaas maakt het niets uit, hij blijft steeds een rij hoger veranderen... Heb nog andere waardes geprobeerd (-1 en 2) maar geen verandering. Ook heb ik de telling aangepast en de telling in rij 1 toegevoegd, maar ook dat werkt niet.

Ik heb in de gauwigheid een testbestandje gemaakt, waarbij het probleem zich ook voordoet. Niet alle knoppen op het formulier doen het, maar dat maakt voor het oplossen van dit vraagstuk niets uit.

Op de groen knop klikken opent het formulier zich. In de bovenste combobox selecteer je Vlees/visgerechten en daarna kun je in de 2e combobox het component aanklikken. Vervolgens klik je op wijzigen en dan kun je de allergenen ingeven middels het aanvinken van desbetreffende keuzevak. Vervolgens opslaan. Hier doet zich het probleem voor dat hij niet de juiste rij pakt maar de rij boven het geselecteerde component.

FokkeB
 

Bijlagen

Code:
Cells(Application.Match(Val(.Value), Range("[COLOR="#FF0000"]A1[/COLOR]:A" & .ListCount), 1), 3).Resize(, 14) =
maak er dit eens van.
 
Zo zie ik het werken.
Allergenenwetgeving is toch een echte pest, nietwaar ?(heb er voor mezelf ook eentje mogen bouwen)
 

Bijlagen

Bedankt warme bakker! :)

Die allergenen, dat is me wat. Allemaal (kouwe) drukte en dreigen met boetes indien je het niet voor elkaar hebt. Echter is er bij ons in de ouderenzorg in al die 24 jaar dat ik werk nog nooit een vraag gesteld aan tafel over de allergenen die in een maaltijd zitten. Maar dat wil niet zeggen dat we er geen rekening mee houden! Vaak worden zijn de allergieën van bewoners en gasten van te voren bekend. Nu moeten we het eigenlijk al van te voren aangeven...
Laat maar... ze zijn hier gek op het bedenken van regeltjes voor een ander, en o wee, als je je er niet aan houdt... Een beetje gezond verstand lost veel meer op dan een dozijn regeltjes.

Maar nog bedankt voor je aanvulling, zeer waardevol. De code's die je aangedragen hebt neem ik graag van je over :thumb:

FokkeB
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan