Live-Forum - Die aktuellen Beiträge
Datum
Titel
25.10.2025 08:21:40
24.10.2025 18:10:41
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellformat ändern

Forumthread: Zellformat ändern

Zellformat ändern
27.05.2020 21:10:49
Christian
Hallo,
ich suche für folgendes Problem eine Lösung. Bitte helft mir.
Habe eine Tabelle, 17 Spalten, 1557 Zeilen.
Diese aktualisiere ich täglich mit am Ende stehendem, soweit funktionierendem Makro.
Jetzt habe ich seit heute das Problem, dass es in den Spalten C, F, J, L und P auch negative Zahlen gibt.
Das Makro gibt jedoch alles in diesen Spalten als Datum im Format TT.MM.JJJJ aus, mit anderen Worten statt diesen negativen Zahlen steht da nur ################.
Wie muss ich das Makro ändern, damit negative Zahlen auch als solche ausgegeben werden?
Und weiterhin alle positiven Zahlen als Datum.
In den anderen Spalten stehen entweder Text oder Zahlen im Format Zahl, alle anderen Spalten sollen so bleiben wie sie sind.
Danke für euren Rat
Christian

Sub Makro3()
Dim loLetzte As Long, j As Long, x As Long, lC As Long
Application.ScreenUpdating = False
With Worksheets("Ergebnis")
loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("B1:C1").Copy .Range("B1:C" & loLetzte)
.Range("B2:C" & loLetzte).Copy
.Range("B2:C" & loLetzte).PasteSpecial xlPasteValues
.Range("E1:F1").Copy .Range("E2:F" & loLetzte)
.Range("E2:F" & loLetzte).Formula = .Range("E2:F" & loLetzte).Value2
.Range("R1") = "Formel"  'Zeile 1 markieren!!
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=.Range("C1:C" & loLetzte), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=.Range("F1:F" & loLetzte), SortOn:=xlSortOnValues, _
Order:=xlDescending, DataOption:=xlSortNormal
With .Sort
.SetRange Range("A1:R" & loLetzte)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Zeile der Markierung in Spalte l suchen
x = .Cells(Rows.Count, 18).End(xlUp).Row
'Formeln ggf. in Zeile1 zurück kopieren
If x > 1 Then
.Cells(x, 2).Resize(1, 2).Copy .Range("B1")
.Cells(x, 5).Resize(1, 13).Copy .Range("E1")
.Cells(x, 5).Copy .Range("E1")
.Rows(x).Value = .Rows(x).Value
End If
.Range("G1:Q1").Copy .Range("G2:Q" & loLetzte)
.Range("G2:Q" & loLetzte).Copy
.Range("G2:Q" & loLetzte).PasteSpecial xlPasteValues
.Cells(x, 18) = Empty 'markierung löschen
.Range("E2").Select
End With
Application.CutCopyMode = False
End Sub

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellformat ändern
27.05.2020 21:12:32
Hajo_Zi
Excel kennt negative Zeit nur mit Einstellung Datumswerte 1904, mit seinen Nachteilen.
Arbeite mit Dezimaler Zeit.

AW: Zellformat ändern
27.05.2020 21:17:54
Christian
Hallo Hajo,
danke für den Rat, aber ich nutze Datedif um das Alter der Personen berechnen, da helfen mir dezimalzahlen nicht weiter oder?
bislang mahce ich es mit =WENN(ODER(F1="";C1="");"";DATEDIF(F1+1461000;C1+1461000;"YD"))
das wird mit dezimaler Zeitangabe nicht mehr möglich sein fürchte ich.
Und ja ich weiß diese Rechnung ist ungenau wegen dem 29.2.1900 aber das nehme ich in Kauf.
Ist es nicht einfach möglich dass das Makro einfach hingeht und am Schluss das Zellformat aller negativen Zahlen in diesen 5 Spalten ändert?
Gruß
Christian
Anzeige
AW: Zellformat ändern
28.05.2020 05:24:39
Hajo_Zi
Hallo Christian,
da habe ich was falsch gelesen. Ich dachte es geht um Zeit.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
Gruß Hajo
Anzeige
AW: Zellformat ändern
28.05.2020 09:32:49
Daniel
HI
formatiere doch einfach die Zellen mit dem benutzerdefinierten Zahlenformat: TT.MM.JJJJ;-0
im Zahlenformat gibt man ja bis zu 4 Formatstrings ein.
der erste ist für positive, der zweite der negative und der dritte für alle Zahlen, die nicht zu den ersten beiden Gruppen gehören (im Normalfall die Null). der 4. formatstring ist für Text.
man muss nicht alle 4 angeben, macht man das nicht, wird für die nicht angegebenen Standard verwendet.
Per VBA dannn: Range(…).Numberformat = "DD.MM.YYYY,-0"
Gruß Daniel
Anzeige
AW: Zellformat ändern
28.05.2020 09:39:36
Christian
Hallo Daniel,
danke für deine Mühe.
Muss zugeben, an diese Möglichkeit hatte ich in dem Moment nicht gedacht.
Aber sie funktioniert.
Für mich ist das Problem damit gelöst
Christian
Das Makro ist Käse, ...
27.05.2020 23:21:35
Luc:?
…Christian,
dafür gibt's besseres auf VBA-Basis und auch ganz ohne den 29.2.1900-Fehler, den hat ein VBA-Datum nicht und kann auch negativ sein.
UDF-ArchivLink bei Interesse morgen nm.
Morhn, Luc :-?
Anzeige
AW: Das Makro ist Käse, ...
28.05.2020 09:22:39
Christian
Hallo Luc,
um ehrlich zu sein, das Interesse hält sich in Grenzen. Wir reden hier von einer 1,7 MB Datei mit 11 Blättern und 14 Makros, bei dem alles irgendwo miteinander verknüpft ist. Ich möchte jetzt kein Fass ohne Boden aufmachen und an einer Stelle anfangen, die komplette Struktur der Datei aufzubrechen.
Mein einziger Wunsch war es, dass das genannte Makro hingeht und in den genannten Spalten das Zellformat negativer Zahlen in Zahl ohne Nachkommastellen und das Zellformat positiver Zahlen in Datum TT.MM.JJJJ ändert.
Alles was darüber hinausgeht fürchte ich macht ein Fass ohne Boden auf und war auch nicht von mir beabsichtigt.
Gruß
Christian
Anzeige
Abgesehen mal von Daniels Vorschlag, ...
28.05.2020 21:37:04
Daniels
…Christian,
der dir auszureichen scheint, erhebt sich doch die Frage, was das für Werte sind, die negativ sein können und die du im PositivFall als Datum formatieren willst. Falls das Differenzen zwischen Datumsangaben sind und so die negativen Werte zustande kommen, wäre allenfalls die Formatierung als Tage sinnvoll. Handelt es sich aber tatsächlich um Datumsangaben, die von einem exakten System (wie bspw auch VBA) in dieser Form ausgegeben wdn, wäre eine Umwandlung aller Werte in Datumsangaben sinnvoller. Das wären dann aber einheitlich Texte! 0 stünde in VBA für den 30.12.1899, wobei das VBA-Datum vom 1.1.100 bis zum 31.12.9999 reicht. Allerdings sind die Datumswerte vor der Einführung des Gregorianischen Kalenders (im jeweiligen Land) nur theoretisch und entsprechen nicht dem damals benutzten Datum.
Luc :-?
Anzeige
AW: Abgesehen mal von Daniels Vorschlag, ...
28.05.2020 22:13:40
Daniels
Hallo Luc,
ich denke du liegst mit der Vermutung fast richtig. Die negativen Zahlen wurden ursprünglich mithilfe Powerquery aus einer CSV eingelesen und im Rahmen dessen mithilfe von Powerquery automatisch in eine negative Zahl umgewandelt, sofern das Datum vor 1900 lag.
Soweit, dass wir uns über den gregorianischen Kalender unterhalten müssen geht es dann aber doch nicht zurück, die ältesten Daten liegen in den 1870ern.
Zweck des ganzen ist zu berechnen wie alt eine bestimmte Person zu einem Bestimmten Datum war. Wobei diese bestimmten Daten ausschließlich im Jahr 1914 oder später liegen.
Aber um es mal kurz zu fassen, das hier gepostete Makro wurde irgendwann mal hier im Forum von Werner erstellt und dann von Piet erweitert, ich selbst habe von VBA so gut wie keine Ahnung, auch deshalb war eine Lösung, die ich auch selbst anwenden kann, grad recht.
Gruß
Christian
Anzeige
Meine UDFs kannst du auch in Fmln anwenden! owT
29.05.2020 00:04:44
Luc:?
:-?
AW: Zellformat ändern
28.05.2020 21:52:17
GerdL
Moin,
lieber "Case" als Käse. Probier mal.
Worksheets("Ergebnis").Range("C:C,F:F,J:J,L:L,P:P").NumberFormat = "dd/mm/yyyy;-#,##0;0"

Gruß Gerd
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige