Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchen/Ersetzen Makroanpassung

Suchen/Ersetzen Makroanpassung
24.09.2007 09:22:00
Bernd
Hallo ich würde gerne folgendes Makro modifizieren:
Statt Now - 3 (Kalendertage) würde ich gerne Now - 3 (Arbeitstage verwenden). Wie würde die Syntax lauten?
Alternativ: Ich könnte mir auch folgende Alternative vorstellen.
Das Makro soll den Datumswert aus einer Zelle, z.B. A1 suchen (altes Datum). und durch den Datumswert in Zelle A2 (neues Datum) ersetzen. In A1 und A2 kann ich dann mit Excelformeln (z.B. ARBEITSTAG) arbeiten und die korrekten Daten ermitteln. Die Syntax des Formats ("/yyyy_mm/dd/") sollte dabei eingehalten werden!
Gruss Bernd
PS:
Hier das Makro:
**********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Option Explicit

Public Sub Suchen_Ersetzen_Datum()
Application.Dialogs(130).Show _
arg1:=Replace(Format(Now - 3, "/yyyy_mm/dd/"), ".", "\"), _
arg2:=Replace(Format(Now - 2, "/yyyy_mm/dd/"), ".", "\")
End Sub


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen/Ersetzen Makroanpassung
24.09.2007 12:06:00
Peter
Hallo Bernd,
so könnte es gehen:

Public Sub Suchen_Ersetzen_Datum_I()
Dim Strt_Datum As Date: Strt_Datum = Date
Dim Ende_Datum As Date: Ende_Datum = Date
Dim iTage      As Integer
iTage = 0
Do
If Weekday(Strt_Datum)  1 And Weekday(Strt_Datum)  7 Then
iTage = iTage + 1
End If
Strt_Datum = Strt_Datum - 1
Loop Until iTage = 3
iTage = 0
Do
If Weekday(Ende_Datum)  1 And Weekday(Ende_Datum)  7 Then
iTage = iTage + 1
End If
Ende_Datum = Ende_Datum - 1
Loop Until iTage = 2
Application.Dialogs(130).Show _
arg1:=Replace(Format(Strt_Datum, "/yyyy_mm/dd/"), ".", "\"), _
arg2:=Replace(Format(Ende_Datum, "/yyyy_mm/dd/"), ".", "\")
End Sub


Gruß Peter

Anzeige
AW: Suchen/Ersetzen Makroanpassung
26.09.2007 08:47:00
Bernd
Hallo Peter,
ich habe das Makro heute mal ausprobiert und es "schlägt" mir folgendes vor:
Suchen: 23.9
Ersetzen: 24.9
24.9 ist soweit in Ordnung; aber 23.9 als Wochenendtag sollte per Definition gar nicht erst vorgeschlagen werden. Hier sollte der 21.9. stehen.
Zusatzfrage: Kann man evtl. noch vorgeben, dass nur bestimmte Spalten (z.B. nur Spalte F und Spalte H) durchsucht werden?
Besten Dank aber schon mal für die Verbesserung des Makros!
Gruß
Bernd

AW: Suchen/Ersetzen Makroanpassung
26.09.2007 14:43:00
Peter
Hallo Bernd,
versuche es so:

Public Sub Suchen_Ersetzen_Datum_I()
Dim Strt_Datum As Date: Strt_Datum = Date
Dim Ende_Datum As Date: Ende_Datum = Date
Dim iTage      As Integer
iTage = 0
Do
If Weekday(Strt_Datum)  1 And Weekday(Strt_Datum)  7 Then
iTage = iTage + 1
End If
Strt_Datum = Strt_Datum - 1
Loop Until iTage = 3 And Weekday(Strt_Datum)  1 And Weekday(Strt_Datum)  7
iTage = 0
Do
If Weekday(Ende_Datum)  1 And Weekday(Ende_Datum)  7 Then
iTage = iTage + 1
End If
Ende_Datum = Ende_Datum - 1
Loop Until iTage = 2 And Weekday(Ende_Datum)  1 And Weekday(Ende_Datum)  7
Application.Dialogs(130).Show _
arg1:=Replace(Format(Strt_Datum, "/yyyy_mm/dd/"), ".", "\"), _
arg2:=Replace(Format(Ende_Datum, "/yyyy_mm/dd/"), ".", "\")
End Sub


Mit deiner Frage zum Durchsuchen von Spalte F und H kann ich gar nichts anfangen.
Das Makro sucht doch bisher nirgendwo.
Gruß Peter

Anzeige
AW: Suchen/Ersetzen Makroanpassung
26.09.2007 15:24:00
Peter
Hallo Bernd,
jetzt ist mir klar, was du mit Spalte F und H meinst.
Markiere doch die beiden Spalten, dann sollte dort gesucht werden.
Gruß Peter

AW: Suchen/Ersetzen Makroanpassung
01.10.2007 09:02:00
Bernd
Hallo Peter,
das Makro funktioniert jetzt mit der Modifikation sehr gut! Noch wegen der Spalten:
Es gibt zwei Sheets (Registerblätter) innerhalb meiner Excel-Datei, die für die Ersetzungen in Frage kommen. Bei Sheet 1 soll nur Spalte F durchsucht / ersetzt und bei Sheet 2 sollte nur die Spalte H durchsucht / ersetzt werden. Ist das mit einem "Klick", also ohne manuelles Markieren der jeweiligen Spalten in den beiden Sheets möglich?
Gruß
Bernd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige