Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

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
Misserfolg ist eine Chance, es beim nächsten Mal besser zu machen.
(Henry Ford) http://www.sprueche-zum-nachdenken.eu
to 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!
... shift-del
Hinweise zu meiner Hilfe in Foren
Excel Super-Funktionen: VERWEIS(), INDEX(), WAHL()
[-] Folgende(r) 1 Benutzer sagt Danke an shift-del für diesen Beitrag:
  • WillWissen
to top
#3
(06.11.2014, 06: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
Misserfolg ist eine Chance, es beim nächsten Mal besser zu machen.
(Henry Ford) http://www.sprueche-zum-nachdenken.eu
to top
#4
Zitat:Bei deinem Vorschlag fehlten lediglich die Anführungseichen).
Das wäre dann mein nächster Vorschlag gewesen. 19
Wir sehen uns!
... shift-del
Hinweise zu meiner Hilfe in Foren
Excel Super-Funktionen: VERWEIS(), INDEX(), WAHL()
to 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 Benutzer sagt Danke an Kuwer für diesen Beitrag:
  • WillWissen, Wulfi
to 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
Misserfolg ist eine Chance, es beim nächsten Mal besser zu machen.
(Henry Ford) http://www.sprueche-zum-nachdenken.eu
to top


Gehe zu:


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