Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1268to1272
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
Komma durch Punkt ersetzen
walter
Hallo, liebe Leute,
ich habe seit Excel 2010 folgendes Problem (welches in meiner Vorgängerversion Excel XP nicht aufgetreten ist). Vielleicht kann mir jemand helfen:
Ich bekomme aus einem Zeiterfassungsprogramm eine Auswertung in einer RTF-Datei:
1. Spalte = Datum, welches so aussieht: z.B. 01.06 (für 1. Juni)
2./3. Spalte = Uhrzeit
Jezt soll ich diese drei Spalten in ein Excel-Arbeitsblatt reinkopieren, damit ich die Daten dann weiterverarbeiten kann.
Spalte 2 und 3 sind kein Problem, die verhalten sich genauso wie sie sollen.
Spalte A im Excel-Arbeitsblatt ist als Benutzerdefiniert - TT.MM - formatiert.
Ich nehme im RTF-Dokument also die Tabelle in den Zwischenspeicher und wenn ich im Excel einfüge, dann passiert folgendes:
Die Daten in Spalte 1 werden insofern verändert, als dass aus dem Punkt ein Komma wird: z.B. aus 01.06 wird 1,06.
Wenn ich jetzt händisch das Komma durch einen Punkt ersetzen lasse, habe ich in Spalte A wieder mein Datum.
So weit, so gut.
Jetzt möchte ich aber diesen Ersetzungsvorgang in ein bereits bestehendes Makro, mit welchem ich die Daten anschließend weiterverarbeit, einarbeiten.
Ich habe bereits aufgezeichnet. Code sieht so aus:
Columns("A:C").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
Wenn ich diesen Code ausführe, dann passiert GAR NICHTS.
UND ICH WEISS NICHT WARUM!!!
Kann mir jemand auf die Sprünge helfen - DANKE!
walter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Komma durch Punkt ersetzen
16.07.2012 15:04:22
fcs
Hallo Walter,
leider kann Excel die Angabe "01.06" aus der RTF-Datei nicht als Datum erkennen und interpretiert diese Angabe als Zahl. Ersetzen von "," durch "." ist unter VBA leider auch problematisch, Datei intern die Dezimalstelle immer ein Punkt ist bzw. das US-Zhalenformat gilt.
Hier kannst du nur mühselig per Makro zellenweise die Zahlen in "TT.MM" umwandeln und mit vorangestelltem Hochkomma als Text in die Zellen schreiben oder die Angabe in ein echtes Excel-Datum umwandeln, indem die Jahreszahl noch hinzugefügt wird. Dann kann man die Zellen auch in Excel als "TT.MM" fromatieren.
Für die Spalten B und C (Uhrzeiten) muss doch eigenlich nichts ersetzt werden.
Gruß
Franz
Sub aatest()
Dim Zelle As Range, varSplit
'In Spalte A in zahlen das Komma durch Punkt ersetzen
With ActiveSheet
For Each Zelle In .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
If IsNumeric(Zelle) Then
varSplit = Split(Zelle.Text, ",")
Zelle.Value = "'" & Format(varSplit(0), "00") & "." & Format(varSplit(1), "00")
End If
Next Zelle
End With
Columns("B:C").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
End Sub
Sub abtest()
Dim Zelle As Range, varSplit, varJahr As Long
'In Spalte A die Zahl in Datum umwandeln
varJahr = Application.InputBox( _
Prompt:="Welches Jahr soll bei TT.MM angefügt werden?", _
Title:="Import von RTF-File", Default:=Year(Date))
With ActiveSheet
For Each Zelle In .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
If IsNumeric(Zelle) Then
varSplit = Split(Zelle.Text, ",")
Zelle.Value = CDate(varJahr & "-" & Format(varSplit(1), "00") & "-" & Format(varSplit(0) _
, "00"))
End If
Next Zelle
.Columns(1).NumberFormat = "DD.MM"
End With
Columns("B:C").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
End Sub

Anzeige
AW: Komma durch Punkt ersetzen
16.07.2012 15:33:02
walter
Hallo Franz,
danke für die prompte Lösung. "abtest" funktioniert super und werde ich einsetzen.
Aber es würde mich doch interessieren, warum das jetzt nicht mehr funktioniert und vorher schon?
Da muss sich Excel-intern etwas geändert haben, oder?
Ich werde jetzt noch versuchen, die Input-Box wegzulassen:
Diese Abrechnung passiert immer im Folgemonat, d.h., wenn der aktuelle Monat nicht Jänner ist, dann ist das Jahr das aktuelle ansonsten das Vorjahr.
Ich probier´s aber mal selber. Wenn ich es nicht auf die Reihe bekomme, darf ich mich wieder melden?
DANKE!
lg
walter
Anzeige
AW: Komma durch Punkt ersetzen
16.07.2012 21:43:58
fcs
Hallo Walter,
Aber es würde mich doch interessieren, warum das jetzt nicht mehr funktioniert und vorher schon?
Da muss sich Excel-intern etwas geändert haben, oder?

Nach dem Warum müsste man die Programmierer bei Microsoft fragen.
Scheinbar sollte das Einfügen von Textdaten optimiert und dabei hat man dann "vergessen" die lokalen Einstellungen konsequent zu berücksichtigen.
Gruß
Franz
Ersetzen der Inputbox:
    varJahr = Year(Date)
If Month(Date) = 1 Then varJahr = varJahr - 1

AW: Komma durch Punkt ersetzen
17.07.2012 08:23:12
walter
Hallo Franz,
danke sehr für die rasche Hilfe und Info!
Walter
Anzeige

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige