Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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
Objekt an Funktion übergeben
Dirk
Hallo liebes Forum,
Ich habe lange rumprobiert aber es will nicht gelingen...
... Wie kann ich ein Objekt an eine Funktion übergeben?
Hier der Aufruf
Private Sub CommandButton1_Click()
Call createarray("Tabelle1", 2, 1, 35, Userform1.ListBox1)
End Sub
Hier die Funktion
Function createarray(Tabelle, abZeile, abSpalte, letzteSpalte, ctl as control)
Dim vntArray As Variant
Dim wksq As Worksheet
Dim lngspalte As Long
Dim lngLetzteZeile As Long
Dim lngabzeile As Long
lngabzeile = abZeile
lngspalte = abSpalte
Set wksq = Sheets(Tabelle)
lngLetzteZeile = wksq.Cells(wksq.Rows.Count, lngspalte).End(xlUp).Row
lngLetzteSpalte = letzteSpalte
vntArray = wksq.Range(wksq.Cells(lngabzeile, lngspalte), wksq.Cells(lngLetzteZeile, lngLetzteSpalte)).Value
cnt.List = vntArray
End Function Hoffe das, dass verständlich ist?!
Liebe Grüße
Dirk

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

Betreff
Benutzer
Anzeige
AW: Objekt an Funktion übergeben
20.07.2010 21:18:45
Ramses
Hallo
Wenn schon müsste es statt
cnt.List = vntArray
ctl.List = vntArray
heissen.
Ungetestet könnte es so funktionieren
Ich gehe davon aus, dass die Funktion in einem externen Modul liegt
Private Sub CommandButton1_Click()
Call createarray("Tabelle1", 7, 1, 10, Me, Me.ListBox1.Name)
End Sub

Function createarray(Tabelle, abZeile, abSpalte, letzteSpalte, tarUF As UserForm, ctl As String)
Dim vntArray As Variant
Dim wksq As Worksheet
Dim lngspalte As Long
Dim lngLetzteZeile As Long
Dim lngLetzteSpalte As Long
Dim lngabzeile As Long
lngabzeile = abZeile
lngspalte = abSpalte
Set wksq = Sheets(Tabelle)
lngLetzteZeile = wksq.Cells(wksq.Rows.Count, lngspalte).End(xlUp).Row
lngLetzteSpalte = letzteSpalte
vntArray = wksq.Range(wksq.Cells(lngabzeile, lngspalte), wksq.Cells(lngLetzteZeile, lngLetzteSpalte)).Value
tarUF.Controls(ctl).List = vntArray
End Function
Gruss Rainer
Anzeige
AW: Objekt an Funktion übergeben
20.07.2010 21:21:23
Uduuh
Hallo,
1. eine Function wird nicht mit Call aufgerufen
2 warum weist du die übergebenen Variablen anderen Variablen zu? das ist überflüssig.
3. es müsste doch ctl.List heißen, nicht cnt.List
Private Sub CommandButton1_Click()
userform1.listbox1 = createarray(Sheets("Tabelle1"), 2, 1, 35)
End Sub
Function createarray(Tabelle As Worksheet, abZeile As Long, abSpalte As Long, letzteSpalte As  _
Long)
Dim lngLetzteZeile As Long
lngLetzteZeile = wksq.Cells(wksq.Rows.Count, abSpalte).End(xlUp).Row
createarray = wksq.Range(wksq.Cells(abZeile, abSpalte), wksq.Cells(lngLetzteZeile, letzteSpalte) _
).Value
End Function

Gruß aus’m Pott
Udo

Anzeige
AW: Objekt an Funktion übergeben
20.07.2010 21:25:04
Nepumuk
Hallo,
wo ist das Problem?
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub CreateList( _
        strTabelle As String, _
        lngAbZeile As Long, _
        lngSpalte As Long, _
        letzteSpalte As Long, _
        objListBox As MSForms.ListBox)

    
    With Sheets(strTabelle)
        objListBox.List = .Range(.Cells(lngAbZeile, lngSpalte), _
            .Cells(.Rows.Count, lngSpalte).End(xlUp)).Value2
    End With
    
End Sub

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
    Call CreateList("Tabelle1", 2, 1, 35, ListBox1)
End Sub

Gruß
Nepumuk
Anzeige
AW: Objekt an Funktion übergeben
20.07.2010 22:24:32
Dirk
Ja vielen lieben Dank an euch!!
Es funktioniert zumindest der Code von Ramses die anderen aber mit Sicherheit auch!!
Liebe Grüße
Der zutiefst dankbare Dirk
PS:
cnt sollte ctl heißen Tippfehler meinerseits ;)
PPS:
Vielleicht hat auch noch jemand einen Link zu Namenskonventionen mit denen tue ich mich als Bastler immer schwer. (Bin aber bereit dazu zu lernen;))

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige