Supportnet / Forum / Tabellenkalkulation
kleine Liste aus größerer Herauskopieren in Abhängigkeit eines Parameters
Frage
Hallo,
Ich habe folgendes Problem:
In Tabelle1 befindet sich eine Liste (mit Überschrift) die in Spalte A die Kalenderwoche beinhaltet. Die restliche Belegung der Zeilen ist egal, nehmen wir mal an es sind noch drei weitere Felder pro Zeile.
Ich möchte nun aus dieser Liste einen Teil bis zu einer bestimmten Kalenderwoche (Das ist die Variable die in einer Zelle in Tabelle 2 steht) in Tabelle2 kopieren.
Und das ganze Bitte per Makro.
D.h. in Abhängigkeit des Zellinhaltes (z.B. 10) möchte ich bis zur Kalenderwoche 10 alle Zeilen in Tabelle 2 haben.
Bitte helft mir, ich weiiß nicht mehr weiter
Antwort 1 von CaroS
Hallo mario1234,
auch hier fehlte leider die Angabe, in welcher Zelle sich der Wert befindet, der angibt, wie viele Zeilen kopiert werden sollen.
Sub Bereich_kopieren()
Const T2_Zelle As String = "X12"
Sheets("Tabelle1").Range("A1:D" & Sheets("Tabelle2").Range(T2_Zelle).Value).Copy Destination:=Sheets("Tabelle2").Range("A1")
End Sub
oder kürzer
Sub Bereich_kopieren()
Sheets("Tabelle1").Range("A1:D" & Sheets("Tabelle2").Range("X12").Value).Copy Destination:=Sheets("Tabelle2").Range("A1")
End Sub
Gruß,
CaroS
auch hier fehlte leider die Angabe, in welcher Zelle sich der Wert befindet, der angibt, wie viele Zeilen kopiert werden sollen.
Sub Bereich_kopieren()
Const T2_Zelle As String = "X12"
Sheets("Tabelle1").Range("A1:D" & Sheets("Tabelle2").Range(T2_Zelle).Value).Copy Destination:=Sheets("Tabelle2").Range("A1")
End Sub
oder kürzer
Sub Bereich_kopieren()
Sheets("Tabelle1").Range("A1:D" & Sheets("Tabelle2").Range("X12").Value).Copy Destination:=Sheets("Tabelle2").Range("A1")
End Sub
Gruß,
CaroS
Antwort 2 von JoeKe
Hallo Mario,
falls die Werte in Spalte A nicht forlaufend vorhanden sind so:
Option Explicit
Sub Kalenderwoche()
Dim iKW As Integer, rngSuch As Range
iKW = Sheets("Tabelle2").Range("A1")
For Each rngSuch In Sheets("Tabelle1").Range("A1:A53")
If rngSuch = iKW Then
Sheets("Tabelle1").Rows("2:" & rngSuch.Row).Copy _
Destination:=Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
Next
End Sub
Gruß
JöKe
falls die Werte in Spalte A nicht forlaufend vorhanden sind so:
Option Explicit
Sub Kalenderwoche()
Dim iKW As Integer, rngSuch As Range
iKW = Sheets("Tabelle2").Range("A1")
For Each rngSuch In Sheets("Tabelle1").Range("A1:A53")
If rngSuch = iKW Then
Sheets("Tabelle1").Rows("2:" & rngSuch.Row).Copy _
Destination:=Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
Next
End Sub
Gruß
JöKe
Antwort 3 von mario1234
Vielen Dank CaroS für die schnelle Antwort
Hat bestens geklappt!
Darauf wär ich nie gekommen.
Hat bestens geklappt!
Darauf wär ich nie gekommen.
Antwort 4 von mario1234
danke auch jöke.
deine Antwort muss ich als VBA Neueinsteiger erstmal verdauen ;-)
deine Antwort muss ich als VBA Neueinsteiger erstmal verdauen ;-)
Antwort 5 von JoeKe
Hallo mario,
bei meinem Code wird die KW. Angabe von Tabelle2 A1 in Tabelle1 Spalte A gesucht. Wenn der Wert gefunden wird, werden die Zeilen 2 - zur gefundenen Zeile nach Tabelle2 erste freie Zeile in Spalte A kopiert.
Gruß
JöKe
bei meinem Code wird die KW. Angabe von Tabelle2 A1 in Tabelle1 Spalte A gesucht. Wenn der Wert gefunden wird, werden die Zeilen 2 - zur gefundenen Zeile nach Tabelle2 erste freie Zeile in Spalte A kopiert.
Gruß
JöKe

