Anzeige
Archiv - Navigation
1580to1584
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
Range aus aktivierter Zelle als Variable
26.09.2017 08:17:05
kubden82
Moin,
ich habe ein Makro, dass mir die Zellen sucht, in denen zwei bestimmte Daten stehen (z.B. 04.01.2017 und 10.01.2017). Diese Zellen benötige ich nun für eine Autovervollständigung. D.h. ich ändere die Formel in der ersten "beginn"-Zelle und dann soll er per AutoFill bis zur "ende"-Zelle die Formel ändern.
Hier mein Gesamtmakro:
Sub Finden()
Dim rngbeginn As Range
Dim sFindBeginn As String
Dim beginn As Range
Dim rngende As Range
Dim sFindEnde As String
Dim ende As Range
Dim stdAlt As String
sFindBeginn = InputBox("Anfangsdatum:")
sFindBeginn = CDate(sFindBeginn)
sFindEnde = InputBox("Enddatum:")
sFindEnde = CDate(sFindEnde)
stdAlt = InputBox("alte Tagesstundenzahl:")
Set rngende = Range("AR:AR").Find(What:=CDate(sFindEnde))
rngende.Select
Selection.Offset(rowOffset:=0, ColumnOffset:=-41).Select
' hier müsste der Range der aktuellen Selection an ende übergeben werden
Set rngbeginn = Range("AR:AR").Find(What:=CDate(sFindBeginn))
rngbeginn.Select
Selection.Offset(rowOffset:=0, ColumnOffset:=-41).Select
' hier müsste der Range der aktuellen Selection an beginn übergeben werden
ActiveCell.Replace What:="$H$4/5", Replacement:=stdAlt, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Selection.AutoFill Destination:=Range("&beginn&:&ende&"), Type:=xlFillDefault ' hier wird der  _
nächste fehler sein, da ich beginn und ende so nicht in den Range bekomme
Range("A1").Select
End Sub
Hier die kniffeligen Stellen:
1. hier müsste die Zelle an den Range ende bzw. beginn übergeben werden, damit man damit später arbeiten kann, eine Lösung fehlt mir noch

Set rngende = Range("AR:AR").Find(What:=CDate(sFindEnde))
rngende.Select
Selection.Offset(rowOffset:=0, ColumnOffset:=-41).Select
' hier müsste der Range der aktuellen Selection an ende übergeben werden
2. hier müsste dann mit beginn und ende ein neuer Range gebildet werden
Selection.AutoFill Destination:=Range("&beginn&:&ende&"), Type:=xlFillDefault ' hier wird der nächste fehler sein, da ich beginn und ende so nicht in den Range bekomme
An diesen beiden Stellen komm ich derzeit nicht weiter, vielleicht kann mir einer hier weiter helfen oder einen Denkanstoß geben.
Vielen Dank

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

Betreff
Datum
Anwender
Anzeige
AW: Range aus aktivierter Zelle als Variable
26.09.2017 09:34:21
kubden82
mit diesem Code, bin ich schonmal wieder etwas weiter gekommen, aber die neue Selection mit beginn und ende funktioniert nicht:
Sub Finden()
Dim rngbeginn As Range
Dim sFindBeginn As String
Dim beginn As Range
Dim rngende As Range
Dim sFindEnde As String
Dim ende As Range
Dim stdAlt As String
sFindBeginn = InputBox("Anfangsdatum:")
sFindBeginn = CDate(sFindBeginn)
sFindEnde = InputBox("Enddatum:")
sFindEnde = CDate(sFindEnde)
stdAlt = InputBox("alte Tagesstundenzahl:")
Set rngende = Range("AR:AR").Find(What:=CDate(sFindEnde))
rngende.Select
Selection.Offset(rowOffset:=0, ColumnOffset:=-41).Select
Set ende = Selection
Set rngbeginn = Range("AR:AR").Find(What:=CDate(sFindBeginn))
rngbeginn.Select
Selection.Offset(rowOffset:=0, ColumnOffset:=-41).Select
Set beginn = Selection
ActiveCell.Replace What:="$H$4/5", Replacement:=stdAlt, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.AutoFill Destination:=Range("&beginn&:&ende&"), Type:=xlFillDefault ' hier wird der  _
fehler sein, da ich beginn und ende so nicht in den Range bekomme
Range("A1").Select
End Sub

Anzeige
AW: Datum suchen mit .FIND = schwierig
26.09.2017 09:55:49
Daniel
Hi
die Datumsuche mit .FIND ist nicht so ganz einfach.
wie der Suchstring für das WHAT geschrieben sein muss, hängt nämlich von der Formatierung der Zellen ab. Außerdem muss beachtet werden, dass im Standart-Datumsformat der Suchstring im amerikanischen Datumsformat geschrieben sein muss.
einfacher ist es, mit Worksheetfunction.Match nach dem Zahlenwert des Datums zu suchen.
Das funktioniert unabhängig von der Formatierung.
sFindBeginn = InputBox("Anfangsdatum:")
ZeileBeginn = Application.Match(CLng(CDate(sFindBeginn)), Range("AR:AR"), 0)
Set rngBeginn = Cells(ZeileBeginn, "AR")
Gruß Daniel
Anzeige
AW: Range aus aktivierter Zelle als Variable
26.09.2017 09:49:14
kubden82
geschafft:
Sub Finden()
Dim rngbeginn As Range
Dim sFindBeginn As String
Dim beginn As Range
Dim rngende As Range
Dim sFindEnde As String
Dim ende As Range
Dim stdAlt As String
Dim bereich As Range
sFindBeginn = InputBox("Anfangsdatum:")
sFindBeginn = CDate(sFindBeginn)
sFindEnde = InputBox("Enddatum:")
sFindEnde = CDate(sFindEnde)
stdAlt = InputBox("alte Tagesstundenzahl:")
Set rngende = Range("AR:AR").Find(What:=CDate(sFindEnde))
rngende.Select
Selection.Offset(rowOffset:=0, ColumnOffset:=-41).Select
Set ende = Selection
Set rngbeginn = Range("AR:AR").Find(What:=CDate(sFindBeginn))
rngbeginn.Select
Selection.Offset(rowOffset:=0, ColumnOffset:=-41).Select
Set beginn = Selection
Set bereich = Range(beginn.Address, ende.Address)
ActiveCell.Replace What:="$H$4/5", Replacement:=stdAlt, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.AutoFill Destination:=Range(bereich.Address), Type:=xlFillDefault
Range("A1").Select
End Sub

Anzeige
noch nicht ganz geschafft ...
26.09.2017 10:01:57
Matthias
Hallo
Du musst da zwingend auch noch eine Fehlerbehandlung einbauen.
Gib mal bei der ersten InputBox einen Text ein, dann rappelts schon,
oder auch wenn Du nur auf Abbrechen klickst.
Also, weitertüffteln ;-)
Gruß Matthias
AW: noch nicht ganz geschafft ...
26.09.2017 11:28:22
kubden82
Hab ich auch gesehen und nun dort eine vorherige Funktion vorgeschaltet, damit läuft es, trotzdem vielen Dank für eure Hilfe

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige