Wie kann ich in Excel eine Zeile mit VBA ausblenden und verschieben?
Hallo,
wenn eine 1 in der Zeile L oder M oder N steht, soll die Zeile ausgeblendet und im Blatt "Monat" eingefügt werden.
Was mache ich hier falsch?
Sub Copy()
Sheets("Offen").Select
LetzteZeile = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
For i = 1 To LetzteZeile
If Cells(i, 12) = 1 Then
Rows(i & ":" & i).Select
Selection.Copy
Sheets("Monat").Select
LetzteZeileZwei = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
LetzteZeileZwei = LetzteZeileZwei + 1
Rows(LetzteZeileZwei & ":" & LetzteZeileZwei).Select
ActiveSheet.Paste
Sheets("Offen").Select
Section.EntireRow.Hidden = True
End If
Next i
End Sub
2 Antworten
Mal sehen ob ich verstehe was du machen willst, ich sags gleich, ich bin kein Freund vom Copy/Paste in VBA.
Sub Copy()
Sheets("Offen").Select
LetzteZeile = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
For i = 1 To LetzteZeile
If Cells(i, 12) = 1 Then
Rows(i & ":" & i).Select
Selection.Copy
Sheets("Monat").Select
LetzteZeileZwei = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
LetzteZeileZwei = LetzteZeileZwei + 1
Rows(LetzteZeileZwei & ":" & LetzteZeileZwei).Select
ActiveSheet.Paste
Sheets("Offen").Select
'Hier haperts
'Wo speicherst du die Row ab die du hiden willst
'Erstelle eine Variable die für die Row zuständig ist
'weil Excel nicht wissen kannst welche Zeile gemeint 'ist.
Selection.EntireRow.Hidden = True
End If
Next i
End Sub
Sind Quell und Zielbereich gleich groß dann kann man einfach "zuordnen".
Worksheets("Ziel").Rows(1:1).Value = Worksheets("Quelle").Rows(2:2).Value
Nahezu jeden Ablauf kann man ohne Select, Activate, etc lösen was VIEL Zeit spart im Makro Ablauf und auch diverse Events nicht auslöst, die ggf für andere Zwecke gebraucht werden.
Ggf landet dieser Befehl auf der falschen Zeile
End(xlUp).Row..
Dieser arbeitet NUR DANN zuverlässig wenn man KEINE Filterung aktiv hat.
Es ist also ratsam zunächst die möglichen Autofilter per Makro auszuschalten.
Deine Überprüfung ob in der Spalte L eine 1 eingetragen wird findet im Worksheets Change event statt.
Click Mal im Projekt Explorer auf das Object welches dem Blatt entspricht.
Dann im Procedur DropDwon Worksheets_Change aus wählen.
nun in dieser Prozedur die Spalte prüfen. UND Target.Value = 1
==
Dein Copy Befehl ist nicht optimal.
GUten Tag, sorry ich kann dir nicht folgen....ich möchte nur wenn in der Spalte L die "1" eingetragen wurde, dass die Zeile AUsgeblendet wird und im "Monat" eingetragen wird :-)