Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ich verzweifle verdammtes Datumformat RAAAAAAAAAAh

Ich verzweifle verdammtes Datumformat RAAAAAAAAAAh
24.09.2006 12:35:39
Lump
Ich habe nun echt alles auprobiert , und schaffe es nicht diese verdammten Tabellen mit der korrekten Datumsangabe zu formatieren.
Ich habe eine Excel Tabelle runtergeladen die im Us Format abgespeichert worden ist und nun habe ich das US Format bei dem Datum.
Ich hab nun die Spalte mit format Cells auf Germany gestellt , ich habe ein Makro aufgenommen .
Dieses Makro benennt alle Datumsangaben um so dass dann das Datum in deutsch steht.
Aber dann erkennt er die Zellen trotzdem nicht als Datumformat, stattdessen gibt er mir ein kleines grünes zeichen womit ich dann das Format konvertieren kann.
Aber ich habe nicht die Möglochkeit eine ganze Spalte zu konvertieren.
Was mich aber besonders ärgert: Wenn ich das Makro aufnehme und per Hand alle Schritte ausführe klappt alles gut. Meine Schritte sind.
Dies ist bspw. die us schreibweise 6-Jan-04
1. Schritt replace - mit .
2. Schritt replace jan mit januar
3. Schritt replace feb mit februar
usw
Dann klappt es , aber wenn ich das aufgenommene Makro nun in einem anderen Sheet ausführe , nennt er zwar alles ordentlich um aber statt die Zellen dann endlich als Datum anzuerkennen, grinst mich nur wieder dieses grüne Ding an womit ich dann wieder die Möglichkeit habe diese Zellen zu konvertieren.
Ich habe es schon mit Vodoo und Zauberei versucht schaffe es aber leider nicht .
Verdammt nochmal.

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

Betreff
Datum
Anwender
Anzeige
Lad doch mal die Mappe hoch...
24.09.2006 13:04:38
{Boris}
Hi Lumpi,
...bzw. einen Teil davon. Es gibt zig Möglichkeiten, Texte in Zahlen umzuwandeln - hängt aber davon ab, wie die Texte vorliegen.
Grüße Boris
AW: Lad doch mal die Mappe hoch...
24.09.2006 13:12:05
Lump
Zuerst mal danke , du hast mir ja letztens schon geholfen.
Ich habe eine Tabelle hochgeladen, dieses verdammte (&%&)&%/&%/)/&!=)§(()&§"/ Ding
https://www.herber.de/bbs/user/36963.xls
Formatierung + Formeln per Makro eintragen
24.09.2006 13:38:11
Herby
Hallo Lump,
ich hab dir auf dem alten Thread geantwortet und da auch die Mapppe mit dem Makro hinterlegt. Schau es dir doch mal an, obs so passt.
Viele Grüße
Herby
Anzeige
AW: Formatierung + Formeln per Makro eintragen
24.09.2006 14:21:55
Lump
Dank dir Herby für die Mühe die du dir gemacht hast, ich werde mir das Makro mal zur Brust nehmen um es zu verstehen. Ich bin ein Excel Neuling, der euch aber nicht ständig auf die Nerven gehen will.
Leide habe ich mir die Finger nach dem Datumsformat wundgegooglet.
Zumindest kann ich nun die meisten Probleme mit recor Makro lösen.
Wenn ich nun aber das Makro auf eine andere Excel Tabelle anwenden will dann gibt er mir folgenden Fehler: Run time error 9
Subscript out of range

Sub formel_eintragen()
Dim lZ As Long, i As Long, j As Long
Dim Rechne
Worksheets("COST monthly").Activate
*************************lZ = Range("A65536").End(xlUp).Row***    Diese Zeile ist markiert
For i = 2 To lZ
For j = 2 To 5
Cells(i, j) = Application.Substitute(Cells(i, j), ".", ",")
Cells(i, j).HorizontalAlignment = xlRight
Next j
Cells(i, 7) = Application.Substitute(Cells(i, 7), ".", ",")
Cells(i, 7).HorizontalAlignment = xlRight
Next i
For i = 2 To lZ
'Cells(i, 9).FormulaLocal = "=" & Cells(i, 2).Address & "-" & Cells(i + 1, 5).Address & ""
Rechne = "B" & i & "-E" & i + 1
Cells(i, 9).Formula = "=" & Rechne
Cells(i, 9).HorizontalAlignment = xlRight
Cells(i, 9).NumberFormat = "0.00_ ;[Red]-0.00 "
Next i
For i = 2 To lZ
Rechne = "I" & i & "/(E" & i + 1 & "/100)/100"
Cells(i, 10).Formula = "=" & Rechne
Cells(i, 10).HorizontalAlignment = xlRight
Cells(i, 10).NumberFormat = "0.00%"
Next i
End Sub

Wie kann ich die Datumsformatierung korrekt konvertieren?
So wie ich es sehe erkennt er mir sie noch nicht als Datum an ,so das ich mit den Zellen keinerlei if verknüpfungen oder sowas erstellen kann.
Danke nochmal und Gruss
Lump
Anzeige
AW: Formatierung + Formeln per Makro eintragen
24.09.2006 15:36:33
fcs
Hallo Lump,
statt mit Activate oder auch Select zu arbeiten ist es besser die Objekte als Variablen zu deklarieren und in einer Set-Anweisung zuzweisen. Dann ist es für den Programmiere übersichtlicher und Excel eindeutig, welches Objekt gerade in einer Methode/Eigenschaft angesprochen wird. Mit einer With ... End With Anweisung kann man dann in mehreren ProgrammZeilen auf dieses Objekt zugreifen, indem man vor die Methode/Eigenschaft einen Punkt setzt.
Dein Makro schaut dann etwa wie nachfolgend aus, wobei ich für Ermittlung der letzten Zeile mit Daten in einer Spalte eine etwas allgemeinere Formel verwendet habe.
Gruss
Franz

Option Explicit
Sub formel_eintragen()
Dim lZ As Long, i As Long, j As Long
Dim Rechne As String, wks As Worksheet
Set wks = ActiveWorkbook.Worksheets("COST monthly")
With wks
lZ = .Cells(.Rows.Count, 1).End(xlUp).Row '###Zeile modifiziert###
For i = 2 To lZ
For j = 2 To 5
.Cells(i, j) = Application.Substitute(.Cells(i, j), ".", ",")
.Cells(i, j).HorizontalAlignment = xlRight
Next j
.Cells(i, 7) = Application.Substitute(.Cells(i, 7), ".", ",")
.Cells(i, 7).HorizontalAlignment = xlRight
Next i
For i = 2 To lZ
'.Cells(i, 9).FormulaLocal = "=" & .Cells(i, 2).Address & "-" & .Cells(i + 1, 5).Address & ""
Rechne = "B" & i & "-E" & i + 1
.Cells(i, 9).Formula = "=" & Rechne
.Cells(i, 9).HorizontalAlignment = xlRight
.Cells(i, 9).NumberFormat = "0.00_ ;[Red]-0.00 "
Next i
For i = 2 To lZ
Rechne = "I" & i & "/(E" & i + 1 & "/100)/100"
.Cells(i, 10).Formula = "=" & Rechne
.Cells(i, 10).HorizontalAlignment = xlRight
.Cells(i, 10).NumberFormat = "0.00%"
Next i
End With
End Sub

Anzeige
AW: Lad doch mal die Mappe hoch...
24.09.2006 14:16:37
Daniel
Hallo Lump
versuch mal diesen Code, bei mir gehts damit
Entscheidend ist, daß du die Zellformatierung von "Text" auf ein Datumsformat umstellest.
Die wird allerdings erst wirksam, wenn der Wert erneut in die Zelle eingegeben wird.
Das mache ich in der letzten Zeile mit .Formula =.Value
Ausgetauscht werden müssen nur die Monatsbezeichnungen, die im Amerikanischen von den Deutschen abweichen.

Sub Datum_ändern()
With Columns(1)
.NumberFormat = "[$-407]d/ mmm/ yyyy;@" 'Format der Zellen von Text auf Datum ändern
.Replace What:="Mar", Replacement:="Mrz", LookAt:=xlPart
.Replace What:="May", Replacement:="Mai", LookAt:=xlPart
.Replace What:="Oct", Replacement:="Okt", LookAt:=xlPart
.Replace What:="Dec", Replacement:="Dez", LookAt:=xlPart
.Formula = .Value 'hierdurch sollte der neue Text wieder als Datum erkannt werden
End With
End Sub

Gruß, Daniel
Anzeige
AW: Lad doch mal die Mappe hoch...
24.09.2006 17:03:14
Lump
Ich dank dir für deine Hilfe . Das Problem wurde nun gelöst.
Gruss und ein schönes Wochende
AW: Ich verzweifle verdammtes Datumformat RAAAAAAA
24.09.2006 14:11:28
fcs
Hallo Lump,
hier ein makro, dass die Datumsumwandlung durchführt. Mit dem Makro wird auch das gewünschte Datumsformat als Usereingabe festgelegt.
Gruss
Franz

Sub Datum_US_nach_Deutsch()
' Im Bereich Umwandlung US-Datum Text "1-Feb-02" in D-Datum 1. Februar 2002 als Serielles Excel-Datum
Dim Zelle As Range, Bereich As Range, Datum As String, MonatUS As String, MonatD As String
Dim wks As Worksheet, DatumsFormat As String
DatumsFormat = InputBox("Datumsformat?" & vbLf & vbLf & "lokales, deutsches Format, (z.B. T. MMMM JJJJ)", _
"Konversion US-Datumstext T-MMM-JJ --> Deutsches Datum", "T. MMMM JJJJ")
If DatumsFormat = "" Then Exit Sub
Set wks = ActiveWorkbook.Sheets(1) 'Statt 1 kann auch der Name in Anführungszeichen eingesetzt werden
With wks
'Bereich mit daten in Spalte A ab Zeile 2
Set Bereich = .Range(.Cells(2, 1), Cells(.Rows.Count, 1).End(xlUp))
End With
For Each Zelle In Bereich
MonatUS = Mid(Zelle, InStr(1, Zelle.Value, "-") + 1, 3)
Select Case MonatUS
Case "jan", "Jan"
MonatD = "Januar"
Case "feb", "Feb"
MonatD = "Februar"
Case "mar", "Mar"
MonatD = "März"
Case "apr", "Apr"
MonatD = "April"
Case "may", "May"
MonatD = "Mai"
Case "jun", "Jun"
MonatD = "Juni"
Case "jul", "Jul"
MonatD = "Juli"
Case "aug", "Aug"
MonatD = "August"
Case "sep", "Sep"
MonatD = "September"
Case "oct", "Oct"
MonatD = "Oktober"
Case "nov", "Nov"
MonatD = "November"
Case "dec", "Dec"
MonatD = "Dezember"
Case Else
MsgBox "Irgend etwas stimmt nicht mit Datum " _
& Zelle.Value & " in Zelle " & Zelle.Address
MonatD = "XXX"
End Select
If MonatD <> "XXX" Then
Zelle.NumberFormatLocal = DatumsFormat
Datum = Application.WorksheetFunction.Substitute(Zelle.Value, MonatUS, MonatD)
Zelle.Value = CDate(Datum)
End If
Next Zelle
End Sub

Anzeige
AW: Ich verzweifle verdammtes Datumformat RAAAAAAA
24.09.2006 17:02:06
Lump
Das klappt einfach super.. Ich werde es mir mal demnächst genauer anschauen um das bei einen nächsten Problem anzuwenden.
Ich danke dir für die Hilfe .Echt super
Gruss und ein schönes Wochenende

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige