Microsoft Excel

Herbers Excel/VBA-Archiv

Makro: Zeile ausschneiden wenn | Herbers Excel-Forum


Betrifft: Makro: Zeile ausschneiden wenn von: cfrei
Geschrieben am: 25.02.2010 15:35:39

Hallo,

ich möchte bitte mit einem Makro folgendes erreichen.

Ich habe zwei Tabellen KostenA und KostenB.

Das Makro soll in der Tabelle KostenA in der Spalte C nach den Werten "X" suchen und alle Zeilen in der sich das "X" befindet komplett ausschneiden. Diese ausgeschnittene Zeilen sollen in der Tabelle KostenB eingefügt werden. Da in der Tabelle KostenB, fortlaufend neue Zeilen eingefügt werden, sollte das Makro zunächste nach der nächsten freien Zeile suchen und dann erst einfügen.

Für Eure Hilfe bedanke ich mich im Voraus.

Viele Grüße

Claus

  

Betrifft: AW: Makro: Zeile ausschneiden wenn von: ing.grohn
Geschrieben am: 25.02.2010 16:52:19

Hallo Claus,
vielleicht geht folgendes:

Sub ZeilenUebertragen()
' Makro am 25.02.2010 von Ing.Grohn aufgezeichnet
Dim Zeile As Long
Dim Anzahl1 As Long
Dim Anzahl2 As Long
Dim sZeile As String

Sheets("Tabelle1").Activate
I = 1
Anzahl1 = ActiveSheet.UsedRange.Rows.Count
For Zeile = 1 To Anzahl1
    Sheets("Tabelle1").Activate
    If Cells(Zeile, 3).Value = "x" Then     ' "3"  wg. Spalte C
      sZeile = LTrim(Str(Zeile))
      Rows(sZeile & ":" & sZeile).Select
      Selection.Copy
      Sheets("Tabelle2").Select
      Anzahl2 = ActiveSheet.UsedRange.Rows.Count
      Range("A" + LTrim(Str(Anzahl2 + 1))).Select
      ActiveSheet.Paste
   End If
 Next Zeile
End Sub
MfG
Albrecht


  

Betrifft: AW: Makro: Zeile ausschneiden wenn von: cfrei
Geschrieben am: 25.02.2010 17:14:37

Funktioniert einwandfrei - VIELEN DANK für die schnelle Antwort!

Ich habe copy mit cut ersetzt damit die Zeilen ausgeschnitten werden.

Wie könnte ich zusätzlich die ausgeschnittenen Zeilen gleich löschen damit ich in der kompletten Tabelle keine leeren Zeilen haben muss? VIELEN DANK IM VORAUS.

Viele Grüße

Claus Freiwald


  

Betrifft: AW: Makro: Zeile ausschneiden wenn von: ing.grohn
Geschrieben am: 25.02.2010 17:31:43

Hallo Claus,
vielleicht hiermit:
Selection.EntireRow.Delete
nach selection.copy
MfG
Albrecht