Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen in anderes Tabellenblatt kopieren

Betrifft: Zeilen in anderes Tabellenblatt kopieren von: Jürgen Rebok
Geschrieben am: 07.08.2008 11:05:49

Hallo Excel-Profis,

ich suche eine VBA-Lösung zu folgendem Problem:

Ich möchte aus Tabelle1 (Max. 100 Zeilen) die kompletten Zeilen, wenn in Spalte J ein x steht,
in Tabelle3 kopieren, aber nur die Werte, keine Formeln, Formatierungen, Verknüpfungen usw.!
In die Tabelle3 sollen die eingefügten Zeilen aus Tabelle1 immer die erste freie Stelle geschrieben
werden.
Noch zur Info: Die Spaltenzahl (A-J) in Tabelle1 bleibt immer gleich, nur die Zeilenzahl kann sich
ändern.
Eine ähnliche Lösung existiert bereits im Archiv, hier werden jedoch alle Formatierungen usw.
mit übertragen!

Wer kann mir hier weiterhelfen?

Gruß Jürgen

  

Betrifft: AW: Zeilen in anderes Tabellenblatt kopieren von: David
Geschrieben am: 07.08.2008 11:14:50

Eine ähnliche Lösung existiert bereits im Archiv, hier werden jedoch alle Formatierungen usw.
mit übertragen!


Wenn du dazu schon ein Makro gefunden hast, kannst du die entsprechende Zeile in dem Makro, das die Zeilen in die neue Tabelle einfügt, nicht derart anpassen, dass nur die Werte eingefügt werden?

so nach dem Schema: ....PasteSpecial Paste:=xlPasteValues...

Gruß

David


  

Betrifft: AW: Zeilen in anderes Tabellenblatt kopieren von: Jürgen Rebok
Geschrieben am: 07.08.2008 11:24:23

Hallo David,

das geht leider nicht, weil das Makro ganz anders aufgebaut ist (siehe unten):

Sub test()
For i = 1 To Cells(Rows.Count, 8).End(xlUp).Row
If Cells(i, 8).Value = "x" Then
Rows(i).Copy Destination:=Sheets("Tabelle2").Cells(Sheets("Tabelle2").Cells(Rows.Count, 1).End( _
xlUp).Row + 1, 1)
End If
Next
End Sub



Ich bin auch nicht so fitt, dass ich das Makro komplett umbauen könnte.

Gruß Jürgen


  

Betrifft: AW: Zeilen in anderes Tabellenblatt kopieren von: David
Geschrieben am: 07.08.2008 11:33:59

versuchs doch mal so:

Rows(i).Copy Destination:=Sheets("Tabelle2").Cells(Sheets("Tabelle2").Cells(Rows.Count, 1)
.End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks 
:=False, Transpose:=False



bin aber auch Laie bei VBA, deswegen ohne Garantie.

Gruß

David


  

Betrifft: AW: Zeilen in anderes Tabellenblatt kopieren von: Ramses
Geschrieben am: 07.08.2008 11:43:13

Hallo

probier mal

Sub test()
Dim i As Long, tLR As Long
Dim tarWks As Worksheet, srcWks As Worksheet
Set srcWks = Worksheets("Tabelle1")
Set tarWks = Worksheets("Tabelle2")
With srcWks
    For i = 1 To .Cells(.Rows.Count, 10).End(xlUp).Row
        If .Cells(i, 10).Value = "x" Then
            tLR = tarWks.Cells(Rows.Count, 1).End(xlUp).Row + 1
            Debug.Print tLR
            With tarWks
                .Range(.Cells(tLR, 1), .Cells(tLR, 10)).Value = srcWks.Range(srcWks.Cells(i, 1), _
 srcWks.Cells(i, 10)).Value
            End With
        End If
    Next i
End With
End Sub



Gruss Rainer


  

Betrifft: AW: Zeilen in anderes Tabellenblatt kopieren von: Jürgen Rebok
Geschrieben am: 07.08.2008 12:10:46

Hallo David und Rainer,

Danke für eure Hilfe.

Bei dem abgeänderten Makro von David kommt die Fehlermeldung:
"Fehler beim kompilieren. Syntaxfehler" !!

Aber das Makro von Rainer funktioniert einwandfrei.

Nochmals besten Dank.

Gruß Jürgen


  

Betrifft: AW: einfache und schnelle lösung von: Daniel
Geschrieben am: 07.08.2008 12:28:06

Hi
Probier mal das Makro hier:

Sub kopieren()
With Sheets("Tabelle1").UsedRange
    .AutoFilter Field:=10, Criteria1:="x"
    .Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy
End With
Sheets("Tabelle3").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Sheets("Tabelle1").UsedRange.AutoFilter
End Sub




allerdings sollte die erste Zeile in Tabelle1 eine Überschriftenzeile sein.

Gruß, Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen in anderes Tabellenblatt kopieren"