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

kopieren naar werkblad mb.v. checkbox

Status
Niet open voor verdere reacties.

gbvdh

Gebruiker
Lid geworden
14 feb 2007
Berichten
111
Goedendag,

Na een periode van rust heb ik toch jullie hulp weer even nodig.
Ik heb een tabel waarvan ik een 2 rijen wil selecteren, die rijen moeten vervolgens naar een ander werkblad gekopieerd worden. Het lijkt mij persoonlijk het eenvoudigst dit te doen met check boxen, met iets in de richting van als checkbox 45 en 46 zijn aangevinkt worden rij 45 en 46 naar werkblad 2 gekopieerd o.i.d. Daarnaast zou het mooi zijn als bijvoorbeeld rij 45,46 en rij 70,71 zijn aangevinkt deze beide naar een apart werkblad worden gekopieerd.
Dan kom ik ook meteen bij het volgende probleem, de tabel kan vrij lang worden (200 rijen of meer is geen uitzondering) is er een methode om de checkboxen snel in alle rijen in te voegen of wordt dat toch een kwestie van kopieren plakken?

Ik hoop dat iemand me hierbij kan helpen, ik schat zelf in dat de code vrij eenvoudig is, maar waarschijnlijk heel veel van hetzelfde.

Barry
 
Met een knop werken zal simpeler zijn.

Naar waar moet er eigenlijk gekopieerd worden op blad 2?
 
Met een knop werken zal simpeler zijn.

Naar waar moet er eigenlijk gekopieerd worden op blad 2?

Op het 2e werkblad moet het naar rijen 2 en 3 gekopieerd worden, gewoon vanaf kolom A.
b.t.w. Kan het met een knop ook dat als ik op bijvoorbeeld rij 41 klik rij 40 en rij 41 gekopieerd worden?

Ik bedenk me opeens dat het eigenlijk nog mooier zou zijn als ik in cel A1 een rijnummer invoer dat deze rij (en de rij die daarvoor zit) gekopieerd worden. Zou dat mogelijk zijn, zonder al te veel arbeid?
 
Laatst bewerkt:
Ik bedenk me opeens dat het eigenlijk nog mooier zou zijn als ik in cel A1 een rijnummer invoer dat deze rij (en de rij die daarvoor zit) gekopieerd worden. Zou dat mogelijk zijn, zonder al te veel arbeid?

Hier zie

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Range("A" & Range("A1") - 1).EntireRow.Resize(2).Copy _
        Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
End Sub

Code moet achter het blad komen waar je in A1 het rijnummer invult. Sheet2 moet je mogelijk nog aanpassen.

Wigi
 
Hier zie

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Range("A" & Range("A1") - 1).EntireRow.Resize(2).Copy _
        Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
End Sub

Code moet achter het blad komen waar je in A1 het rijnummer invult. Sheet2 moet je mogelijk nog aanpassen.

Wigi

Bedankt voor de snelle reactie, ik heb alleen nog wel een klein probleempje mee. Ik heb nog nooit op deze manier met excel gewerkt dus ik krijg het niet werkend. Wat ik heb gedaan: In excelbestand Alt-F11 en vervolgens de code geplakt bij blad 1, dit hele zaakje opgeslagen, maar als ik vervogolens de waarde van A1 verrander gebeurd er niets het wordt dus niet gekopieerd. Wat doe ik fout?
 
Je hebt wel degelijk een rijnummer genomen met gegevens erin?
 
Ja, ik heb het bestand er even bij gevoegd, maakt het misschien iets makkelijker.
 

Bijlagen

B3 moet je ook nog hier gebruiken:

Code:
Range("A" & Range("[B]B3[/B]") - 1) ...
 
B3 moet je ook nog hier gebruiken:

Code:
Range("A" & Range("[B]B3[/B]") - 1) ...

Stom dat ik dat over het hoofd heb gezien, maar zelfs als ik dit heb aangepast wordt er niets gekopieerd
 
Wat zou ik in sheet 2 aan moeten passen dan? Sorry voor deze basic questions maar zoals gezegt ik heb hier echt 0 ervaring mee.
 
Code:
Sheets("[B]Blad2[/B]")...

Ik heb een engelse excel, dus standaard krijg ik Sheet1, 2 en 3. Jij krijgt Blad1, 2 en 3. Aanpassen dus.
 
Wigi, zijn code iets aangepast, nu ook met controle op lijn 6 en als er minder dan 6 wordt ingevoerd.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$B$3" And Target >= 6 Then
        If Target = 6 Then
            Range("A" & Target).EntireRow.Copy Sheets("Blad2").Range("A" & Rows.Count).End(xlUp).Offset(1)
        Else
            Range("A" & Target - 1).EntireRow.Resize(2).Copy Sheets("Blad2").Range("A" & Rows.Count).End(xlUp).Offset(1)
        End If
    End If
    
End Sub

Edit: Code aangepast aan de opmerking van Wigi in de post hieronder.
 
Laatst bewerkt:
Ferenc, gebruik Target ipv. Range("B3"). Bij wijzigingen op het blad heb je dan veel minder werk met aanpassen, en dus minder kans op fouten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan