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

Zeilenbereich finden

Zeilenbereich finden
06.10.2008 08:18:25
Heß
Hallo @ all,
auf einem Excelblatt habe ich einen Jahreskalender in der Spalte A vom 01.01 - 31. 12 in Zeilen stehen.
In den Spalten die dazugehörigen Namen (Meyer, Müller Schulz)....
Beim auslesen der Daten (im Moment noch mit einer For i Schleife) muß ich für jeden Monat das gesamte
Tabellenblatt durchlaufen!! Dies bedeutet aber das jeder Mitarbeiter und jeder Monat immer komplett ausgelesen werden muß. Dies möchte ich optimieren, in dem ich den jew. Monat eingrenze
Bin jetzt auf der suche nach einer Funktion, die mir die Zeilenbereiche ausgibt.
Also wenn ich Januar Suche dann müßt eich die Info erhalten A1 - A31, suche ich Februar dann A 32 bis....... usw. usw
so sollen die Werte (lng_von lng_bis) dann in die Function kommen

Function getUrlaub(ByVal lng_Spalte As Long, _
ByVal lng_von As Long, _
ByVal lng_bis As Long) As String
Dim i As Long
Dim strTag As String
Dim strMonat As String
With wks_Urlaub
For i = lng_von To lng_bis
If .Range(lng_Spalte & i).Value = "" Then
strTag = strTag & "#;"
Else
strTag = strTag & .Range(lng_Spalte & i).Value & ";"
End If
End If
Next i
End With
getUrlaub = strTag
End Function


´
Diese Function füllt mir ein Array für den Mitarbeiter und den Monat

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilenbereich finden
06.10.2008 11:31:07
Daniel
Hi
wenn jeder Tag des Jahres eine Zeile ist, dann bekommts du die Zeilen-Nr eines bestimmten Tages mit der Formel:
=Datum - 1.1.2008 +1
Ein Datum ist für Excel auch nur eine Zahl, bei der jeder Tag den Wert 1 hat.
Gruß, Daniel
AW: Zeilenbereich finden
06.10.2008 11:48:01
fcs
Hallo Werner,
die Zeilennummern muss du dann nach Eingabe des Monats Suchen z.B. in einer For-Next-Schleife.
Beispiel:

Sub aaTest()
Dim lngZeile As Long, lngZvon As Long, lngZbis As Long
Dim varEingabe, wks As Worksheet
varEingabe = Application.InputBox(Prompt:="Bitte Nummer des Monats eingeben", _
Title:="Monats-Eingabe", _
Type:=1)
If varEingabe = False Then Exit Sub
If varEingabe  12 Then
MsgBox varEingabe & " = unzulässiger Monat"
Else
Set wks = ActiveSheet
With wks
For lngZeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If Month(.Cells(lngZeile, 1)) = varEingabe Then
lngZvon = lngZeile
Exit For
End If
Next
lngZbis = lngZvon
For lngZeile = lngZvon + 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If Month(.Cells(lngZeile, 1))  varEingabe Then
Exit For
End If
lngZbis = lngZeile
Next
End With
End If
End Sub


Mein beispiel setzt voraus, dass in Spalte A ein "richtiges" Exceldatum steht.
Andernfalls muss du einen Textstring-Vergleich für den Monat machen.
Dananch kannst du dann die Ergebnisse an deine Function übergeben.
Gruß
Franz

Anzeige
AW: Zeilenbereich finden
06.10.2008 12:57:17
Heß
;o) *Perfekt*
Vielen Dank Franz, genau dass habe ich gesucht.
Ich Suche aber nach dem TextString in Spalte A.

.Cells(lngZeile, 1).Value 

Dort lasse ich mir (umständlicherweise ;o/) das Datum aus der Spalte C als Monat ausgeben (=MONAT(Cxyz)). Nachdem ich deinen Vorschlag gesehen habe, wollte ich gleich dirket in der Spalte C, nach dem Monat suchen lassen.
Dort wird aber das Datum per Formel eingetragen (=DATUM(Jahr;1;ZEILE()-8)) [Start ab der Zeile 9]
Habe ich es nicht hinbekommen, diese direkt auszulesen (was aber kein Problem ist).
Über meine Hilfsspalte funktionierts trotzdem eindwandfrei.
LG
woerny

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige