Ich habe folgendes Problem:
Ich kopiere mit einem Spezialfilter aus einer Tabelle gewisse Daten in eine zweite Tabelle, für die Daten aus der Filtermatrix muss ich die eine Suche ausführen um die richtige Spalte zu bekommen was auch funktioniert, jedoch kann ich nach Abschluss der Funktion das gespeicherte Array nicht ausgeben (ist leer) und somit auch nicht sinnvoll in eine Variable speichern.
Am Anfang werden die drei Zellen der Filter Matrix abgegriffen und dann durch die Funktion _ ColSelect gejagt (siehe unten)
kw1 = Worksheets("Filter").Range("G1")
kw2 = Worksheets("Filter").Range("H1")
kw3 = Worksheets("Filter").Range("I1")
kw(0) = kw1
kw(1) = kw2
kw(2) = kw3
'Spaltenbuchstaben der Variabeln zurückgeben
'ACHTUNG: Funktioniert noch nicht richtig!!!!!!
i = 0
For i = 0 To 2
j = kw(i)
kw(i) = ColSelect(j)
Next
Die zwei Funktionen funktionieren korrekt und geben mir die richtigen Buchstaben zurück wenn _ ich am Schluss der Funktion ColSelect ein Debug.Print(SpalteReturn) mache.
'ColSelect Funktion
Function ColSelect(Eingabe As String)
'DEFINITION - STR
Dim Spalte As Integer
Dim Suchbegriff
Dim SpalteReturn
Dim FehlerAusg As String
'DEFINITION - END
Suchbegriff = Eingabe
Set Suchbegriff = Columns("M:BZ").Find( _
What:=Suchbegriff, _
LookIn:=xlValues, _
LookAt:=xlPart)
'Falls keine Spalte gefunden - Fehlermeldung ausgeben
If Suchbegriff Is Nothing Then
FehlerAusg = "Die Kalenderwoche " & Eingabe & " konnte nicht gefunden werden. Überprü _
fen Sie bitte die Filtereinstellungen!"
MsgBox FehlerAusg
Else
'Spalte auswählen
Spalte = Suchbegriff.Column
SpalteReturn = SpaltenBuchstabeErmitteln2(Spalte)
Columns(SpalteReturn).Select
End If
End Function
Function SpaltenBuchstabeErmitteln2(sColumn As Integer)
'DEFINITION - STR
Dim iVolleAZ As Integer
Dim iRest As Integer
Dim var1 As Integer
Dim var2 As Integer
'DEFINITION - END
iVolleAZ = Int(sColumn / 26)
iRest = sColumn - iVolleAZ * 26
var1 = 64 + iVolleAZ
var2 = 64 + iRest
If iVolleAZ > 0 Then
SpaltenBuchstabeErmitteln2 = Chr(var1) & Chr(var2)
Else
SpaltenBuchstabeErmitteln2 = Chr(var2)
End If
If SpaltenBuchstabeErmitteln2 = "A@" Then
SpaltenBuchstabeErmitteln2 = "Z"
ElseIf SpaltenBuchstabeErmitteln2 = "B@" Then
SpaltenBuchstabeErmitteln2 = "BZ"
ElseIf SpaltenBuchstabeErmitteln2 = "C@" Then
SpaltenBuchstabeErmitteln2 = "AZ"
End If
End Function
Besten Dank für Hilfe
Gruss