Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
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

Datum finden ....

Datum finden ....
Berndi
Hallo Gemeinde !
Ich habe ein Problem damit in einem selbst generierten Kalender bestimmte Felder zu suchen, die ein gewisses Datum tragen.
Die Datumsfelder in dem Kalender generiere ich hiermit:
<code>
Datum = "1/1/" & Jahr
For I = 1 To 12
If month(Datum) = 1 Or month(Datum) = 3 Or month(Datum) = 5 Or month(Datum) = 7 Or month(Datum) = 8 Or month(Datum) = 10 Or month(Datum) = 12 Then
MLaenge = 31
Else
MLaenge = 30
If month(Datum) = 2 Then
If Schaltjahr Then
MLaenge = 29
Else
MLaenge = 28
End If
End If
End If
If month(Datum) < 7 Then
PosY = 3
PosX1 = 1 + ((month(Datum) - 1) * 32)
Else
PosY = 21
PosX1 = 1 + ((month(Datum) - 7) * 32)
End If
For PosX = PosX1 To PosX1 + MLaenge - 1
'Tage updaten und einfärben
If WeekDay(Datum, vbSunday) = 1 Or WeekDay(Datum, vbSunday) = 7 Then
Worksheets(Seitenname).Cells(PosY, PosX).Interior.ColorIndex = 22
Else
Worksheets(Seitenname).Cells(PosY, PosX).Interior.ColorIndex = 20
End If
Worksheets(Seitenname).Cells(PosY, PosX).Value = Datum
Datum = Datum + 1
Next
</code>
~f~
Die Datumsfelder werden zentriert und 90° verdreht formatiert
Jetzt möchte ich aus dem Internet die Ferientage auslesen, diese in dem Kalender suchen und dann irgendwie formatieren, doch egal was ich anstelle, keine Funktion findet das entsprechende Feld.
Hiermit versuche ich das zu bewerkstelligen:
~f~
<code>
<pre>Sub Ferienimport()
'Worksheets(Seitenname).QueryTables("Schulferien").Delete
If Jahr - Year(Date) = 0 Or Jahr - Year(Date) = 1 Or Jahr - Year(Date) = -1 Then
With Worksheets(Seitenname).QueryTables.Add(Connection:="URL;http://www.schulferien.org/Hessen/hessen.html", Destination:=Range("GK1"))
.Name = "Schulferien"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "7"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Worksheets(Seitenname).Cells(1, 1).Select
With Worksheets(Seitenname).Columns(193)
Set Z = .Find(Jahr, LookIn:=xlValues)
If Not Z Is Nothing Then
Oster_A = Left(Worksheets(Seitenname).Cells(Z.Row, 195).Value, 6)
Oster_E = Right(Worksheets(Seitenname).Cells(Z.Row, 195).Value, 6)
Sommer_A = Left(Worksheets(Seitenname).Cells(Z.Row, 197).Value, 6) & Jahr
Sommer_E = Right(Worksheets(Seitenname).Cells(Z.Row, 197).Value, 6) & Jahr
Herbst_A = Left(Worksheets(Seitenname).Cells(Z.Row, 198).Value, 6) & Jahr
Herbst_E = Right(Worksheets(Seitenname).Cells(Z.Row, 198).Value, 6) & Jahr
XMas_A = Left(Worksheets(Seitenname).Cells(Z.Row, 199).Value, 6) & Jahr
XMas_E = Right(Worksheets(Seitenname).Cells(Z.Row, 199).Value, 6) & Jahr
XMas_Ealt = Right(Worksheets(Seitenname).Cells(Z.Row - 1, 199).Value, 6) & Jahr
End If
End With
Range("GK1:GQ17").Delete Shift:=xlToLeft
MsgBox (Oster_A & Chr(13) & Oster_E)
'Worksheets(Seitenname).Cells(100, 1).Value = Oster_A
'Oster_A = Worksheets(Seitenname).Cells(100, 1).Value
'MsgBox (Oster_A & Chr(13) & Oster_E)
With Worksheets(Seitenname).Range("A1:GJ35")
Set Z = .Find(Oster_A, LookIn:=xlFormulas)
If Not Z Is Nothing Then
MsgBox ("Gefunden: " & Z.Column)
'Worksheets(Seitenname).Range(Z.Range).Select
End If
End With
End If
MsgBox (Year(Date) & Chr(13) & Jahr)
End Sub</pre>
</code>
Kann mir jemand von Euch bei der Problemlösung helfen ?
LG,
Berndi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
eine Beispieldatei wäre besser oT. (offen)
22.11.2009 08:57:15
Tino
AW: Datum finden ....
22.11.2009 13:59:00
Daniel
Hi
ohne Beispieldatei ist da schwer was zu sagen, zumal man deine Codeschnipsel ja zum Testen nicht einfach mal in ein Makro kopieren kann, da wichtige Informationen fehlen.
beim betrachten dieses Codes fallen mir folgende Fehlermöglichkeiten ein:
With Worksheets(Seitenname).Range("A1:GJ35")
Set Z = .Find(Oster_A, LookIn:=xlFormulas)

1. in der Range A1:GJ35 liegen die Datumswerte als Zahl vor und in der Variablen Oster_A als STRING, dann kann Excel keine Übereinstimmung finden
2. in der Range A1:GJ35 sind die Datumswerte tatsächlich über eine Formel berechnet und nicht als fester Wert abgelegt, dann hat die Suchfunktion mit der Einstellung xlFormulas keine Chance was zu finden, da so in den Formeltexten selbst und nicht in den angezeigten Werten gesucht wird. Hier wäre die Einstellung xlValues wahrscheinlich besser.
gruß, Daniel
Anzeige
AW: Datum finden ....
22.11.2009 18:59:35
Berndi
Die Datumswerte sind leider nicht als Zahl deiniert, sondern als Datum.
Das hatte ich schon übeprüft.
Auch habe ich versucht sämtliche Suchparameter zu variieren.
xlValues habe ich dabei selbstverständlich auch versucht.
Das mit den xlFormulas hat mir die Suchfunktion gegeben, nachdem ich einfach mal ein MAkro aufgenommen habe. :-)
Ich tippe darauf, dass die Zusammensetzung des Datums mit dem Slash ("/") mir hier letzten Endes die Probleme bereitet, weis jedoch nicht, wie ich das anders lösen soll ...
Ich werde die Tage die komplette Datei mal hier rein posten.
Habe sie auf der Arbeit und nicht hier ....
Danke schonmal !
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige