Microsoft Excel

Herbers Excel/VBA-Archiv

Dynamischer Objektname | Herbers Excel-Forum


Betrifft: Dynamischer Objektname von: krasl
Geschrieben am: 20.01.2012 10:56:41

Hallo zusammen,

ich arbeit mich gerade in das Thema Klassen ein.

Dazu möchte ich gerne den Objektnamen in einer Schleife dynamisch halten.

Option Explicit

Sub Verdichter_einlesen()
Dim NK1, NK2, FF1, FF2, TK1, TK2 As Verdichter
Dim a As String
Dim b As String
Dim c As String
Dim d As String
Dim e As Boolean
Dim f As Integer
Dim g As Double
Dim varVD As Variant


Dim intVD As Integer  
Dim arVD As Variant
arVD = Array("NK1", "NK2", "FF1", "FF2", "TK1", "TK2")

For intVD = LBound(arVD) To UBound(arVD) 
        
        varVD = arVD(intVD)    
        Set varVD = New Verdichter

        a = arVD(intVD)
        b = UserForm1.Controls("cbHersteller" + arVD(intVD)).Value
        c = UserForm1.Controls("cbTyp" + arVD(intVD) )
        d = UserForm1.Controls("lblKaeltemittel" + arVD(intVD))
        e = UserForm1.Controls("chbFU" + arVD(intVD) )
        f = UserForm1.Controls("tbMaxfreq" + arVD(intVD)) 
        ....usw
Next intVD
End Sub
Ist das so überhaupt möglich?

Gruß

krasl

  

Betrifft: Im Prinzip schon, nur nicht so, ... von: Luc:-?
Geschrieben am: 20.01.2012 11:05:11

…Krasi,
denn, wenn Verdichter bei dir eine Objektklasse ist, wirst du einem Objekt daraus wohl kaum einen String zuweisen können! Das muss dann schon auch ein Objekt sein.
Gruß Luc :-?


  

Betrifft: AW: Im Prinzip schon, nur nicht so, ... von: krasl
Geschrieben am: 20.01.2012 11:24:39

Hallo luc,

erstmal danke für die schnelle antwort, allerdings werde ich mnoch nicht so richtig schlau daraus.

Sub Verdichter_einlesen()
Dim NK1, NK2, FF1, FF2, TK1, TK2 As Verdichter
Dim varVD As Variant
Dim intVD As Integer  
Dim arVD As Object

arVD = Array("NK1", "NK2", "FF1", "FF2", "TK1", "TK2")

For intVD = LBound(arVD) To UBound(arVD) 
        
        varVD = arVD(intVD)    
        Set varVD = New Verdichter
        
Next intVD
End Sub
So geht es auch nicht.


  

Betrifft: AW: Im Prinzip schon, nur nicht so, ... von: krasl
Geschrieben am: 20.01.2012 11:28:57

Sorry hab mich vertippt:

Sub Verdichter_einlesen()
Dim NK1, NK2, FF1, FF2, TK1, TK2 As Verdichter
Dim varVD Object
Dim intVD As Integer  
Dim arVD As Variant

arVD = Array("NK1", "NK2", "FF1", "FF2", "TK1", "TK2")

For intVD = LBound(arVD) To UBound(arVD) 
        
        varVD = arVD(intVD)    
        Set varVD = New Verdichter
        
Next intVD
End Sub



  

Betrifft: AW: Im Prinzip schon, nur nicht so, ... von: krasl
Geschrieben am: 20.01.2012 12:04:13

Liegt es evtl. am Array? Sorry bin grad absolut niedergeschlagen :(


  

Betrifft: AW: Im Prinzip schon, nur nicht so, ... von: Rudi Maintaire
Geschrieben am: 20.01.2012 13:41:30

Hallo,
varVD ist ein String, kein Objekt.
sowas würde gehen:

Sub Verdichter_einlesen()
Dim objVD(1 to 6) As Verdichter
Dim intVD As Integer 

For intVD = 1 to 6        
        Set objVD(intVD) = New Verdichter        
Next intVD
End Sub

Gruß
Rudi


Beiträge aus den Excel-Beispielen zum Thema "Dynamischer Objektname"