Selectie van meerdere cells kopieren naar ander blad

Status
Niet open voor verdere reacties.

SandorCRX23

Gebruiker
Lid geworden
14 nov 2008
Berichten
13
Hallo Hallo,

Ik heb een werkblad met daarop materialen. Deze lijst bestaat uit naam, hoeveelheid, leverancier en productnummer. Nu wil ik dat ik een aantal materialen kan selecteren om daarvan een inkooporder te maken. Dus ik wil kunnen selecteren welke materialen ik op dat moment wil gaan bestellen. Deze worden dan gekopieerd naar een ander werkblad.

Een klein overzichtje:
| A(select) | B (name) |C (aantal) | D(art.nr.) | E(supplier)
1 | leeg | schroefzekering | 4x | BSA-192 | Ehrbecker
2 | leeg | pakkingkrabber | 1x | BGR-111 | Econosto
3 | leeg | universeelmeter | 1x | Uni11 | Ehrbecker
4 | leeg | schoonmaakborstel | 4x | - | Stako

Ik heb de volgende code:

'Statement will only be executed when a selection is made in column 1
If Not Intersect(Target, Range("A1:A999")) Is Nothing Then

'When a cell is selected, the data inside is copied to Sheet2
Selection.Copy (Sheet2.Cells(8, 5))

Dit is voor een enkele cell maar dit moet voor meerdere worden m.b.v. Range.


Ik selecteer in cell A welk materiaal ik wil kopieren. Cellen B tot D moeten dan gekopieerd worden naar het andere blad. Er moet in komen dat automatisch de juiste cell geselecteerd word in blad 2 dus wanneer de eerste regel al gevuld is, dat de nieuwe data dan automatisch naar de tweede regel gaat etc..

Kan iemand mij helpen?

Bedankt!
 
Laatst bewerkt:
Ik denk dat je een heel eind komt met deze code:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A999")) Is Nothing Then
        Range("B" & CStr(Target.Row) & ":D" & CStr(Target.Row)).Copy
        Sheets("Blad2").Select
        Dim i As Integer
        For i = 1 To 99
            If IsEmpty(ActiveSheet.Cells(i, 1).Value) Then
                Exit For 'i bevat het celnummer van de eerste lege cell
            End If
        Next
        ActiveSheet.Cells(i, 1).Select
        ActiveSheet.Paste
        Application.CutCopyMode = False
        Sheets("Blad1").Select
    End If
End Sub
Ik denk dat de code niet moeilijk te begrijpen is: kopieer de cellen; ga naar het tweede blad, zoek een lege regel, plak de cellen en ga terug naar het eerste blad.

Er is, voor zover ik weet, niet echt een manier om een nieuwe/lege regel te zoeken. Daarom heb ik een loop constructie gemaakt die checkt of Ax leeg is. Misschien dat een andere bezoeker een mooiere oplossing heeft (als je 100+ artikelen besteld, even "99" aanpassen).

Het voorbeeld zal ik toevoegen als bijlage zodat je het zelf kunt testen.
 

Bijlagen

  • hmsandor.xls
    29 KB · Weergaven: 127
Of iets simpeler:

Code:
If target.column=1 Then
  target.offset(,1).resize(,4).copy sheets(2).cells(rows.count,1).end(xlup).offset(1)
end if

Vermijd Select en Activate in VBA-code: overbodig, vertragend en verwarrend.
 
Laatst bewerkt:
Dat is een techniek die ik nog niet heb gezien. Zoals de code er nu staat werkt het niet (syntax error) - zou je een voorbeeld bestand kunnen posten? Zo leer ik ook wat nieuws :)
 
Vorige code aangepast(een komma vervangen door een punt)
 
heren bedankt!

Dit is wat ik zocht...
Ik heb er nog een kleurtje bijgevoegd dus de geselecteerde cellen die veranderen van kleur.
Zo kan ik zien wat ik al gehad heb

Bedankt,.

Groet,
Sandor
 
Graag de vraag nog op opgelost zetten aub? Bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan