Supportnet / Forum / Tabellenkalkulation
Werte mit VBA in eine andere Tabelle übertragen
Frage
Hallo Excelspezialisten,
ich möchte mit VBA automatisch bestimmte Werte aus Tabelle1 in Tabelle2 übertragen.
Also wenn in der Spalte "K" der Tabelle 1 der Text "RKL" steht, dann sollen die Werte von A-F in die Tabelle 2 in die nächste freie Zeile übertragen werden.
Ich hoffe ihr habt dazu auch eine Idee.
Gruß
fedjo
Antwort 1 von Hajo_Zi
Hallo fedjo,
Sind es Eingaben in Spalte K?
Soll es immer nach der letzten Zeile in Tabelle 2 übertragen werden?
Ist der Name "Tabelle 2" oder "Tabelle2"?
Gruß Hajo
Sind es Eingaben in Spalte K?
Soll es immer nach der letzten Zeile in Tabelle 2 übertragen werden?
Ist der Name "Tabelle 2" oder "Tabelle2"?
Gruß Hajo
Antwort 2 von fedjo
Hallo Hajo,
es sind Eingaben in der Spalte K.
Die Werte sollten in die nächsten freien Zelle (A) der Tabelle2 übertragen werden.
Der Name der Tabelle ist Tabelle2.
Gruß
fedjo
es sind Eingaben in der Spalte K.
Die Werte sollten in die nächsten freien Zelle (A) der Tabelle2 übertragen werden.
Der Name der Tabelle ist Tabelle2.
Gruß
fedjo
Antwort 3 von Hajo_Zi
Hallo Fedjo,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
´**************************************************
´* H. Ziplies *
´* 27.08.06 *
´* erstellt von Hajo.Ziplies@web.de *
´**************************************************
Dim RaBereich As Range, RaZelle As Range
Dim LoLetzte As Long
´ Bereich der Wirksamkeit
Set RaBereich = Range("K:K")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
If RaZelle = "RKL" Then
With Worksheets("Tabelle2")
LoLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Range("A" & RaZelle.Row & ":F" & RaZelle.Row).Copy .Cells(LoLetzte, 1)
End With
End If
End If
Next RaZelle
Set RaBereich = Nothing
End Sub
Der Code gehört unter die Tabelle.
Gruß Hajo
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
´**************************************************
´* H. Ziplies *
´* 27.08.06 *
´* erstellt von Hajo.Ziplies@web.de *
´**************************************************
Dim RaBereich As Range, RaZelle As Range
Dim LoLetzte As Long
´ Bereich der Wirksamkeit
Set RaBereich = Range("K:K")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
If RaZelle = "RKL" Then
With Worksheets("Tabelle2")
LoLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1
Range("A" & RaZelle.Row & ":F" & RaZelle.Row).Copy .Cells(LoLetzte, 1)
End With
End If
End If
Next RaZelle
Set RaBereich = Nothing
End Sub
Der Code gehört unter die Tabelle.
Gruß Hajo
Antwort 4 von fedjo
Hallo Hajo,
funktioniert super, bin begeistert.
Vielen Dank
und schönen Sonntag
Gruß
fedjo
funktioniert super, bin begeistert.
Vielen Dank
und schönen Sonntag
Gruß
fedjo
Antwort 5 von nighty
hi all :)
oder so
gruss nighty
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 11 And Cells(Target.Row, Target.Column) = "RKL" Then
Sheets(2).Range("A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1 & ":F" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1) = _
Sheets(1).Range("A" & Target.Row & ":F" & Target.Row).Value2
End If
End Sub
oder so
gruss nighty
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 11 And Cells(Target.Row, Target.Column) = "RKL" Then
Sheets(2).Range("A" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1 & ":F" & Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1) = _
Sheets(1).Range("A" & Target.Row & ":F" & Target.Row).Value2
End If
End Sub
Antwort 6 von nighty
hi hajo :)
warum so kompliziert ?
a=b reicht doch
gruss nighty
warum so kompliziert ?
a=b reicht doch
gruss nighty
Antwort 7 von Hajo_Zi
Hallo nighty
Fülle Bei Deinem Code mal G11:K23 mit dem vorgegeben Wert. In Excel ist es möglich mehrere Zellen mit einmal zu füllen.
Gruß Hajo
Fülle Bei Deinem Code mal G11:K23 mit dem vorgegeben Wert. In Excel ist es möglich mehrere Zellen mit einmal zu füllen.
Gruß Hajo
Antwort 8 von fedho
Hi nighty,
habe deinen Cote getestet, funktioniert genauso gut werde in wohl wegen der kürze verwenden.
Danke
Gruß
fedjo
habe deinen Cote getestet, funktioniert genauso gut werde in wohl wegen der kürze verwenden.
Danke
Gruß
fedjo

