Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formatierung in nächste Zeile übernehmen

Formatierung in nächste Zeile übernehmen
03.05.2007 14:48:00
Peter
Hallo alle zusammen,
mein Code kopiert die Zellinhalte (Formeln, Formate etc.) in den Spalten in den Formeln stehen bis ans Ende der Tabelle, wenn eine Zeile in der Tabelle gelöscht wurde.
Ich möchte auch das die Formate in jeder Spalte bis ans Ende der Tabelle kopiert werden, wenn eine Zeile gelöscht wurde.
Mein Code:
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 2
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
Wie ich das mit den Formaten lösen kann weiß ich nicht.
Kann mir jemand helfen?
Grüße aus Berlin

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung in nächste Zeile übernehmen
03.05.2007 16:58:58
Erich
Hallo Peter,
probier mal

Sub tst()
Dim a As Long, cell As Range
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 2
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas) ',23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
Rows(ActiveCell.Row - 1).Copy
Range(Rows(ActiveCell.Row), Rows(ActiveCell.Row + a - 1)).PasteSpecial _
Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'   ActiveCell.Select
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Formatierung in nächste Zeile übernehmen
03.05.2007 17:32:00
Peter
Hallo Erich,
nach dem testen habe ich festgestellt, daß dieser Lösungsweg nicht der richtige ist.
Ein besserer Lösungsansatz wäre, wenn man in meinen bestehenden Code nicht den ganzen Zellinhalt kopiert, sondern nur die Formel. Kannst du den Code dem entsprechend ändern?
vielleicht so etwas ähnliches:
PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Ich kann das nicht einbauen!
mein Code:

Private Sub Zeile_löschen_Click()
Dim cell As Range
Dim a As Long
SpeedUp (True)
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  6 Then
If ActiveCell.Column = 1 And IsDate(ActiveCell) Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile löschen?", vbOKCancel + _
vbQuestion, "Achtung!") = 1 Then
ActiveCell.EntireRow.Delete
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 2
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
End If
Else
MsgBox "Sie haben keine Zeile markiert!"
End If
Else
MsgBox "Sie können diese Zeile nicht löschen!"
End If
ActiveSheet.Protect Password:="Peter"
SpeedUp (False)
End Sub


Danke
Grüße aus Berlin

Anzeige
AW: Formatierung in nächste Zeile übernehmen
03.05.2007 20:38:32
Erich
Hallo Peter,
meinst du so?

Private Sub Zeile_löschen_Click()
Dim cell As Range, lngAb As Long, lngAnz As Long
SpeedUp True
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  6 Then
If ActiveCell.Column = 1 And IsDate(ActiveCell) Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile löschen?", 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 'Destination:=cell.Offset(1, 0).Resize(lngAnz, 1)
MsgBox cell.Offset(1, 0).Resize(lngAnz, 1).Address
cell.Offset(1, 0).Resize(lngAnz, 1).PasteSpecial _
Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Next cell
MsgBox Range(Rows(lngAb), Rows(lngAb + lngAnz - 1)).Address
Rows(lngAb - 1).Copy
Range(Rows(lngAb), Rows(lngAb + lngAnz - 1)).PasteSpecial _
Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, _
Transpose:=False
Application.CutCopyMode = False
ActiveCell.Select
End If
Else
MsgBox "Sie haben keine Zeile markiert!"
End If
Else
MsgBox "Sie können diese Zeile nicht löschen!"
End If
ActiveSheet.Protect Password:="Peter"
SpeedUp False
End Sub

Was wird damit eigentlich nicht mehr kopiert?
(Ich habe das nicht getestet, würde mich interessieren.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Formatierung in nächste Zeile übernehmen
04.05.2007 11:51:16
Peter
Hallo Erich,
ich habe einiges aus deinem Code rausgenommen. So wie er jetzt ist, macht er genau das was ich wollte.

Private Sub Zeile_löschen_Click()
Dim cell As Range, lngAb As Long, lngAnz As Long
SpeedUp True
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  6 Then
If ActiveCell.Column = 1 And IsDate(ActiveCell) Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile löschen?", 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!"
End If
Else
MsgBox "Sie können diese Zeile nicht löschen!"
End If
ActiveSheet.Protect Password:="Peter"
SpeedUp False
End Sub


Vorher wurden nach dem löschen einer Zeile auch die Formate (in den Spalten in denen Formeln stehen) bis ans Ende der Tabelle kopiert. Wenn eine Zeile im Bereich unter der zu löschenden Zeile z.B. gelb markiert war, so wurde die Markierung in der Spalte der Formeln durchbrochen bzw. die Formatierung der kopierten Zelle übernommen.
Danke Vielmals
Grüße aus Berlin

Anzeige
AW: Formeln in nächste Zeile übernehmen
04.05.2007 13:48:00
Erich
Hi Peter,
dass du die Formate gar nicht mehr kopieren wolltest, hatte ich nicht kapiert. Deshalb meine Nachfrage.
Danke für deine Antwort und: Schönes Wochenende!
Grüße von Erich aus Kamp-Lintfort

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige