Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
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
Inhaltsverzeichnis

Zeichen an bestimmer Position ersetzen II

Zeichen an bestimmer Position ersetzen II
02.11.2017 11:16:39
Basti
Hallo Forum,
aus unserer Datenbank bekomme ich ein Datum im Format YYYY-MM-DD-hh:mm. Zur Weiterverarbeitung in Excel muss dieser Text in ein Datum/Uhrzeit umgewandeln. Dazu muss ich lediglich der Bindestrich zwischen DD und hh durch ein Leerzeichen ersetzen.
Im Forumsarchiv habe ich bereits ein paar Beträge zum Thema "Zeichen ersetzen" gesehen, nur leider sind meine Fähigkeiten auf den Macrorecoder beschränkt.
Zur Zeit habe ich einen Code (vgl. Unten) , der mir "ALLE" Bindestrich im markierten Bereich durch Leerzeichen entfernt, nur leider ist das nicht das Ziel bei dieser Aufgaben.
IST: YYYY-MM-DD-hh:mm
SOLL: YYYY-MM-DD hh:mm
Sub ZeichenEntfernen()
' Tastenkombination: Strg+Umschalt+N
' Code entfernt die gewünschten Zeichen, im markierten Bereich
Dim rngZelle As Range, strZeichenNeu As String, strZeichenAlt As String
strZeichenAlt = "-"
strZeichenNeu = " "
Set rngZelle = Selection
With rngZelle
.Replace What:=strZeichenAlt, Replacement:=strZeichenNeu, _
lookat:=xlPart, MatchCase:=True
End With
End Sub
Vielen Dank für die Hilfe
Gruß
Basti

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InStrRev
02.11.2017 11:24:02
Fennek
Hallo,
in VBA gibt es die Funktion IStrRev, die ein Zeichen von rechts sucht und die Position zurück gibt.
mfg
(es gibt sicher noch viele andere Möglichkeiten)
AW: InStrRev
02.11.2017 11:30:01
Basti
Hallo Fennek,
danke für dein Hinweis. Hast Du eine Idee, wie man IStrRev in meien Code einbau kann?
Gruß
Basti
AW: Replace mit count
02.11.2017 11:41:22
Fennek
https://www.techonthenet.com/excel/formulas/replace_vba.php
dort wird gezeigt, dass man auch den Schalter "count" nutzen kann, in deinem Fall das 3. Vorkommen
AW: Replace mit count
02.11.2017 11:46:03
EtoPHG
Hallo,
Gute Idee, und damit die Formel:
=WECHSELN(A1;"-";" ";3)*1

Gruess Hansueli
Anzeige
AW: InStrRev
02.11.2017 11:48:44
mmat

'funktioniert, wenn Text vor dem Strich immer gleich lang ist
Sub ZeichenEntfernen()
Dim s As String
s = ActiveCell
Mid(s, 11, 1) = " "
ActiveCell = s
End Sub
'und das funktioniert, wenn der Text vor dem zu ersetzenden Zeichen unterschiedlich lang ist
Sub ZeichenEntfernenHinten()
Dim s As String, p As Long
s = ActiveCell: p = InStrRev(s, "-")
Mid(s, p, 1) = " "
ActiveCell = s
End Sub
@EtoPHG: Bei der VBA-Variante wird die Zelle gleich korrigiert, bei der Formel muß ich im Zweifel das Ergebnis nochmal kopieren
AW: InStrRev
02.11.2017 15:30:03
Basti
Hallo Zusammen,
vielen Dank für die Hilfe.
Habe jetzt mit dem Code von mmat und etwas Trial and Error eine für mich optimale Lösung gefunden.
Sub ZeichenEnt()
Dim rng As Range
Dim s As String
For Each rng In Selection
s = rng
Mid(s, 11, 1) = " "
rng = s
Next rng
End Sub
In diesem Fall habe ich VBA bevorzugt, da ich keine zusätzliche Spalte für die Formel einfügen möchte.
Gruß
Basti
Anzeige
Warum VBA und nicht einfach eine Formel?
02.11.2017 11:37:21
EtoPHG
Hallo Basti,
Mit der Formel (Datum-Zeit Text in Spalte A):
=(LINKS(A1;10)&" " &RECHTS(A1;5))*1

würde das doch auch funktionieren. Einfach noch die Zellen mit der Formel mit JJJJ-MM-TT hh:mm formatieren und fertig.
Gruess Hansueli
AW: Blitzvorschau
02.11.2017 11:55:14
Fennek
bei aktuellen Versionen könnte auch die Blitzvorschau klappen, ganz ohne Code/Formeln

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige