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

Rij kopieren adhv voorwaarde in Kolom

Status
Niet open voor verdere reacties.

Willem W8

Gebruiker
Lid geworden
27 nov 2006
Berichten
14
Hoi Helper,

Ik heb een database gemaakt in excel, alleen deze wordt veel te groot.
Nu wil ik als in kolom J de tekst "afgewerkt" wordt getypt deze gehele rij wordt gekopieerd naar het tabblad 'afgewerkte opdrachten', inclusief alle formules en celeigenschappen. Hier moet deze rij onder de reeds gevulde rijen geplaatst worden en aflopend gesorteerd worden op kolom A. Ook moet de rij uit het actieve werkblad wordt verwijderd, waarbij de overige rijen een rij naar boven opschuiven. De database rijen beginnen bij rij 6, daarboven staat informatie voor de gebruikers en de kolomkoppen.

Alvast bedankt voor de reacties
 
Test deze code eens uit, ik heb ze hier gewoon opgeschreven uit de losse pols en niet zelf getest.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target = "afgewerkt" Then
            Target.EntireRow.Copy Sheets("afgewerkte opdrachten").Range("A" & Rows.Count).End(xlUp).Offset(1)
            Sheets("afgewerkte opdrachten").UsedRange.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess
            Target.EntireRow.Delete xlShiftUp
    End If
End Sub

Plak de code achter het blad van de database. Als je niet weet hoe dat moet, dan vraag je nog maar wat meer uitleg.

Wigi
 
Laatst bewerkt:
Bedankt voor de snelle reactie Wigi,

Het werkt wel, alleen wordt de rij niet verwijderd uit de database waar "afgewerkt" wordt ingevoerd.
 
Laat de xlShift maar weg.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column = 10 Then
        If Target = "afgewerkt" Then
                Target.EntireRow.Copy Sheets("afgewerkte opdrachten").Range("A" & Rows.Count).End(xlUp).Offset(1)
                Sheets("afgewerkte opdrachten").UsedRange.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess
                Target.EntireRow.Delete
        End If
    End If
End Sub

Ik heb er ook ingebracht dat het enkel kolom J is.

Wigi
 
Ahhhhh, heb mijn vorige post weggehaald ivm verwarring. Had de gehele code niet door gelezen. :o :o :o

Sorry.

Groet,
Ferenc
 
Het werkt nog steeds, alleen de regel wordt nog niet verwijderd uit de actuele lijst. Er wordt een foutmelding gegeven op de rode regel.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 10 Then
If Target = "afgewerkt" Then
Target.EntireRow.Copy Sheets("afgewerkte opdrachten").Range("A" & Rows.Count).End(xlUp).Offset(1)
Sheets("afgewerkte opdrachten").UsedRange.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess
Target.EntireRow.Delete
End If
End If
End Sub
 
Zeg eens hoe het blad "afgewerkte opdrachten" eruit ziet? Anders moet ik gokken naar de code zoals ik hierboven deed voor A2.
 
Wigi,

De lijst "afgewerkte opdrachten" is een tabblad waarbij alleen de eerst rij (rij 1) gebruikt wordt voor kolomkoppen.
Daarom moeten alle celeigenschappen en formules mee geplakt worden. En gesorteerd op kolom A. (Dit omdat er meerdere mensen in deze lijst werken, of zoeken, met minder excel ervaring)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan