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

Tabellen met verschillende lengtes kopieren op nieuwe sheet

Status
Niet open voor verdere reacties.

Bjorkie

Gebruiker
Lid geworden
12 sep 2017
Berichten
147
Ik heb op verschillende sheets tabellen met waarden die ik wil samenvoegen op een nieuwe sheet.
probleem is echter, dat de lengte van de tabellen( aantal rijen) variabel is, en dat ik op mijn nieuwe sheet, enkel de tabel wil invoegen in de cellen die nodig zijn.
dus, mijn tabellen zijn telkens 3 kolommen groot, dus op mijn nieuwe sheet, mogen de formules in kolom D - E - F niet verloren gaan.
ik heb een kleine sample bijgevoegd.
Bekijk bijlage tabellen samenvoegen.xlsx
 
Macro van dit genre? (Heb geen rekening gehouden met je commentaren op de sheet)

Code:
Sub samenvoegen()
Dim R1 As Range, AantalRijen1 As Long, R2 As Range, doel As Worksheet
Set R1 = Worksheets(1).UsedRange
AantalRijen1 = R1.Rows.Count
Set R2 = Worksheets(2).UsedRange
Set doel = Worksheets(3)
R1.Copy Destination:=doel.Range("A1")
R2.Copy Destination:=doel.Range("A1").Offset(AantalRijen1)

End Sub

In plaats van de UsedRange van de Worksheet (=alle cellen) kan je misschien ook gebruik maken van Worksheets(1).range("A1").Currentregion, dit als er op dat blad buiten betreffende tabel nog iets anders staat
 
De code die je voorsteld is al behoorlijk wat ik zoek.
jouw opmerking over de "Worksheets(1).range("A1").Currentregion," blijkt niet te werken.
maar nu hebben we steeds de gehele kolom genomen.
hoe kan ik vanaf een bepaalde startcel beginnen?
voorbeeld startcel sheet 1 is A10
startcel sheet 2 is B10
 
Code:
Sub Bjorkie()
Sheets(1).UsedRange.Copy Sheets(3).Cells(4, 1)
Sheets(2).UsedRange.Copy Sheets(3).Cells(Sheets(3).Cells(Sheets(3).Rows.Count, "A").End(xlUp).Row + 2, 1)
End Sub
 
Als je niet vanaf A1 wil beginnen zal je offset en resize moeten combineren.
Oplossingen met xlUp hou ik niet zo van, als er sprake zou zijn van lege cellen heb je geen correcte selectie
CurrentRegion: gebied rond een bepaalde cel, volledig omgeven door lege cellen.
 
bedankt voor de info en voorbeelden.
voorlopig is het toch niet de oplossing die ik kan gebruiken.
ik heb namelijk al een code die bepaalde lijnen in mijn sheet 3 plaatst.
dus moet ik mijn nieuwe code aanpassen, om de lijnen van sheet 2, nadien toe te voegen, op het eind van de bestaande lijst van sheet 3.
ik maak gebruik van 2 verschillende knoppen.
De eerste start de code die deel 1 kopieerd, de tweede knop is nadien te gebruiken om de gegevens van sheet 2 er aan toe te voegen.
 
Dan moet je dus het aantal rijen in sheet 3 tellen en voor plakken de offset methode vanaf range("A1") gebruiken
 
Plaats dan ook een goedgelijkend voorbeeldbestand met de code die je al hebt. Nu plaats je een XLSX.
 
ok, ik zal mijn uiteindelijk bestand toevoegen.
hierin staan reeds verschillende codes.
ik heb in code 'Create_Camlist' een opdracht staan om gegevens naar het tabblad 'Equipment list' te sturen. (tot hier alles perfect zoals gewenst)
nu heb ik een ander tabblad 'Accesoires list' waar ik de betreffende lijst heb. hier zie ik mijn antallen van elk artikel in.
nu wil ik hier een knop hebben, waarbij ik enkel de artikels met een waarde, hoger dan nul, ook in de lijst toevoeg (onderaan) in het tabblad 'Equipment List'.
ik wil dus wel de 3 kolommen kopieren in de lijst. (Item; Artikel; Quant.
)Bekijk bijlage camera oefening v8.xlsm
 
Beste allen, nogmaals bedankt voor jullie input en snelle hulp.
hier het script dat ik uiteindelijk gebruik:
Code:
Sub lijst()
    Range("F5:H100").Select
    Selection.Copy
    Worksheets("Equipment list").Select
    lMaxRows = Cells(Rows.Count, "A").End(xlUp).Row
    Range("A" & lMaxRows + 1).Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
End Sub

let wel, de cel locaties hebben zich ondertussen wel gewijzigd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan