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

Array in Variable schreiben funktioniert nicht

Array in Variable schreiben funktioniert nicht
16.09.2013 13:14:38
verslaan
Hallo zusammen
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

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array in Variable schreiben funktioniert nicht
16.09.2013 13:46:27
EtoPHG
Hallo verslaan,
Die zwei Funktionen funktionieren korrekt
Das nehme ich Dir nicht ab. Die Funktion colSelect gibt keinen Wert zurück, sonst müsste es irgendwo im Code dieser Funktion z.B. heissen:
colSelect = SpalteReturn

Was das Ganze hin und her wandeln von Spaltenzahlen ind Spaltenbuchstaben soll, bleibt mir aber verschlossen. Vor allem:
        Spalte = Suchbegriff.Column
SpalteReturn = SpaltenBuchstabeErmitteln2(Spalte)
Columns(SpalteReturn).Select
ist wohl der Obergipfel ;-):
In Codezeile 1 weist du den Spaltenindex einer (undefinierten) Variablen Spalte zu.
In Codezeile 2 ermittelst du über eine (sorry:hirnrissige Funktion) die Buchstaben-Kombi aus dem Index
um dann, in Codezeile 3, die Spalte zu selektieren!
Fazit: Statt 3 Zeilen würde Suchbegriff.EntireColumn.Select genügen, aber gehört sicher nicht in eine Funktion!
Gruess Hansueli

Anzeige
AW: Array in Variable schreiben funktioniert nicht
16.09.2013 14:19:37
Peter
Hallo Hansueli,
da es sich damals um die Konvertierung mit CDbl und heute mit CDate handelt, hatte ich die Hoffnung auf eine generelle Lösung des Unterschieds, bzw. der Schreibweise.
Damals war es durch Weglassen des CDbl zu lösen, heute durch die Angabe von Cells anstelle von Range.
Trotzdem danke für den Hinweis auf meinen alten Beitrag von vor fast zwei Jahren, denn den hatte ich bereits vergessen.
Gruß Peter

AW: Array in Variable schreiben funktioniert nicht
16.09.2013 14:28:32
Peter
Hallo Hansueli,
hier habe ich leider den falschen Beitrag erwischt.
Gruß Peter

AW: Array in Variable schreiben funktioniert nicht
16.09.2013 14:35:41
verslaan
Hallo Hansueli
Danke für die Superschnelle Antwort.
Funtkioniert jetzt.
Das mit dem "Hirnrissigen Code" darfst du mir nicht übelnehmen.... Programmiere erst seit ein paar Wochen auf VBA in Excel und das ist nunmal einfach nicht das gleiche wie PHP oder C#. ;-)
Danke für den Hinweis, werde das noch korrigieren.
Gruss

AW: Array in Variable schreiben funktioniert nicht
16.09.2013 15:02:19
verslaan
Hallo Hansueli
Danke für die Superschnelle Antwort.
Funtkioniert jetzt.
Das mit dem "Hirnrissigen Code" darfst du mir nicht übelnehmen.... Programmiere erst seit ein paar Wochen auf VBA in Excel und das ist nunmal einfach nicht das gleiche wie PHP oder C#. ;-)
Danke für den Hinweis, werde das noch korrigieren.
Gruss

Anzeige
AW: Array in Variable schreiben funktioniert nicht
16.09.2013 15:02:28
verslaan
Hallo Hansueli
Danke für die Superschnelle Antwort.
Funtkioniert jetzt.
Das mit dem "Hirnrissigen Code" darfst du mir nicht übelnehmen.... Programmiere erst seit ein paar Wochen auf VBA in Excel und das ist nunmal einfach nicht das gleiche wie PHP oder C#. ;-)
Danke für den Hinweis, werde das noch korrigieren.
Gruss

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige