Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1816to1820
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

Spaltenformatierung "springt"

Spaltenformatierung "springt"
10.03.2021 14:34:42
Tim
Hallo zusammen,
ich habe eine Excel-Liste, in der täglich Eintragungen vorgenommen werden, Datei: https://www.herber.de/bbs/user/144625.xlsm
Entweder werden Einträge hinzugefügt, geändert oder gelöscht. Diese Liste wird dann mit VBA "geklont" in eine neue Datei, die dann per E-Mail verschickt wird.(auch mit VBA) Die Ursprungsarbeitsliste bleibt bestehen, einige Dinge habe ich per Excel-Formeln (bedingte Formatierungen, beim Überprüfen für heute Datum, etc umgesetzt). Und ich glaube hier liegt auch das folgende Problem:
Mein (aus meiner Sicht als eher Anwender und VBA-Beginner) Problem sind hier die Datumsformatierungen in der Spalte B, die mir Kopfzerbrechen machen:
- Füge ich einen neuen Eintrag am Ende der Tabelle ein, und möchte in Spalte B das aktuelle Datum mit STRG + . eintragen, so erhalte ich das heutige Datum in dem Format TT.MM.JJJJ.
- Führe ich das Sortier-Makro aus, ist es auch kein Problem nach dem Datum zu sortieren.
- Öffne ich die Ursprungsdatei auf einem anderen Rechner, habe ich ab und an das Forma als MM.TT:JJ;@ wenn ich "Zellen formatieren" aufrufe. Woher dieses Format stammt, weiss ich nicht.
Um den Fehler nachzuvollziehen, habe ich die Spate B als "Text" anzeigen lassen, dann wird das Datum in die fortlaufende Zahl umgewandelt. Bis auf die Einträge, die ich per STRG + . eingetragen habe oder über die Formelleiste. Wenn ich diese Zellen ändern will, erscheint das gelbe Hinweisschild "Text formatiert bzw. Apostroph" vorangestellt, siehe Beispieldatei.
Somit kommt es zu Kraut und Rüben in der Formatierung bzw. nach der Sortierung werden sowohl deutsche Datumsformate als auch die Formate MM.TT.JJ;@ ausgegeben.
Meine Fragen:
a) Wie kann ich Spalte B formatieren, dass es keine Probleme bei der Eintragung gibt und ich immer das gleiche Format als TT.MM.JJ habe? Eine Eingabemaske geht leider nicht.
b) hat es was mit der bedingten Formatierung zu tun, die ich verwende?
Für Vorschläge und Lernhinweise bin ich dankbar.
Viele Grüße
Tim

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenformatierung "springt"
12.03.2021 14:59:20
Piet
Hallo Tim
ich nehme an die Kollegen sind an deinen Thread nicht rangegangen weil der Code lang und sehr komplex ist.
Mit Intelligente Tabellen kennen ich mich nicht aus, fand aber einen Select Fehler!! Der Bereich den du am Anfang festgelegt hast stimmt nicht, wenn man ein Exit Sub einfügt und sich den Bereich optisch anschaut. Der passt einfach nicht!!! Geht nur bis Spalte C. Der Rest wird NICHT sortiert!!
Seltsamerweise konnte ich den Bereich in der 2. Withe Klammer nicht so festlegen: - With .DataBodyRange.Sort
dann kommt ein Laufzeitfehler! Macht man es vorher mit Select funktioniert der Code erstaunlicherweise!! Frag mich bitte nicht warum das so ist, ich weiss es selbst nicht!
Für die Column Weite brauchst du KEIN With, ich habe dir ein Beispiel gezeigt. Unbedingt prüfen musst du aber bitte den letzten Range Bereich zum Mail versenden. Den könnte ich verstellt haben. Dann musst du ihn neu festlegen.
Wie gesagt, mit Intelligenten Tabellen habe ich selbst NIE gerbeitet, da bin ich als Ratgeber noch Laie. Weil aber kein Kollege hier angefangen hat habe ich jetzt den Thread für dich eröffnet.
mfg Piet
'    Range("A9").Select
'    Range(Selection, Selection.End(xlToRight)).Select
'    Range(Selection, Selection.End(xlToRight)).Select
'    Range(Selection, Selection.End(xlToRight)).Select
'    Range(Selection, Selection.End(xlDown)).Select
'***  Fehler beim Sortier Bereich - Wird nur bis Spalte C festgelegt!!  ****
'** Exit Sub
'alle bisherigen Sortierungen werden gelöscht
With ActiveWorkbook.Worksheets("Übersicht").ListObjects("Tabelle1")
.Sort.SortFields.Clear
'Sortierung nach Kennzeichen "Zustand Einrichtung": hinterlegte Sortierungsreihenfolge:  _
geschlossen, Teilquarantäne
.Sort.SortFields.Add Key:=Range("Tabelle1[Zustand Einrichtung]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'Sortierung nach Gruppen aufsteigend
.Sort.SortFields.Add Key:=Range("Tabelle1[Gruppe]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'Sortierung nach Kennzeichen "Meldungsart": hinterlegte Sortierungsreihenfolge: Neumeldung  _
vor Änderung vor Leer
.Sort.SortFields.Add Key:=Range("Tabelle1[Meldungsart]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="Neumeldung,Änderung",  _
DataOption:=xlSortNormal
'Sortierung nach Kennzeichen "Zustand Einrichtung": hinterlegte Sortierungsreihenfolge:  _
geschlossen, Teilquarantäne
.Sort.SortFields.Add Key:=Range("Tabelle1[Datum der " & Chr(10) & "Meldung]"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
'Sortierung nach Bundesland alphabetisch aufsteigend
.Sort.SortFields.Add Key:=Range("Tabelle1[BL]"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'Ausrichtung der einzelnen Tabellenspalten
.DataBodyRange.Select
With .Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
'Gruppe   **  Code OHNE With, kürzere Schreibweise!!
Range("A:A").ColumnWidth = 7

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige