Clever-Excel-Forum

Normale Version: Makro Zeilen auf neues Tabellenblatt kopieren wenn Bedingung erfüllt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Habe jetzt mit VBA gespielt und mit folgendem Beispiel schon einmal etwas erreicht. Problem dabei ist dass er mit alle Zeilen kopiert in denen etwas ist. Ich brauche ja genau das Gegenteil, also alle Zellen in denen "Nichts" steht. Smile Ich finde aber keine VBA Variante im Netz, wo mein Beispiel aufgeführt wurde. Könnte jetzt zwar meine Zeileninhalte anpassen, also alles leerlassen wenn gut und nur reinschreiben, wenn es kopiert werden soll, aber ich brauche diese Formel dann auch für andere Blätter und dann geht es wieder nicht.

Nun denn, wollte es mal reinstellen, vielleicht hilft es ja anderen oder es gibt Leute mit VBA Kenntnissen, die hier helfen und erweitern können. Wäre nämlich auch gut, wenn das Blatt bei Aufruf immer erst wieder gelöscht wird... (habe natürlich die Namen der Blätter angepasst im Script...)

Sub AA_Test() 
  Dim rngZ As Range 
  On Error Resume Next 
  Set rngZ = Worksheets("Tabelle1").Columns("B").SpecialCells(xlCellTypeConstants) 
  If Not rngZ Is Nothing Then rngZ.EntireRow.Copy Worksheets("Tabelle2").Range("A1") 
End Sub
Habe noch ein besseres Makro gefunden. Jetzt fehlt mir nur noch die Erweiterung das "Blatt zu löschen" bei Auswahl und noch das eben dieses Makro ausgeführt wird bei Auswahl des Tabellenblattes

Sub Zeilen_kopieren()
      Dim a As Long, i As Long
      Application.ScreenUpdating = False
      a = 3
      For i = 3 To 100
           With Worksheets("Abwicklung")
                   If .Cells(i, "S") = "" Then
                       .Rows(i).Copy _
                              Destination:=Worksheets("Aufmass").Rows(a)
                       a = a + 1
                   End If
           End With
      Next i
End Sub
Hallöchen,

bei Blattauswahl nutzt Du das Worksheet_Activate - Ereignis, zu finden im Codemodul des Tabellenblattes.
Soll es für die gesamte Arbeitsmappe gelten, dann nimmst DU in DieseArbeitsmappe das Ereignismakro Workbook_SheetActivate.
Zum Löschen eines Blattes kannst Du auch mal den Makrorekorder benutzen und die Befehlszeile ermitteln Smile
Seiten: 1 2