• 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

Status
Niet open voor verdere reacties.

MayNiak666

Gebruiker
Lid geworden
6 jan 2003
Berichten
234
Wie helpt me. Ik heb een knop op een werkblad. Met die knop start ik een macro. De macro moet het volgende doen: In een bepaald bereik op werkblad 1 wordt gekeken of cel 1 al dan niet leeg is. Als cel 1 niet leeg is, wordt er gekeken of de waarde van cel 2, die zich op dezelfde rij als cel 1 bevindt, groter dan 0 is. Als dat het geval is, moet de hele rij gekopieerd worden naar de eerste lege cel in kolom A van werkblad 2.

Ik had het ongeveer zo bedacht:

For Each cel In Range("Naam2")
If Not cel.Value = "" Then
Rij = cel.Row
FTE = Worksheets("Wavin Lash").Cells(Rij, 24).Value
If FTE > 0 Then
' Eerste lege cel in kolom A zoeken
Set DoelCel = Worksheets("Totalen overzicht").Cells(4, 1)
Do While Not IsEmpty(DoelCel)
Set nextCell = DoelCel.Offset(1, 0)
Set DoelCel = nextCell
Loop
Worksheets("Wavin Lash").Rows(Rij).Copy
Worksheets("Totalen overzicht").Range("Doelcel").PasteSpecial _
Paste:=xlPasteAll
End If
End If
Next cel


Alleen gaat het bij het plakken mis. Ik krijg dan de volgende foutmelding:

Fout '1004' tijdens uitvoering

Door de toepassing of door object gedefinieerde fout

Ik snap eigenlijk niet zo goed wat ik fout doe....
 
Je Doelcel bevindt zich op het tabblad Totalenoverzicht.
Probeer eens om deze eerst te selecteren en dan pas te plakken.
Vervang Worksheets("Totalen overzicht").Range("Doelcel").PasteSpecial _
Paste:=xlPasteAll
door
Sheets("Totalen overzicht").Select
Range("Doelcel").PasteSpecial _
Paste:=xlPasteAll
Mogelijk werkt het dan wel.
Met welke Excel versie werk je eigenlijk?
 
Ik denk dat de fout in de cel referentie zit.
In "Set DoelCel = Worksheets("Totalen overzicht").Cells(4, 1)"
definieer je doelcel als een soort shortcut.
In "Worksheets("Totalen overzicht").Range("Doelcel").PasteSpecial Paste:=xlPasteAll" refereer je naar een range die doelcel heet.
Misschien werkt dit: Doelcel.PasteSpecial Paste:=xlPasteAll
 
Ik dank een ieder voor het meedenken, en hierbij tevens mijn excuses voor de late reactie. De fout zat volgens mij in het feit dat ik bij het kopieren een hel rij als range opgaf, en die wou plakken in een enkele cel. Met normaal koiepren en plakken gaat dat wel, maar met plakken speciaal blijkbaar niet. Ik heb de code inmiddels wat uitgebreid, aangepast en verbeterd, en het werkt nu als een tierelier.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan