You are on page 1of 1

Bizonyos sorok másolása másik munkalapra makróval

Hogyan lehet egyik munkalapról, a megjelölt sorokat átmásolni egy másik munkalapra. A megjelölés például az A
oszlopban egy “x”-szel történik. Tehát egy makró segítségével másoljuk át a “Munka1” lapon lévő azon sorokat
“Munka2” lapra, amelyeknek az első oszlopában “x” szerepel.

Megnézzük, hány sorból áll a táblázatunk, ahol az adataink vannak. Jelen esetben nevezzük a “Munka1” lapnak. Tehát
mi az utolsó sor, ahol adat van. Megnézzük az oszlopok számát is.
Végigmegyünk a “Munka1” lapon, ahol az adataink vannak, az első oszlopon egy ciklussal. Fejlécet tartalmazunk, így a 2.
sortól a korábban megállapított utolsó sorunkig.
Miközben végigmegyünk, megvizsgáljuk, hogy az éppen aktuális sor első oszlopában szerepel e “x”.
Ha igen, akkor az adott sor-t (jelen esetben az adott sor első oszlopától az utolsó oszlopáig) egyből át is másoljuk a
“Munka2” lap első sorába. Ha nincs x, akkor pedig a ciklusunk tovább halad.
Fontos, hogy ha átmásoltuk a Munka2-re az adott sorunkat, akkor ne feledjük el, hogy a sorok számához hozzá kell adni
ott is egyet, hogy ne folyton az első sorba tegyen minden x-szel jelölt sor.

Sub Gomb1_Click()
'Meghatározzuk a "Munka1" lapon, hogy mi az utolsó sor és mi az utolsó oszlop, amiben van adatunk
'Ez azért kell, hogy rugalmas legyen a makrónk
Dim utolso_sor As Long
Dim utolso_oszlop As Long
utolso_sor = Worksheets("Munka1").Cells(Rows.Count, "A").End(xlUp).Row
utolso_oszlop = Worksheets("Munka1").Cells(1, Columns.Count).End(xlToLeft).Column

’ MsgBox "Az utolsó oszlop száma: " & utolso_oszlop & vbNewLine & "Az utolsó sor száma: " & utolso_sor

'Meghatározzuk, hogy a "Munka2" lapon, mi az utolsó sor. Ide fogjuk bemásolni az "x"-szel jelölt sorokat a "Munka1"-ről
Dim utolso_sorx As Long
utolso_sorx = Worksheets("Munka2").Cells(Rows.Count, "A").End(xlUp).Row

'Végigmegyünk az 1. munklap A oszlopán, és megnézzük melyik sorokban van x, ha van x, akkor egyből át is másoljuk a
"Munka2" lapra.
For i = 2 To utolso_sor 'Ha egyetzést találunk kimásoljuk
If Worksheets("Munka1").Cells(i, 1).Value = "x" Then
a = Worksheets("Munka1").Cells(i, 1).Address(RowAbsolute:=False, ColumnAbsolute:=False)
b = Worksheets("Munka1").Cells(i, utolso_oszlop).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Worksheets("Munka1").Range(a & ":" & b).Copy
Worksheets("Munka2").Select 'BEILLESZTÉS
ActiveSheet.Cells(utolso_sorx, 1).Select
ActiveSheet.Paste
'A Munka2 fülön mindig hozzáadunk egyet az adott sorhoz, így szépen egymás utáni sorokba másolja majd át az x-
es sorokat.
utolso_sorx = utolso_sorx + 1
End If
Next
End Sub

You might also like