VBA-Lösung für Suchen und Ersetzen (STRG+H)
#1
Hallo Freunde,

das folgende aufgezeichnete Makro soll mir in Spalte F Einträge ersetzen (und dadurch Tipparbeit ersparen). In Listen, die in unregelmäßigen Abständen ergänzt werden, stehen in manchen Zeilen "erster Termin" bzw. "zweiter Termin". Der zweite bezieht sich generell auf das aktuelle Datum, der erste 10 Tage vom aktuellen Datum gerechnet in der Vergangenheit (=heute() bzw. =heute()-10)

Ich hatte nun zum Aufzeichnen gedacht, ich schreibe die beiden Formeln in Hilfszellen und vergebe Namen (Termin1 und Termin2), um diese als Suchkriterium zu benutzen. Allerdings weiß der Makrorekorder nicht, dass es sich um Namen handelt und ersetzt nur Text.

Code:
Sub Aktualisieren()
'
' Aktualisieren Makro
'

'
    Range("F:F").Replace What:="erster Termin", Replacement:="Termin1", LookAt:= _
        xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("F:F").Replace What:="zweiter Termin", Replacement:="Termin2", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

Meine Fragen:

1. Brauche ich für mein Vorhaben die Hilfszellen überhaupt?
2. Wie lautet die Anweisung für Replacement?

Schon jetzt vielen Dank für eure Hilfe.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#2
Hallo Günter

Ich bin nicht der VBA-Experte aber ich würde vermuten dass statt "Termin1" Range(Termin1) funktioniert.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • WillWissen
Top
#3
(06.11.2014, 07:58)shift-del schrieb: Hallo Günter

Ich bin nicht der VBA-Experte aber ich würde vermuten dass statt "Termin1" Range(Termin1) funktioniert.

Hi Detlef,

ganz lieben Dank. Bei deinem Vorschlag fehlten lediglich die Anführungseichen. So hat's einwandfrei geklappt:

Code:
Replacement:=Range("Termin1")
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#4
Zitat:Bei deinem Vorschlag fehlten lediglich die Anführungseichen).
Das wäre dann mein nächster Vorschlag gewesen. :19:
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#5
Hi Günter,

sowas ginge auch:

Code:
Sub Aktualisieren()
  Range("F:F").Replace What:="erster Termin", Replacement:=Date - 10, LookAt:= _
      xlPart, SearchOrder:=xlByRows, MatchCase:=False
  Range("F:F").Replace What:="zweiter Termin", Replacement:=Date, LookAt _
      :=xlPart, SearchOrder:=xlByRows, MatchCase:=False
End Sub

Gruß Uwe
[-] Folgende(r) 2 Nutzer sagen Danke an Kuwer für diesen Beitrag:
  • WillWissen, Wulfi
Top
#6
Hi Uwe,

auch dir ganz lieben Dank. Ich werde deinen Codevorschlag einbauen - ich erspare mir hier die Hilfszellen. Somit ist auch meine erste Frage erledigt.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste