Anzeige
Archiv - Navigation
684to688
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
684to688
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

If Abfrage

If Abfrage
21.10.2005 21:24:10
Gregor
Hallo zusammen
In vier verschiedenen (nicht anreihenden) Spalten sind Jahrzahlen von 2005 bis 2020 eingetragen. Mittels UserForm bestimmt der User den Auswahlbereich (Zeitraum zB. von 2006 bis 2011). Diese übergebe ich den Variablen Jahr1 und Jahr2.
Jahr1 hat in diesem Beispiel also den Wert 2006, Jahr2 den Wert 2011.
Wie kann ich nun feststellen, ob die gesuchten Jahre im definierten Bereich vorkommen?
Ich habe folgenden Ansatz, komme aber nicht zum gewünschten Ergebnis (Freitagabend!!). Kann mir jemand weiterhelfen?
Zähler = 0
For Each objZeile In Worksheets("Master Datei").Rows
Set Bereich = Union(Worksheets("Master Datei"). _
Range(Cells(Zeile, 40), Cells(Zeile + Zähler, 40)), _
Range(Cells(Zeile, 42), Cells(Zeile + Zähler, 42)), _
Range(Cells(Zeile, 44), Cells(Zeile + Zähler, 44)), _
Range(Cells(Zeile, 47), Cells(Zeile + Zähler, 47)))
JahrMin = Application.WorksheetFunction.Min(Bereich)
JahrMax = Application.WorksheetFunction.Max(Bereich)
If JahrMin 0 And JahrMax 0 Then
If Jahr1 >= JahrMin And Jahr1 = JahrMin And Jahr2 End If
End If
usw.
Gesucht ist also ob die definierten Jahre 2006 bis 2011 im definierten Bereich vorhanden sind. Sollte doch mit einer plausiblen If-Abfrage möglich sein.
Vielen Dank und Gruss
Gregor

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

Betreff
Datum
Anwender
Anzeige
AW: If Abfrage
21.10.2005 22:16:05
Franz
Hallo Gregor,
sieht so aus, als ob Du bei der Deklarion der Bereich nicht ganz korrekt gearbeitet hast. Mit nachfolgenden Anpassungen werden die Jahreszahlen aus den Bereichen korrekt ausgelesen und Max. und Min.-Wert werden ermittelt.

Sub Test()
Dim wks As Worksheet, Bereich As Range, ojbZeile As Range, Zeile As Integer
Zeile = 1
Zähler = 0
Set wks = ThisWorkbook.Worksheets("MasterDatei")
With wks
For Each objZeile In .UsedRange.Rows
Set Bereich = Union(.Range(Cells(Zeile, 40), Cells(Zeile + Zähler, 40)), _
.Range(Cells(Zeile, 42), Cells(Zeile + Zähler, 42)), _
.Range(Cells(Zeile, 44), Cells(Zeile + Zähler, 44)), _
.Range(Cells(Zeile, 47), Cells(Zeile + Zähler, 47)))
JahrMin = Application.WorksheetFunction.Min(Bereich)
JahrMax = Application.WorksheetFunction.Max(Bereich)
If JahrMin <> 0 And JahrMax <> 0 Then
If Jahr1 >= JahrMin And Jahr1 <= JahrMax And Jahr2 >= JahrMin And Jahr2 <= JahrMax Then
End If
End If
Zeile = Zeile + 1
Next
End With
End Sub
Gruß
Franz
Anzeige
AW: If Abfrage
22.10.2005 01:02:16
Gregor
Hallo Franz
Vielen Dank für deinen Vorschlag. Ich habe ihn getestet, führt aber auch nicht zum gewünschten Ergebnis.
Nochmals zur Aufgabenstellung:
In einem mit einer Schlaufe wechselnden Bereich (nicht aneinanderreihende Spalten) soll abgecheckt werden, ob in diesem Bereich die ausgewählten Jahre (von Jahr1 bis Jahr2) vorkommen. Wenn ja, sollen diese Zeilen kopiert werden.
Nicht klar werde ich mit der Abfrage der Jahre. Wie kann ich das lösen?
Danke und Gruss
Gregor
AW: If Abfrage
22.10.2005 01:54:13
Aton
Hallo
Keine Befehle in den If Then Abfragen
Da kann wohl kaum was gehn.
Kleine Beispieldatei sagt mehr als 1000 worte.
Gruß Aton
Anzeige
AW: If Abfrage
22.10.2005 10:52:37
Peter
Servus,
bsp.
Sub t()
Dim intAnf As Integer, intEnd As Integer
Dim myrng As Range, rng As Range
intAnf = 2006
intEnd = 2011
Set myrng = Range("A1:A10")
intZähler = 1
For Each rng In Sheets("Tabelle1").Range(myrng.Address)
If rng >= intAnf And rng <= intEnd Then
rng.Offset(0, 1) = rng.Row
End If
Next
End Sub

MfG Peter
AW: If Abfrage
22.10.2005 19:36:08
Gregor
Hallo Peter
Ich habe soeben deinen Vorschlag getestet, damit komme ich zum gewünschten Ergebnis.
Vielen herzlichen Dank.
Gruss Gregor

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige