Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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
Userform in verschiedenen Tabellenblätte
12.05.2023 13:57:29
Jozef

Hallo zusammen,
ich bräuchte Hilfe bei Erstellung einer Userform.

ich habe eine Datenpunktliste wo diverse Zellen über andere Tabelle aus anderen Tabellenblat konfiguriert werden. ich habe mir zur Änderung der Konfiguration eine Userform erstellt, diese funktioniert ausschließlich wenn der Tabellenblatt wo sich die Daten befinden aktiv ist. Sobald ich das Makro von anderem Blatt abrufe, bekomme ich die Meldung Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt.

Anbei ist der Code:



Private Sub button_abbrechen_Click()
     Unload UserForm3
End Sub

Private Sub button_uebernehmen_Click()

Dim zelle As Range
    
Set zelle = Tabelle4.Range("tab_DLH_Konfigurator[DLH]").Columns(1).Find(UserForm3.cbx_dlh.Value, LookIn:=xlValues, lookat:=xlWhole)
    
zelle.Offset(0, 1).Value = UserForm3.TextBox1.Value
     zelle.Offset(0, 2).Value = UserForm3.cbx_zone.Value
    
If UserForm3.opt_kondensatpumpe_ja.Value = True Then
         zelle.Offset(0, 3).Value = "ja"
     ElseIf UserForm3.opt_kondensatpumpe_nein.Value = True Then
         zelle.Offset(0, 3).Value = "nein"
     Else
         zelle.Offset(0, 3).Value = ""
     End If
    
zelle.Offset(0, 4).Value = UserForm3.cbx_regelventil.Value
    

     If UserForm3.opt_zulufttemperatur_ja.Value = True Then
         zelle.Offset(0, 5).Value = "ja"
     ElseIf UserForm3.opt_zulufttemperatur_nein.Value = True Then
         zelle.Offset(0, 5).Value = "nein"
     Else
         zelle.Offset(0, 5).Value = ""
     End If
    
If UserForm3.opt_raumtemp_ja.Value = True Then
         zelle.Offset(0, 6).Value = "ja"
     ElseIf UserForm3.opt_raumtemp_nein.Value = True Then
         zelle.Offset(0, 6).Value = "nein"
     Else
         zelle.Offset(0, 6).Value = ""
     End If
    
zelle.Offset(0, 7).Value = UserForm3.txt_sensorbezeichnung.Value
    
If UserForm3.opt_kombisensor_ja.Value = True Then
         zelle.Offset(0, 8).Value = "ja"
     ElseIf UserForm3.opt_kombisensor_nein.Value = True Then
         zelle.Offset(0, 8).Value = "nein"
     Else
         zelle.Offset(0, 8).Value = ""
     End If
    

     zelle.Offset(0, 9).Value = UserForm3.cbx_sensortyp.Value
    

     If UserForm3.opt_freigabe_ja.Value = True Then
         zelle.Offset(0, 10).Value = "ja"
     ElseIf UserForm3.opt_freigabe_nein.Value = True Then
         zelle.Offset(0, 10).Value = "nein"
     Else
         zelle.Offset(0, 10).Value = ""
     End If
    

     Unload UserForm3
End Sub

Private Sub cbx_dlh_Change()

Dim zelle As Range
   
Set zelle = Sheets("Konfigurator").Range("tab_DLH_Konfigurator[DLH]").Columns(1).Find(UserForm3.cbx_dlh.Value, LookIn:=xlValues, lookat:=xlWhole)
   
UserForm3.TextBox1.Value = zelle.Offset(0, 1).Value
     UserForm3.cbx_zone.Value = zelle.Offset(0, 2).Value

If zelle.Offset(0, 3).Value = "ja" Then
         UserForm3.opt_kondensatpumpe_ja.Value = True
     ElseIf zelle.Offset(0, 3).Value = "nein" Then
         UserForm3.opt_kondensatpumpe_nein.Value = True
     Else
     End If

UserForm3.cbx_regelventil.Value = zelle.Offset(0, 4).Value

If zelle.Offset(0, 5).Value = "ja" Then
         UserForm3.opt_zulufttemperatur_ja.Value = True
     ElseIf zelle.Offset(0, 5).Value = "nein" Then
         UserForm3.opt_zulufttemperatur_nein.Value = True
     Else
     End If

If zelle.Offset(0, 6).Value = "ja" Then
         UserForm3.opt_raumtemp_ja.Value = True
     ElseIf zelle.Offset(0, 6).Value = "nein" Then
         UserForm3.opt_raumtemp_nein.Value = True
     Else
     End If

UserForm3.txt_sensorbezeichnung.Value = zelle.Offset(0, 7).Value

If zelle.Offset(0, 8).Value = "ja" Then
         UserForm3.opt_kombisensor_ja.Value = True
     ElseIf zelle.Offset(0, 8).Value = "nein" Then
         UserForm3.opt_kombisensor_nein.Value = True
     Else
     End If
     UserForm3.cbx_sensortyp.Value = zelle.Offset(0, 9).Value

If zelle.Offset(0, 10).Value = "ja" Then
         UserForm3.opt_freigabe_ja.Value = True
     ElseIf zelle.Offset(0, 10).Value = "nein" Then
         UserForm3.opt_freigabe_nein.Value = True
     Else
     End If


End Sub

Private Sub UserForm_Initialize()

Dim zelle As Range

UserForm3.cbx_dlh.RowSource = Range("tab_DLH_Konfigurator[DLH]").Address
     UserForm3.cbx_zone.RowSource = Range("tab_Zonenliste").Address
    
UserForm3.cbx_regelventil.AddItem "auf/zu"
     UserForm3.cbx_regelventil.AddItem "MOD"
     UserForm3.cbx_regelventil.AddItem "Bacnet"
     UserForm3.cbx_regelventil.ListIndex = 0
 
UserForm3.cbx_dlh.ListIndex = 0
     Set zelle = Tabelle4.Range("tab_DLH_Konfigurator[DLH]").Columns(1).Find(UserForm3.cbx_dlh.Value, LookIn:=xlValues, lookat:=xlWhole)
    
UserForm3.TextBox1.Value = zelle.Offset(0, 1).Value
     UserForm3.cbx_zone.Value = zelle.Offset(0, 2).Value
    
If zelle.Offset(0, 3).Value = "ja" Then
         UserForm3.opt_kondensatpumpe_ja.Value = True
     ElseIf zelle.Offset(0, 3).Value = "nein" Then
         UserForm3.opt_kondensatpumpe_nein.Value = True
     Else
     End If
    
Me.cbx_regelventil.Value = zelle.Offset(0, 4).Value
    
If zelle.Offset(0, 5).Value = "ja" Then
         UserForm3.opt_zulufttemperatur_ja.Value = True
     ElseIf zelle.Offset(0, 5).Value = "nein" Then
         UserForm3.opt_zulufttemperatur_nein.Value = True
     Else
     End If
    
If zelle.Offset(0, 6).Value = "ja" Then
         UserForm3.opt_raumtemp_ja.Value = True
     ElseIf zelle.Offset(0, 6).Value = "nein" Then
         UserForm3.opt_raumtemp_nein.Value = True
     Else
     End If
    
UserForm3.txt_sensorbezeichnung.Value = zelle.Offset(0, 7).Value
    
If zelle.Offset(0, 8).Value = "ja" Then
         UserForm3.opt_kombisensor_ja.Value = True
     ElseIf zelle.Offset(0, 8).Value = "nein" Then
         UserForm3.opt_kombisensor_nein.Value = True
     Else
     End If
     UserForm3.cbx_sensortyp.Value = zelle.Offset(0, 9).Value
    
If zelle.Offset(0, 10).Value = "ja" Then
         UserForm3.opt_freigabe_ja.Value = True
     ElseIf zelle.Offset(0, 10).Value = "nein" Then
         UserForm3.opt_freigabe_nein.Value = True
     Else
     End If

End Sub




Hätte jemand Idee wie ich es beheben könnte?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform in verschiedenen Tabellenblätte
12.05.2023 19:39:54
Jozef
Hier bleibt es dann stehen...
Userbild

ich habe mittlerweile die Datei auf WE-Transfer hochgeladen falls nötig, kann ich den Link zur Verfügung stellen.


AW: Userform in verschiedenen Tabellenblätte
12.05.2023 19:50:57
ralf_b
es ist nicht sicher das zelle überhaupt ein Suchergebnis bekommt.
deshalb prüft man zelle bevor man es weiter verwendet
If not zelle is nothing then
dein Code...
else
msgbox "Kein Treffer"
end if


AW: Userform in verschiedenen Tabellenblätte
12.05.2023 20:42:47
Jozef
Danke für deine Antwort,

Du hast recht mit dem, dass kein Wert gefunden wird, also kann kein Wert übergeben werden. Ich verstehe aber nicht, warum es funktioniert, wenn ich davor die Tabelle4/Sheets("Konfigurator") aktiviere... Das ist mir ein Rätsel.

Wie kann ich das Code ändern, dass es auch ohne Aktivierung des Arbeitsblattes funktionieren würde?

Viele Grüße
Jozef


Anzeige
AW: Userform in verschiedenen Tabellenblätte
12.05.2023 23:08:01
ralf_b
wenn du die Worksheets als Referenz für die Ranges voranstellst, sollte eigentlich kein Fehler deswegen auftreten.
mir fällt so kein Grund ein warum es nicht funktionieren sollte. Blattschutz besteht besteht nicht oder?
Vielleicht sollte man mal auf die Datei schauen.

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige