Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formatverlust bei replace

Formatverlust bei replace
03.08.2005 22:49:31
godehard
Hallo,
ich habe folgendes Problem:
ich habe ein Tabellenblatt, in dem von versch. Personen Ergebnisse in Zellen eintragen und zwar in der Form: 1:2
Jetz kommt es ab und zu vor, dass statt ":" ein ";" od. "." od. "-", ... verwendet wird.
Nun habe ich mir gedacht dass ich, bevor die eigetlichen Makros das tabellenblatt auswerten, ich evtl. falsche Ergebnistrenner durch den richtigen ":" ersetze:
Cells.Replace What:=";", Replacement:=":", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Prinzipiell funktioniert das zwar, aber danach hat die Zelle den Inhalt 01:02 (s. https://www.herber.de/bbs/user/25299.xls)
Die zellen haben alle Textformat; das haben sie auch nach Ausführung des kleinen suchen/ersetzen-Makros.
Wie kann ich verhindern, dass sich das Format ändert und der ursprüngliche Zellinhalt (1:2) erhalten bleibt (mit Ausn. z.B. des ";" das durch ":" ersetzt wird)?
Oder bietet sich hier besser eine andere Möglichkeit an?
Vielen Dank im Voraus für eure Hilfe!!
Gruß
Gode

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatverlust bei replace
03.08.2005 23:14:59
Josef
Hallo Gode!
Probier's mal so!
Sub Ersetzen()
    Dim arr As Variant
    Dim l As Long
    
    arr = Range("D3:D12")
    
    For l = 1 To UBound(arr, 1)
        arr(l, 1) = Replace(Replace(Replace(arr(l, 1), ";", ":"), ".", ":"), "-", ":")
    Next
    
    Range("D3:D12") = arr
    
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


Anzeige
AW: Formatverlust bei replace
04.08.2005 11:17:30
godehard
Hallo Josef,
ich hab' das mal so eingebaut ... und in der Tat, es hat funktioniert!
Wenn ich ehrlich bin:
Kapiert hab' ich nicht genau was da passiert (s. auch mein VBA-Level :-( )und warum hier durch diese verschachtelte und mehrmalig angewandte Replace-Funktion das Format dann erhalten bleibt ... aber das ist auch nicht das Wichtigste.
Dennoch ... wenn's mir einer in wenigen Worten verständlich machen könnte, würd's mich natürlich freuen!!
Gruß und vielen Dank nochmal
Gode
AW: Formatverlust bei replace
04.08.2005 20:04:01
Josef
Hallo Gode!
Das ist eigentlich gar nicht schwer zu verstehen.
1.

arr = Range("D3:D12")

Hier wird einfach der Inhalt des Bereiches in ein Array geschrieben.
2.

For l = 1 To UBound(arr, 1)
arr(l, 1) = Replace(Replace(Replace(arr(l, 1), ";", ":"), ".", ":"), "-", ":")
Next

Im zweiten Schritt werden nun in allen Feldern des Arrays die unerwünschten
Ergebnistrenner entfernt.
3.

Range("D3:D12") = arr

Hier wird nun einfach das Array mit den korrigierten Werten wieder zurück in
den Bereich geschrieben.
Gruß Sepp
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige