Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
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
Inhaltsverzeichnis

Formatierungen sollen stehen bleiben

Formatierungen sollen stehen bleiben
06.02.2020 08:04:05
MaBlu
Guten Morgen
Ich habe ein Problem mit dem übertragen der Daten von der ToDo-Liste auf die ToDoerledigte,
das Übertragen geht nur die Formatierungen und Formeln werden gelöscht in der ToDo Liste, diese sollten stehen bleiben, und nicht verloren gehen.
Das selbe Problem habe ich auch wenn ich eine Zeile einfügen möchte! Diese wird eingefügt aber leer, ohne Formatierung und Formel.
Was müsste man hier tun? Das Problem hatte ich bereits hier mal gepostet aber es wurde vor der Lösung ins Archiv verschoben?
https://www.herber.de/bbs/user/135023.zip
Danke für eure Hilfe
Gruss MaBlu

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierungen sollen stehen bleiben
06.02.2020 10:40:38
Luschi
Hallo MaBlu,
aus der Excel-Online-Hilfe zu Range-ClearContents:
In diesem Beispiel werden Formeln und Werte aus den Zellen A1:G37 in Blatt1 gelöscht, die Zellenformatierung und die bedingte Formatierung bleiben jedoch erhalten.
Und wenn man im Tabellenblatt ein ListObjekt (formatierte Tabelle) hat, dann sollten die _ Zellreferenzen auf dieses Objekt zeigen und nicht auf feste statische t+Zelladressen, hier mal mein Code dazu:

Sub Erledigte()
'30.01.2020 Rudi Maintaire
'06.02.2020 changed by Luschi
Dim rg1 As Range, rg2 As Range, lstObj As ListObject, _
i As Integer
Application.EnableEvents = False
With ActiveSheet
.Unprotect ("")     ' Schutz auf Tabelle setzen
Set lstObj = .ListObjects("Tabelle3")
End With
With lstObj
i = .HeaderRowRange.Row    ' ZeilenNr. der ?berschrift
With .ListColumns("Status")  ' Spalte mit der ?berschrift 'Status'
''Debug.Print .DataBodyRange.Address
For Each rg1 In .DataBodyRange  ' alle Daten-Zellen der Status-Spalte durchlaufen
If rg1.Value = "erledigt" Then
'nur ben?tigten Zellbereich im Listobjectt z.B. 'A6:K6'
'und nicht ganze Teile!
Set rg2 = Worksheets("ToDo-Liste").ListObjects("Tabelle3").DataBodyRange.Rows( _
rg1.Row - i)
With Worksheets("ToDoerledigt")
rg2.Copy .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Cells(1, 1).Resize(1,  _
rg2.Columns.Count)
End With
rg2.Value = ""  'Zellen leeren nicht plattmachen
End If
Next rg1
End With
End With
' Schutz auf Tabelle setzen
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:= _
True
'slle selbstdefinierten Object zerst?ren
Set rg1 = Nothing: Set rg2 = Nothing: Set lstObj = Nothing
Application.EnableEvents = False
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Danke für die Infos
07.02.2020 17:32:52
MaBlu
Guten Abend Luschi
Zuerst, ich wollte dich keineswegs ärgern schon gar nicht wenn einem geholfen wird. Es ist aber nicht so wie du schreibst dass ich deinen Beitrag "Links liegen lasse", da ich aber ein Mann bin kann ich nur eines aufs mal tun und wenn man eine Fertige Lösung bekommt ist das halt der erste Griff!
So jetzt zu deinem Beitrag ja ich habe auch diesen in die Liste eingepasst und es Funktioniert tadellos. Da ich von Excel nur Grundkenntnisse habe hatte ich mit deiner Lösung etwas mehr Mühe zuerst mal zu verstehen was du mir geschrieben hast und so habe ich auch den Link auf die Online Hilfe nachgeschlagen
https://docs.microsoft.com/de-ch/office/vba/api/excel.range.clearcontents
und das wird mir in Zukunft auch einiges weiterhelfen, in deinem Makro hast du mir ja freundlicherweise auch noch Text dazu geschrieben was mir echt eine Hilfe ist um zu verstehen was da gemacht wird Danke.
Ich hoffe auf dein Verständnis dass ich als Laie nicht auf den ersten Blick erkenne was eine wahre Truvaille ist.
In diesem Sinne danke für deine schnelle Hilfe und wünsche dir ein schönes Wochenende
Gruss MaBlu
PS: es ist auch nicht das erste mal wo du mich in Beiträgen unterstützt hast! Thanks
Anzeige
AW: Formatierungen sollen stehen bleiben
06.02.2020 10:53:05
fcs
Hallo MaBlue,
nach meiner Meinung müssen die Anpassunen in folgende Richtungen gehen:
1. Kopieren nach ToDoerledigt
Nach dem kopieren einer Zeile nach ToDoerledigt müssen die Formeln in Spalte J und K durch ihre Werte erstzt werden, sonst ändert sich das Erledigt-Datum jeden Tag auf das aktuelle Datum.
2. Kopierte Zeile in ToDo-Liste leeren/löschen.
Was soll denn hier genau passieren?
a) komplette Zeile löschen?
oder
b) Inhalte löschen, aber nur in den Zellen ohne Formeln?
3. Einfügen neue Zeile in Blatt ToDo-Listen
In Spalte J steht in Zeile 6 eine andere Formel als weiter unten (hier mit Verweisen auf Zellen im Blatt "ToDoerledigt") in der Tabelle.
Die Formeln müssen in einer Spalte in einem als Tabelle definierten Bereich identisch strukturiert sein.
Beim Einfügen/Anfügen einer Zeile werden dann auch Formate/Formel korrekt übernommen.
4. Es gibt keinen Grund hier mehrere 1000 Leerzeilen vorzuformatieren.
5. Am besten sollte auch im Blatt "ToDoerledigt" der Datenbereich als Tabelle definiert werden. Dann müsste man eigentlich immer nur die Werte ohne Formate von der "ToDo-Liste" hierher ans Ende der Liste kopieren.
Nach Klärung meiner Fragen helfe ich dir bei der Anpassung der Makros.
LG
Franz
Anzeige
AW: Formatierungen sollen stehen bleiben
06.02.2020 13:25:18
MaBlu
Hallo Franz
Vielen Dank dass du mich hier Unterstützen möchtest, zu deinen Fragen
1.Das Kopieren nach ToDoerledigt macht das Makro Sub Erledigte() eigentlich ganz gut und meiner Meinung nach richtig. Einzig in Spalte J kommt die Formel mit, ist aber OK für mich wenn ich nämlich etwas wieder aufnehmen muss das versehentlich in die erledigt Liste gekommen ist kann ich es wieder auf Bearbeiten stellen, das Datum bleibt als Text.
2. wenn möglich sollten nur die Werte gelöscht werden Zellen A :I & K, dann wäre die Liste leer und könnte durch sortieren wieder bereitstehen für neue Termine mit allen Formaten.
b) danach sortieren so dass die Leere Zeile wider unten ist
3. Fehler der Formel in Spalte J muss ich noch korrigieren die Formel sollte immer gleich sein! Hier muss ich noch nachbessern. beim Hinzufügen einer Zeile sollten alle Formate und Formeln wie bisher mit eingefügt werden.
4.vor Formatieren, da weiss ich nicht wie ich das besser machen kann?
5.Das habe ich bewusst nicht so gemacht weil mein Gedanke der war hier werden viel mehr Daten landen als in der ToDo-Liste, und da hätte ich viel mehr vor Formatieren müssen.
Ich hoffe ich konnte mich klar ausdrücken wenn nicht Frage bitte nach, vorab besten Dank.
Freundliche Grüsse
MaBlu
Anzeige
AW: Formatierungen sollen stehen bleiben
06.02.2020 16:41:26
fcs
Hallo MaBlue,
ich hab deine Datei mal angepasst.
https://www.herber.de/bbs/user/135036.zip
- Kopiermakro,
- Neu Leerzeile inkl. Schaltfläche
- Sortiermakros
In "ToDoerledigt" ist jetzt eine Tabelle eingerichtet.
Probier mal, ob es so passt.
LG
Franz
AW: Sortieren macht noch Mühe
06.02.2020 18:11:57
MaBlu
Hallo Franz
Das ist ja Super, ich staune was man alles viel einfacher machen kann, ich wäre da noch 3 Wochen dran und sicher noch nicht so weit!
Ich habe mal alles soweit getestet aufgefallen ist mir dass das das Sortieren sich immer nur auf die ToDo-Liste bezieht, die ToDoerledigt lässt sich nicht Sortieren?
Was ist hier noch Falsch? Ich habs nicht gefunden?
Beim Sortieren ist mir auch aufgefallen wenn ich die Nummerierung so mach bekomme ich mehrere gleiche Nummern hast du mir hier Rat wie ich das ändern soll damit die Nummer nicht mehrfach vorkommt?
Aber sonst geht das viel schneller und ist genau das was ich erstellen wollte.
Vielen Dank für deine Freundliche und Kompetente Hilfe in meinem Projekt
ich hoffe du kannst meine Fragen noch beantworten.
Gruss
MaBlu
Anzeige
AW: Sortieren macht noch Mühe
06.02.2020 23:40:24
fcs
Hallo MaBlu,
ich hab deine Datei nochmals angepasst entsprechend deinen Hinweisen/WWünschen. Hinweise dazu findest du in der Textbox im Blatt "Stammdaten".
https://www.herber.de/bbs/user/135041.zip
LG
Franz
AW: Danke
07.02.2020 09:48:04
MaBlu
Hallo Franz
Vielen Dank für die tolle Hilfe, die Liste ist jetzt genau meinem Wunsch entsprechend ausgebaut
und ich kann meine Termine super eintragen (Erledigen muss ich sie trotzdem alleine...)
Aber immer wieder staune ich, was alles möglich ist mit Excel, wenn mann es Beherrscht!
Für deine grosse Arbeit ein Mächtiges DANKESCHööööööN
Gruss und ein schönes Wochenende
MaBlu
Anzeige
AW: Danke
07.02.2020 16:02:33
Luschi
Hallo MaBlu,
schade, daß Du meinen Beitrag total links liegen läßt, denn M$ hat diesen ListObjects viele, viele Methoden bzw. Properties spendiert, so daß fester SpaltenNr. wie
If .Cells(lngI, 8).Value = "erledigt" Then
oder so überhaupt nicht mehr erforderlich sind. Solltest Du mal Spalten einfügen/löschen, dann sind Anpassungen an dem funktionierenden Code von Franz manuell erforderlich, mit lstObj.ListColumns("Status") wird genau die Spalte angesprochen, die Du auswerten willst; aber das ist ja Dein Problem, wenn Du die Möglicheitem nicht nutzen willst.
Gruß von Luschi
aus klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige