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

Objekt erforderlich

Objekt erforderlich
10.02.2021 13:31:50
Christian
Moin zusammen, ich habe im letzten Teil des Codes das Problem, dass Vba immer sagt "Objekt erforderlich" bei "Set Benutzer". Kann jemand hier bitte helfen?
Ebenfalls ist der Bereich, der in " " markiert ist noch optimierungbedürftig. Es soll folgendes passieren: Über Kontrollkästchen werden Hobbies ausgewählt und diese werden anschließend in eine Excel-Datei geschrieben - Klappt wunderbar. Jetzt will ich das Formular aber so gestalten, dass nur max. 3 Hobbies ausgewählt werden dürfen und habe dazu absolut keinen Lösungsansatz, ich bitte auch hier um Hilfe.
Sub CommandButton_Register_Click()
Dim OptionButton As MSForms.Control
Dim CheckBox As MSForms.Control
Dim Last As Integer
Dim Benutzer As String
Dim Target As Range
Benutzer = TextBox_Username.Value
Last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each OptionButton In Frame_Title.Controls
If OptionButton.Value = True Then
ActiveSheet.Cells(Last, 1).Value = OptionButton.Caption
End If
Next OptionButton
" If CheckBox_Boxing.Value = True Then
ActiveSheet.Cells(Last, 9).Value = CheckBox_Boxing.Caption
End If
If CheckBox_Swimming.Value = True Then
ActiveSheet.Cells(Last, 10).Value = CheckBox_Swimming.Caption
End If
If CheckBox_Gardening.Value = True Then
ActiveSheet.Cells(Last, 11).Value = CheckBox_Gardening.Caption
End If
If CheckBox_Running.Value = True Then
ActiveSheet.Cells(Last, 12).Value = CheckBox_Running.Caption
End If
If CheckBox_Cooking.Value = True Then
ActiveSheet.Cells(Last, 13).Value = CheckBox_Cooking.Caption
End If
If CheckBox_Reading.Value = True Then
ActiveSheet.Cells(Last, 14).Value = CheckBox_Reading.Caption
End If "
ActiveSheet.Cells(Last, 2).Value = UserForm_Formular.TextBox_Firstname
ActiveSheet.Cells(Last, 3).Value = UserForm_Formular.TextBox_Surename
ActiveSheet.Cells(Last, 4).Value = UserForm_Formular.TextBox_Street
ActiveSheet.Cells(Last, 5).Value = UserForm_Formular.TextBox_CityCode
ActiveSheet.Cells(Last, 6).Value = UserForm_Formular.TextBox_City
ActiveSheet.Cells(Last, 7).Value = UserForm_Formular.TextBox_Mail
ActiveSheet.Cells(Last, 8).Value = UserForm_Formular.TextBox_Username
Set Benutzer = Worksheet("Tabelle2").Range("H:H").Find(Benutzer, LookIn:=xlValues,   _
_
LookAt:=xlWhole)
If Not Benutzer Is Nothing Then
MsgBox "Dieser Nutzername ist bereits vergeben."
End If
End Sub

Danke allen Voraus.
Grüße
Christian

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

Betreff
Datum
Anwender
Anzeige
AW: Objekt erforderlich
10.02.2021 13:35:46
ChrisL
Hi Christian
Du kannst nicht für Suchkriterium (String) und Ergebnis (Range) die gleiche Variable benutzen.
Dim strBenutzer As String
Dim rngBenutzer As Range
strBenutzer = TextBox_Username.Value
Set rngBenutzer = Worksheet("Tabelle2").Range("H:H").Find(strBenutzer, LookIn:=xlValues,...
cu
Chris
AW: Objekt erforderlich
10.02.2021 13:58:59
Daniel
och, das geht schon, wenn man die Variable "Benutzer" als VARIANT deklariert.
dann kann dieser Typwechsel schon funktionieren.
obs sinnvoll ist im Sinne der Klarheit und Nachvollziehbarkeit des Codes ist ne andere Frage, aber machen kann man das.
Gruß Daniel
Anzeige
AW: Objekt erforderlich
10.02.2021 14:04:53
ChrisL
stimmt... könnte man, aber m.E. nicht zu empfehlen.
Bei der Gelegenheit ist mir gleich noch aufgefallen, dass Worksheet("Tabelle2")... in Worksheets("Tabelle2")... geändert werden muss ;)
AW: Objekt erforderlich
10.02.2021 14:06:39
Christian
Vielen Dank an dich Chris sowie an dich Daniel. Beides war hilfreich und hat geklappt. Leider muss sich irgendwo in diesem Code noch ein Fehler befinden, denn aktuell wird mir immer angezeigt "Benutzername ist doppelt". Selbst wenn dem nicht so ist oder ich das Formular ohne Daten starten.
Vielleicht sieht da jemand ja den Fehler.
Der Code soll folgendes machen: Ein Formular soll ausgefüllt werden und ein Username soll gewählt werden, wenn der username bereist existiert, wird eine MsgBox darüber informieren.
Anzeige
AW: Objekt erforderlich
10.02.2021 14:12:21
ChrisL
Benutzer oder Benutzername. Letzteres kommt im gezeigten Code gar nicht vor, aber auch sonst sieht es OK aus.
Mach mal eine Suche Ctrl+F über das ganze VBA Projekt. Vielleicht hast du Benutzer noch irgendwo Public deklariert.
Falls nicht bereits der Fall, aktiviere "Option Explicit"

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige