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

check of een veld in een form is gewijzigd

Status
Niet open voor verdere reacties.

kjanssenz

Gebruiker
Lid geworden
15 nov 2008
Berichten
5
Beste lezer,

Weet iemand hoe je met een éénvoudig commando kan nagaan of 1 of meer gegevens in een Excel formulier (UserForm) zijn gewijzigd.
Natuurlijk kan ik alle waarden eerst in hulpvariabelen zetten en indien op "Save" wordt gedrukt controleren of 1 van de waarden is gewijzigd, maar het gaat om 51 velden. Dat moet toch slimmer kunnen lijkt me. Alleen ik kom er maar niet achter.

Ben benieuwd of dit kan. In ieder geval alvast bedankt voor het lezen.
Hoor het graag,

Kees.
 
Dag Kees,

Dit is wel te doen.
Maar mijn glazen bol laat me in de steek.
Misschien kun je het Bestand hier plaatsen.
De kans op een oplossing is dan veel groter.
 
LucB

Bedankt voor je reactie.
Het bestand is echter zeer groot en helaas mag ik de inhoud niet verspreiden.Het bevat persoonsgegevens.

Een gebruiker kan dubbel klikken op een regel in een Excel sheet waarna een formulier verschijnt met 51 velden. Deze velden lees ik uit de cellen van 1 of meerdere bijbehorende regels.
Drukt de gebruiker op button [Ok] dan roep ik een subroutine aan die de waarden in het formulier weer naar de cellen in de betreffende regels schrijft.
Echter de dat hoeft alleen maar indien er iets in het formulier is gewijzigd. Ik wil dus alleen de subroutine "SchrijfRegel" aanroepen indien er daadwerkelijk een waarde in 1 van de 51 velden is gewijzigd.
(Aangezien je in het formulier ook op [Vorige Persoon] of [Volgende Persoon] buttons kan drukken scheelt dit behoorlijke in performance als niet iedere keer de gegevens weer worden weggeschreven in de cellen terwijl er niets is gewijzigd.)
Ik hoop dat je hier iets meer mee kan.

Alvast bedankt,

Kees.
 
Dag Kees,

Je bedoeling is wel duidelijk, maar je gegevens zijn nog wat vaag.

Ik neem aan dat er 51 TextBoxes op je UserForm staan.
Ik neem ook aan dat de in te lezen cellen in Range("A1:A51") staan.

Dan zou je onderstaande code onder de "OK-knop" kunnen zetten.

Code:
Dim n      As Long
    For n = 1 To 51
        If Me.Controls("TextBox" & n) = Range("A" & n) Then
            MsgBox "Geen wijzigingen.."            
            Exit Sub
   Else
   MsgBox "Er is gewijzigd."
    End If
    Next n
 
Laatst bewerkt:
Ha Luc,

Nu begrijp ik wat je bedoelde.
Ik heb niet alleen textboxen maar ook comboboxen gebruikt. En wat nog erger is, ze hebben allemaal een eigen (betekenisvolle) naam. (Naam, Adres, Plaats, etc. etc)
Jouw oplossing is overigens wel een aardige, die ik zeker de volgende keer meeneem, maar volgens mij nu niet bruikbaar vanwege de naamgevingen.

Kees.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan