Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Range Übergabe an Funktion

Range Übergabe an Funktion
20.03.2006 16:40:09
Philipp
Hi, wer kann mir mal wieder helfen:
Problem:
in Zeile A-C stehen Datumsangaben (A=Tag,B=Monat,C=Jahr). Diese Bereich übergebe ich an meine Funktion, die die einzelnen Spalten nach dem Inahlt abfragen.
Wie muss ich das am geschicktesten machen? Wie kann ich dann den übergebenen Bereich so auslesen, dass ich die einzelnen Spalten in der Zeile abfragen kann (mit Offset?)?
Gruß,
Philipp

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range Übergabe an Funktion
20.03.2006 16:51:05
IngGi
Hallo Philipp,
also das ist mir zu allgemein gehalten. Gib doch mal ein konkretes Beispiel dafür, was mit den Datumsangaben passieren soll.
Gruß Ingolf
AW: Range Übergabe an Funktion
20.03.2006 17:14:43
Philipp
Sorry,
Hier nochmal das Problem:
In Zelle A1 steht zum Beispiel 05 (5. Tag)
In Zelle B1: 06 (Juli)
In Zelle C1: 05 (2005)
In Zelle D1: =FunktionTest(A1:C1)
In meiner FunktionTest übergebe ich den Bereich als Range (Funktion ist noch nicht fertig, sonst würde ich den Code reinkopieren)
Privat FunktionTest (Bereich as Range) as String
Zurück erhalte ich einen String.
In der Funktion überprüfe ich zuerst das Jahr (Case Abfrage). Je nachdem welches Jahr gebe ich an die FunktinTest einen String zurück oder frage mit weiteren If Abfragen, was für eine Monat in B steht und das gleiche Spiel dann noch mit den Tagen (nur wenn nicht eindeutig).
Reicht das als Angabe?
Schon einmal vielen Dank für die Hilfe
Anzeige
AW: Range Übergabe an Funktion
Philipp
Okey,
In der Case-Abfrage gucke ich welches Jahr angegeben wurde (C1). Wenn es zum Beispiel 2003 war, dann möchte ich für die Zelle D1 zurückgeben, "veraltet".
Wenn es das jahr 2004 (also 04 in Zelle C1 steht), dann muss ich überprüfen, ob es vor dem Monat 05 (Mai) war (Zelle B1).
Allerdings machen mir diese Switch und If Abfragen keine Probleme, vielmehr wüßte ich gerne, wie ich der Funktion die Matrix A1:C1 übergeben kann, damit ich die Zellen auslesen kann für meine Abfragen.
Dann muss nur noch den String mit meiner Auswertung zurückgeben an die Zelle D1. Kann ich dann das Range mit Offsets abfragen?
Bei dem Bild, habe ich Function kopiert, deshalb die falschen Bereiche, aber was gemeint ist, sollte ja klar sein.
Schon einmal Danke Ingolf für deine Hilfe
Userbild
Anzeige
AW: Range Übergabe an Funktion
20.03.2006 17:48:48
IngGi
Hallo nochmal,
mit diesen Zusatzinfos wird mir klar, dass mein erstes Beispiel verwirrend ist, da ich von anderen Voraussetzungen ausgegangen bin. Ich dachte nämlich, du willst in einem Funktionsaufruf mehrere Zeilen bearbeiten.
Mach es doch einfach so. Du übergibst als Bereich an die Funktion nur die Zelle C2 als Rangeobjekt. Die Jahresangabe kannst du dann direkt mit der Objektvariablen Bereich referenzieren, die Monatsangabe mit Hilfe von Offset als Bereich.Offset(0, -1) und die Tagesangabe entsprechend mit Bereich.Offset(0, -2).
Gruß Ingolf
AW: Range Übergabe an Funktion
20.03.2006 17:41:45
IngGi
Hallo Philipp,
jetzt ist (hoffentlich) alles klar. Mal als Beispiel, wobei als Bereich die Spalte C mit den Jahresangaben übergeben wird:

Private Function Test(Bereich As Range) As String
Dim rng As Range
Dim strText As String
For Each rng In Bereich
Select Case rng
Case "05"
strText = "Daten von 2005"
Case "06"
Select Case rng.Offset(0, -1)
Case "01"
strText = "Daten vom Januar"
Case "02"
strText = "Daten vom Februar"
Case "03"
strText = "Daten vom März"
End Select
End Select
Next 'rng
Test = strText
End Function
Gruß Ingolf
Anzeige
AW: Range Übergabe an Funktion
20.03.2006 18:01:33
Philipp
Wenn es ein elektronische Bier gäbe, würde ich dich dazu gerne einladen ;-)
Vielen Dank, hast mir geholfen, ich hatte das mit der Range übergabe nie hinbekommen.
Gruß,
Philipp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige