Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

selbe Zeile auf anderem Blatt löschen etc.

selbe Zeile auf anderem Blatt löschen etc.
16.11.2007 17:22:00
Peter
Hallo alle zusammen,
bis jetzt habe ich mein Problem folgendermaßen gelöst:
Ich habe die betreffende Zeile im Blatt "Cashflow" markieren müssen, habe dann über eine Schaltfläche den Code gestartet der die gewünschten Befehle ausgeführt hat (Zeile löschen, sortieren und andere). Außerdem wurden die selben Befehle für die selbe Zeile im Blatt "MwSt" durchgeführt. (habe immer erst das entsprechende Worksheet aktiviert und dann mit "ActiveCell.EntireRow.Delete", "lngAb = ActiveCell.Row" und "ActiveSheet.Rows(lngAb).Delete" gearbeitet) Das hat mir bis jetzt ausgereicht. Jetzt haben sich neue Aufgaben ergeben, die es nötig machen einen anderen Weg zu gehen. Ich vergebe jetzt jeder Zeile in Spalte A eine Nummer, die den Inhalt jeder Zeile (das sind in diesem Fall Zahlungen) eindeutig macht. Hat eine Zahlung im Blatt "Cashflow" z.B. die Nummer 10 so hat die dazugehörige Zahlung im Blatt "MwSt" auch die Nummer 10.
Mein Problem: ich weiß nicht wie ich im Code sage: sehe im Blatt "Cashflow" in markierter Zeile in Spalte A nach was für eine Nummer da steht und mache dann dies und das (löschen etc.) und mache dann auch dies und das im Blatt "MwSt" in der Zeile mit der selben Nummer in Spalte A wie sie im Blatt "Cashflow" war. Die Abfragen, ob eine Zeile markiert ist etc., sollen natürlich bestehen bleiben.
Mein alter Code:

Private Sub Zeile_loeschen_Click()
Dim cell As Range, lngAb As Long, lngAnz As Long
SpeedUp True
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  7 Then
If ActiveCell.Column = 1 Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile loeschen?", vbOKCancel + vbQuestion, _
"Achtung!") = 1 Then
ActiveCell.EntireRow.Delete
lngAb = ActiveCell.Row
lngAnz = Cells(65536, 1).End(xlUp).Row - lngAb + 2
For Each cell In Rows(lngAb - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
End If
Else
MsgBox "Sie haben keine Zeile markiert!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
Else
MsgBox "Sie können diese Zeile nicht loeschen!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
ActiveSheet.Protect Password:="Peter"
Worksheets("MwSt").Activate
ActiveSheet.Unprotect Password:="Peter"
'selbe Zeile aktivieren wie in Worksheet "Cashflow"
ActiveSheet.Rows(lngAb).Delete
'lngAb = ActiveCell.Row
lngAnz = Cells(65536, 1).End(xlUp).Row - lngAb + 2
For Each cell In Rows(lngAb - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
ActiveSheet.Protect Password:="Peter"
Worksheets("Cashflow").Activate
SpeedUp False
End Sub


Danke im Voraus
Grüße aus Berlin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: selbe Zeile auf anderem Blatt löschen etc.
16.11.2007 20:40:00
Gerd
Hallo Peter,
meinst Du so ?

Sub test2()
If Worksheets(1).Name = ActiveSheet.Name Then
With Worksheets(2)
On Error Resume Next
.Rows(.Columns(1).Find(ActiveCell.Value, lookat:=xlWhole, LookIn:=xlValues).Row).Delete
On Error GoTo 0
End With
End If
Rows(ActiveCell.Row).Delete
End Sub


Gruß Gerd

AW: selbe Zeile auf anderem Blatt löschen etc.
17.11.2007 13:40:00
Peter
Hallo Gert,
deinen Code verstehe ich nicht ganz. Meine Kenntnisse sind wohl nicht so gut. Ich habe aber versucht einen Teil in meinen Code einzubauen, funktioniert aber noch nicht. Kannst du dir das mal ansehen?!

Private Sub Zeile_loeschen_Click()
Dim cell As Range, lngAb As Long, lngAnz As Long
SpeedUp True
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  7 Then
If ActiveCell.Column = 1 Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile loeschen?", vbOKCancel + vbQuestion, _
"Achtung!") = 1 Then
ActiveCell.EntireRow.Delete
lngAb = ActiveCell.Row
lngAnz = Cells(65536, 1).End(xlUp).Row - lngAb + 2
For Each cell In Rows(lngAb - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
With Worksheets("MwSt")
On Error Resume Next
.Rows(.Columns(1).Find(ActiveCell.Value, lookat:=xlWhole, LookIn:=xlValues).Row). _
Delete
lngAnz = Cells(65536, 1).End(xlUp).Row - lngAb + 2
For Each cell In Rows(lngAb - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
On Error GoTo 0
End With
End If
Else
MsgBox "Sie haben keine Zeile markiert!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
Else
MsgBox "Sie können diese Zeile nicht loeschen!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
ActiveSheet.Protect Password:="Peter"
SpeedUp False
End Sub


Grüße aus dem nass-kalten Berlin

Anzeige
Zeile mit selb. Nr. in Spalte 1 auf and. Blatt lö.
19.11.2007 17:41:00
Peter
Hallo,
habs noch mal anders probiert, Befehle (löschen, Zellen mit Formeln kopieren) werden im zweiten Blatt ("MwSt") nicht durchgeführt. Warum?

Private Sub Zeile_loeschen_Click()
Dim cell As Range, lngAb As Long, lngAnz As Long
SpeedUp True
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  7 Then
If ActiveCell.Column = 1 Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile loeschen?", vbOKCancel + vbQuestion, _
"Achtung!") = 1 Then
If Worksheets("Cashflow").Name = ActiveSheet.Name Then
With Worksheets("MwSt")
On Error Resume Next
.Rows(.Columns(1).Find(ActiveCell.Value, lookat:=xlWhole, LookIn:=xlValues). _
Row).Delete
On Error GoTo 0
End With
End If
Rows(ActiveCell.Row).Delete
'ActiveCell.EntireRow.Delete
lngAb = ActiveCell.Row
lngAnz = Cells(65536, 1).End(xlUp).Row - lngAb + 2
For Each cell In Rows(lngAb - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
End If
Else
MsgBox "Sie haben keine Zeile markiert!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
Else
MsgBox "Sie können diese Zeile nicht loeschen!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
ActiveSheet.Protect Password:="Peter"
SpeedUp False
End Sub


Grüße aus Berlin

Anzeige
funktioniert fast, noch kleines Problem
20.11.2007 13:31:02
Peter
Hallo,
funktioniert jetzt bis auf ein kleines Problem.
Der Code für das kopieren der Zellen in denen Formeln stehen ist im Moment an die Bedingung der aktiven Zeile gekoppelt. Wenn ich, bevor ich den ganzen Code auslöse, im Blatt "MwSt" per mausklick die betreffende Zeile markiert habe und dann aus dem Blatt "Cashflow" (nur von dort ist es möglich den Code auszulösen) den Code auslöse funktioniert alles. Im Blatt "MwSt" ist aber normalerweise nie die richtige Zeile markiert. Dort muß ab der Zeile die gelöscht wurde (bzw. eine darüber)(die mit der gleichen Nummer in Spalte A wie im Blatt "Cashflow" in Spalte A) der Code für das kopieren der Zellen mit Formelinhalt passieren. Die betreffende Stelle habe ich markiert. Kann mir jemand sagen was dort stehen muß?

Private Sub Zeile_loeschen_Click()
Dim cell As Range, lngAb As Long, lngAnz As Long
SpeedUp True
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  7 Then
If ActiveCell.Column = 1 Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile loeschen?", vbOKCancel + vbQuestion, _
"Achtung!") = 1 Then
'If Worksheets("Cashflow").Name = ActiveSheet.Name Then
Worksheets("MwSt").Activate
ActiveSheet.Unprotect Password:="Peter"
With Worksheets("MwSt")
On Error Resume Next
.Rows(.Columns(1).Find(ActiveCell.Value, lookat:=xlWhole, LookIn:=xlValues). _
Row).Delete
On Error GoTo 0
End With
' an dieser Stelle sollte für "lngAb = ActiveCell.Row" etwas anderes stehen
lngAb = ActiveCell.Row
lngAnz = Cells(65536, 1).End(xlUp).Row - lngAb + 2
For Each cell In Rows(lngAb - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
'End If
ActiveSheet.Protect Password:="Peter"
Worksheets("Cashflow").Activate
Rows(ActiveCell.Row).Delete
'ActiveCell.EntireRow.Delete
'lngAb = ActiveCell.Row
lngAnz = Cells(65536, 1).End(xlUp).Row - lngAb + 2
For Each cell In Rows(lngAb - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
End If
Else
MsgBox "Sie haben keine Zeile markiert!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
Else
MsgBox "Sie können diese Zeile nicht loeschen!"
ActiveSheet.Protect Password:="Peter"
Exit Sub
End If
ActiveSheet.Protect Password:="Peter"
SpeedUp False
End Sub


Danke im Voraus
Grüße aus Berlin

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige