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

Code uitvoeren bij verlaten werkblad

Status
Niet open voor verdere reacties.

RoCompy87

Gebruiker
Lid geworden
13 nov 2006
Berichten
284
Hallo iedereen,

Ik heb weer even een klein vraagje waar ik niet helemaal uitkom. Ik wil graag dat bij het verlaten van het werkblad een code wordt uitgevoerd. De waarden van range D11: D310 op dat werkblad moeten worden gekopieerd naar range E11:E310 op dat werkblad (plakken speciaal dus). Ik heb de volgende code opgesteld, die wel het gewenste resultaat geeft, maar voor een paar seconden flipt Excel zowat. Waar zit de fout?

Code:
Private Sub Worksheet_Deactivate()
Range("D11:D310").Copy
Range("E11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
End Sub

Alvast bedankt!
 
Is het hier ook nog het geval?

Code:
Private Sub Worksheet_Deactivate()
Application.ScreenUpdating = False
With Range("D11:D310")
    .Copy
    .Cells(1).Offset(,1).PasteSpecial xlValues
End With
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Wigi
 
Jouw code scheelt al heel veel, maar het is nog steeds niet helemaal zoals gewenst. Laat ik het probleem iets uitgebreider schetsen.

Op werkblad 1 wil ik in een bepaalde kolom datavalidatie toepassen met een lijst van medewerkersnamen.
Op werkblad 2 staan de medewerkergegevens (max. 300 records), waaronder een kolom 'Voornaam' en 'Achternaam'. Deze gegevens vormen dus de bron voor de validatielijst op werkblad 1.
In de validatielijst wil ik voornaam én achternaam zien, dus heb ik op werkblad 2 een verborgen kolom met een formule die voor- en achternaam tot één waarde samenbrengt. Dit betekent echter wel 300 unieke waarden in deze kolom (iedere formule is namelijk anders: =A#&" "&B#)
Om te ondervangen dat de validatielijst een hele reeks aan lege waarden bevat, had ik verzonnen om bij het deactiveren van het werkblad alle waarden uit deze verborgen kolom naar een andere verborgen kolom te kopiëren.
Misschien is dat echter niet de meest eenvoudige oplossing. Ik heb een vereenvoudigd voorbeeldbestandje toegevoegd. Iemand suggesties? (PS: In het bestandje is Wigi's code verwerkt.)
 

Bijlagen

In het benoemd dynamisch bereik:

=VERSCHUIVING(Personeelsbestand!$D$11;;;AANTAL(Personeelsbestand!$F$11:$F$310);)

Kopieercode kan weg.

Wigi
 
Ja het werkt :D Ik moet mijn handigheid met formules zoals VERSCHUIVING nog even wat verder ontwikkelen haha. Maar weer hartstikke bedankt voor de snelle hulp :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan