Sander,
Te kort door de bocht?
Code:Sub lijst_kopieren_naar_gegevens() With Sheets("planning") .Range("b1:c10").Copy Sheets("gegevens").Range("A" & Rows.Count).End(xlUp).Offset(1) End With End Sub
Beste lezer,
Waarschijnlijk een heel simpele vraag maar ik kom toch niet uit het antwoord. Wellicht dat je een tip kunt geven.
Met onderstaande code, kopieer ik een bereik van kolom B naar een ander werkblad naar kolom A en dan op de eerst volgende lege cel. Ik gebruik dit werkblad als gegevensblad
Dit werkt goed.Code:Sub lijst_kopieren_naar_gegevens() With Sheets("planning") .Range("b25:b44").Copy Sheets("gegevens").Range("A" & Rows.Count).End(xlUp).Offset(1) End With End Sub
Nu wil ik graag achter de net gekopieerde cellen in kolom b de waarde van één cel uit "planning" zetten. Hoe kan ik dit het beste doen? Ik dacht eerst de formule te herhalen maar dan met een ander bereik. Resultaat is dat hij maar 1 cel vult in kolom B en niet alle cellen die net in kolom A gevuld zijn.
Met vriendelijke groet,
Sander
Laatst gewijzigd door sander1; 06-11-11 om 09:18. Reden: bestand toevoegen
Sander,
Te kort door de bocht?
Code:Sub lijst_kopieren_naar_gegevens() With Sheets("planning") .Range("b1:c10").Copy Sheets("gegevens").Range("A" & Rows.Count).End(xlUp).Offset(1) End With End Sub
Of iets ruimer Rob.
Met de opmaak.
Of alleen de waarden.Code:Sub lijst_kopieren_naar_gegevens() With Sheets("planning") .Range("b1:b10").Copy Sheets("gegevens").Range("A" & Rows.Count).End(xlUp).Offset(1) .Range("C1").Copy Sheets("gegevens").Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(10) End With End Sub
Code:Sub lijst_kopieren_naar_gegevens() With Sheets("gegevens").Range("A" & Rows.Count).End(xlUp) .Offset(1).Resize(10).Value = Sheets("planning").Range("B1:B10").Value .Offset(1, 1).Resize(10) = Sheets("planning").Range("C1") End With End Sub
gr. Harry
Wie met de duivel danst, moet het orkest betalen.
Hallo Robdgr,
Die is inderdaad iets te kort door de bocht. Het gaat om cel c1 die moet komen achter hetgeen net naar kolom A is gekopieerd.
De formule van HSV doet het wel. Alleen hij pakt automatisch 10 cellen terwijl ik ook wel eens een ander aantal cellen kopieer. Is daar nog een oplossing voor te verzinnen?
Dus als ik een keer 7 cellen kopieer naar kolom A, dan zou er in kolom B ook 7 maal cel c1 kopieerd moeten worden. Nu doet hij het standaard 10 keer.
Met vriendelijke groet,
Sander
Hallo lezers,
Is het een idee om bijvoorbeeld in de macro een regel op te nemen dat hij in werkblad 2 zoekt naar de combinatie van gevulde cellen in A en lege cellen in kolom B. Het resultaat wordt dan gevuld met cel C1 uit werkblad 1. Klinkt mij werkbaar voor wat ik er mee wil maar nu nog de code om het uit te laten voeren.
Iemand een tip?
Met vriendelijke groet,
Sander
Kijken of je het zo bedoeld Sander.
Code:Sub lijst_kopieren_naar_gegevens() Dim rngplnnng As Range With Sheets("gegevens").Range("A" & Rows.Count).End(xlUp) Set rngplnnng = Sheets("planning").Range("B1:B" & Sheets("planning").Cells(Rows.Count, 2).End(xlUp).Row) .Offset(1).Resize(rngplnnng.Rows.Count).Value = rngplnnng.Value .Offset(1, 1).Resize(rngplnnng.Rows.Count) = Sheets("planning").Range("C1") End With End Sub
gr. Harry
Wie met de duivel danst, moet het orkest betalen.
Hallo HSV,
Hij doet het! heel fijn. Ik kan alleen de formule niet begrijpen en weet dus niet waar ik een aanpassing moet maken. Jij kunt vast aangeven waar ik dat moet doen. De formule pakt nu namelijk heel kolom B van werkblad "planning" om te kopieren. In het werkelijke bestand wil ik alleen een bepaald bereik in de formule opnemen om te kopieren. bijvoorbeeld "B5:b15".
Kun je mij daarmee helpen? Mocht je de moeite willen doen, dan zou ik graag de uitleg bij je formule hebben om te begrijpen wat je gedaan hebt. Als dat te veel type werk is of je hebt er geen zin in, uiteraard geen probleem. Ik ben al heel erg blij als je dit laatste stukje voor mij op kan lossen.
Met vriendelijke groet,
Sander
Laatst gewijzigd door sander1; 07-11-11 om 23:32.
Bedoel je het zo?
Met uitleg (groene tekst als je de code hebt geplakt).
Code:Sub lijst_kopieren_naar_gegevens() Dim rngplnnng As Range With Sheets("gegevens").Range("A" & Rows.Count).End(xlUp) 'telt de laatste cel in kolom A van blad gegevens Set rngplnnng = Sheets("planning").Range("B5:B15") 'Sheets("planning").Range("B5:B15")heet vanaf nu rngplnnng .Offset(1).Resize(rngplnnng.Rows.Count).Value = rngplnnng.Value 'zet de waarden van "rngplnnng" 1 rij lager van Sheets("gegevens").Range("A" & Rows.Count).End(xlUp) .Offset(1, 1).Resize(rngplnnng.Rows.Count) = Sheets("planning").Range("C1") 'zet de waarden van C1 met de lengte van "rngplnnng" 1 rij lager, en één kolom opzij van Sheets("gegevens").Range("A" & Rows.Count).End(xlUp) End With End Sub
Laatst gewijzigd door HSV; 07-11-11 om 23:52.
gr. Harry
Wie met de duivel danst, moet het orkest betalen.
Hallo Harry,
Dank voor je snelle antwoord! het resultaat is nu dat bereik "B1:10" gekopieerd wordt. Het maximaal aantal cellen om te kopieren is in dit voorbeeld 10. Het komt ook voor dat ik maar 7 cellen vul in werkblad "planning". De formule moet er dan dus ook maar 7 kopieren en C1 er 7 keer in kolom B achter zetten.
In kolom A van werkblad "gegevens" worden bij de huidige opzet 10 velden gekopieerd waarvan bijvoorbeeld 7 velden gevuld en drie leeg. Dat is prima. Alleen hij kopieert dan wel 10 x cel c1 naar kolom B van "gegevens" terwijl dat er maar 7 zouden moeten zijn in dit voorbeeld.
Dus als kolom A is gevuld, dan moet kolom B gevuld worden met "planning"& ("C1").
Ik hoop dat mijn uitleg duidelijk genoeg is om de formule helemaal werkend te krijgen.
Met vriendelijke groet,
Sander
gr. Harry
Wie met de duivel danst, moet het orkest betalen.