Clever-Excel-Forum

Normale Version: Zellformat unterschiedlich
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

warum kommt das so unterschiedlich?
Wie erreiche ich, daß die untere Zelle gleich formatiert ist, wie die obere?

Arbeitsblatt mit dem Namen 'Zusammenfassung'
A
3004622.09.18 12:22
3004722.09.2018 13:22:13

ZelleFormatWert
A30046TT.MM.JJ hh:mm;@22.09.2018 12:22:13
A30047TT.MM.JJ hh:mm;@22.09.2018 13:22:13
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Seit neuestem ist die Original-Zelle mit einem führenden Leerzeichen vor dem Datum. Seither formatierte ich es mit =b1*1 um, nun mache ich das Leerzeichen mit TRIM weg.
So wird das Datum umformatiert:
   ' hier wird die Datumsspalte umformatiert 
   ' Spalte einfügen 
   Columns(3).Insert shift:=xlRight
   
   loLetzte = Cells(Rows.Count, 2).End(xlUp).Row        ' letzte belegte Zelle 
   Range("C1") = "Zeit"
   With Range(Cells(2, 3), Cells(loLetzte, 3))
      ' Formel in Spalte C eintragen 
      .Formula = "=TRIM(B2)"      '"=B1*1" 
      ' Datums-Format für Spalte C 
      .NumberFormat = "dd/mm/yy hh:mm"
      ' Bereich kopieren 
      .EntireColumn.AutoFit
      .Copy
   End With
   ' Werte an gleicher Stelle einfügen 
   Cells(2, 3).PasteSpecial Paste:=xlPasteValues
   ' Spalte B löschen 
   Columns(2).Delete shift:=xlLeft

Ich will aber weiterhin das Datum mit nur 2-stelliger Jahreszahl haben.
Hi Ralf,

gelöscht - habe eine Bemerkung in deiner Frage übersehen.
Hi,

ich habe es jetzt so gelöst:
Code:
.FormulaR1C1 = "=(MID(RC[-1],2,6)&MID(RC[-1],10,11))*1"
Verwende eien 'intelligente' Tabelle.
Hallo,

probiere es mal mit der Funktion Wert.

=wert(A30047)

Dann wird die vermutliche Zahl in eine echte Umgewandelt und nimmt auch ein Zahlenformat an, das man ihr zuweist.

Gruß

Andreas
Hallo Rabe,

wie Andreas etwas anders vorschlug, mit WERT() oder *1 :
   ' hier wird die Datumsspalte umformatiert
' Spalte einfügen
Columns(3).Insert shift:=xlRight

loLetzte = Cells(Rows.Count, 2).End(xlUp).Row ' letzte belegte Zelle
Range("C1") = "Zeit"
With Range(Cells(2, 3), Cells(loLetzte, 3))
' Datums-Format für Spalte C
.NumberFormat = "dd/mm/yy hh:mm"
' Formel in Spalte C eintragen
.Formula = "=VALUE(B2)"
' oder
'.Formula = "=TRIM(B2)*1"
' Werte an gleicher Stelle einfügen
.Value = .Value
.EntireColumn.AutoFit
End With
' Spalte B löschen
Columns(2).Delete shift:=xlLeft
Gruß Uwe
Hallo,

ich habe nun alle Versionen eingebaut:

Code:
...
   With Range(Cells(2, 3), Cells(loLetzte, 3))                'geht da auch Range("C2:C" & loLetzte)?
      ' Datums-Format für Spalte C
      .NumberFormat = "dd/mm/yy hh:mm"
      ' Formel in Spalte C eintragen
      .Formula = "=VALUE(B2)"
      '.FormulaR1C1 = "=(MID(RC[-1],2,6)&MID(RC[-1],10,11))*1"
      '.Formula = "=TRIM(B2)*1"
      '.Formula = "=B1*1"        'bringt Fehler wegen Leerzeichen vor dem String
      ' Bereich kopieren
      .EntireColumn.AutoFit
      .Copy
   End With
...

So umgestellt, daß das Zellformat zuerst eingestellt wird und dann alle Lösungen ausprobiert.
Bis auf die letzte, ursprüngliche von mir, funktionieren alle gleich gut.

Was mir auffällt: im Ergebnis sind dann immer 2 Leerzeichen zwischen Datum und Uhrzeit.
Wenn ich die Anzeige aber als "Datum Uhrzeit" mit nur 2 Jahreszahlen formatiere (siehe oben das NumberFormat), wird nur ein Leerzeichen angezeigt.

Danke an euch beide!