Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1904to1908
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

Range Cells Bezug funktioniert nicht meh

Range Cells Bezug funktioniert nicht meh
07.11.2022 11:25:01
sisomyz
Hallo in die Forumsrunde,
nachdem ich heute den ganzen Vormittag damit verbracht habe eine Lösung für mein Problem zu finden, wende ich mich hier an das Forum, welches mir schon oft über das Archiv geholfen hat.
Ich habe die Problematik mit Range und Cells nicht verstanden... schon oft genutzt und es funktioniert auch aber aktuell stürzt mein Code an einer bestimmten Stelle ab und ich weiß nicht warum.
Vielleicht kann mir hier jemand helfen.
Der Code sieht wie folgt aus:

Public Function Monatswerte(Jahr As Integer, Monat As String, Station As String) As Integer
Dim Monat_Nummer As Integer
Dim Station_Zeile As Range
Dim Zeilen_Range_Monat As Range
Dim Station_Kennung As Integer
Dim Zeile_Monat_Ende As Integer
Dim Test As Integer
'Ermittlung Monatszahl
Select Case Monat
Case "Jan", "Januar"
Monat_Nummer = 1
Case "Feb", "Februar"
Monat_Nummer = 2
Case "Mrz", "März"
Monat_Nummer = 3
Case "Apr", "April"
Monat_Nummer = 4
Case "Apr", "Mai"
Monat_Nummer = 5
Case "Apr", "Juni"
Monat_Nummer = 6
Case "Apr", "Juli"
Monat_Nummer = 7
Case "Apr", "August"
Monat_Nummer = 8
Case "Apr", "September"
Monat_Nummer = 9
Case "Apr", "Oktober"
Monat_Nummer = 10
Case "Apr", "November"
Monat_Nummer = 11
Case "Apr", "Dezember"
Monat_Nummer = 12
End Select
'Ermittlung der Kennung
Set Station_Zeile = Workbooks("Niederschläge.xlsm").Worksheets("Stationen").Range("A1:A100")
With Application.WorksheetFunction
Zeile = .Match(Station, Station_Zeile, 0)
End With
Stations_Kennung = Workbooks("Niederschläge.xlsm").Worksheets("Stationen").Cells(Zeile, 2).Value
Set Jahr_Zeile = Workbooks("Niederschläge.xlsm").Worksheets("Daten").Range("c1:c30000")
'Ermittlung Zeile Jahr
With Application.WorksheetFunction
Zeile_Jahr = .Match(Jahr, Jahr_Zeile, 0)
End With
Set Spaltenmatrix = Workbooks("Niederschläge.xlsm").Worksheets("Daten").Range("A1:Z1")
With Application.WorksheetFunction
Spalte_Station = .Match(Stations_Kennung, Spaltenmatrix, 0)
End With
Set Zeilen_Range_Monat = Workbooks("Niederschläge.xlsm").Worksheets("Daten").Range(Cells(Zeile_Jahr, 4), Cells(Zeile_Jahr + 366, 4))
With Application.WorksheetFunction
Zeile_Monat_Ende = .Match(Monat_Nummer, Zeilen_Range_Monat, 0)
End With
Monatswerte = Zeile_Monat_Ende
End Function

Der Code an sich ist noch nicht fertig, hat also alles noch keinen Sinn. Bei Zeile "Set Zeilen_Range_Monat..." bricht Excel ab.
Aber warum?
Schon vorab einmal vielen Dank für das Hineindenken in dieses Problem.
Gruß Siso

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

Betreff
Datum
Anwender
Anzeige
AW: Range Cells Bezug funktioniert nicht meh
07.11.2022 11:45:09
GerdL
Hallo Siso,
Datei u. Blatt musst du vor "Cells" wiederholen oder erstere in ein With - End With-Konstrukt schreiben und mit Punkt vor Range und vor Cells darauf referenzieren.
Gruß Gerd
AW: Range Cells Bezug funktioniert nicht meh
07.11.2022 12:16:13
sisomyz
Vielen Dank, das war der Fehler. :-)
Viele Grüße
siso
AW: Range Cells Bezug funktioniert nicht meh
07.11.2022 11:46:55
Rudi
Hallo,
aber warum?: Wegen mangelhafter/ unvollständiger Referenzierung

Public Function Monatswerte(Jahr As Integer, Monat As String, Station As String) As Integer
Dim Monat_Nummer As Integer
Dim Station_Zeile As Range
Dim SpaltenMatrix As Range
Dim Jahr_Zeile As Range
Dim Spalte_Station  As Long
Dim Zeilen_Range_Monat As Range
Dim Zeile_Jahr As Long
Dim Zeile As Long
Dim Stations_Kennung As Integer
Dim Zeile_Monat_Ende As Integer
Dim Test As Integer
'Monatsnummer
Monat_Nummer = Month(CDate("1." & Monat))
'Ermittlung der Kennung
With Workbooks("Niederschläge.xlsm")
With .Worksheets("Stationen")
Set Station_Zeile = .Range("A1:A100")
Zeile = Application.Match(Station, Station_Zeile, 0)
Stations_Kennung = .Cells(Zeile, 2).Value
End With
With .Worksheets("Daten")
'Ermittlung Zeile Jahr
Set Jahr_Zeile = .Range("c1:c30000")
Zeile_Jahr = Application.Match(Jahr, Jahr_Zeile, 0)
Set SpaltenMatrix = .Range("A1:Z1")
Spalte_Station = Application.Match(Stations_Kennung, SpaltenMatrix, 0)
Set Zeilen_Range_Monat = .Range(.Cells(Zeile_Jahr, 4), .Cells(Zeile_Jahr + 366, 4))
Zeile_Monat_Ende = Application.Match(Monat_Nummer, Zeilen_Range_Monat, 0)
End With
End With
Heißer Tipp: Schreibe Option Explicit in den Kopf deines Moduls. Dann werden nicht deklarierte (oder falsch geschriebene) Variablen angemeckert.
Gruß
Rudi
Anzeige
AW: Range Cells Bezug funktioniert nicht meh
07.11.2022 12:17:45
sisomyz
Da hast Du recht, war jetzt erstmal quick and dirty...
Danke für den Tipp!
Viele Grüße
siso
AW: Range Cells Bezug funktioniert nicht meh
07.11.2022 12:56:12
Daniel
Hi
Verwende hier zum beschreiben des Zellbereichs Resize:

Zeilen_Range_Monat = Workbooks("Niederschläge.xlsm").Worksheets("Daten").Cells(Zeile_Jahr, 4).Resize(367, 1)
Dann musst du Datei und Blatt nicht mehrfach angeben.
Gruß Daniel

267 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige