Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1588to1592
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 initialize bestimmte zeile
11.11.2017 23:46:42
Matthias
Guten Abend,
ich bin noch relativ neu in der VBA Programmierung und habe Fragen zur Initialisierung einer userform.
Folgendes Ziel habe ich:
Ich habe eine Datenbank über mehrere Zeilen. Man soll über eine userform eine gewählte Zeile der Datenbank ändern können ohne alles erneut einzugeben.
Die Tabelle hat einen Button zur Änderung der Daten. Dieser öffnet eine userform welche eine Eingabe der gewünschten Zeile (die man ändern möchte) abfragt. Bestätigt man die Abfrage mit der gewünschten Zeile, öffnet sich eine 2te userform in der die Daten der gewünschten Zeile eingetragen sind.
Hier der Code der 1 userform für die Zeilenabfrage:

Private Sub btnCancel_Click()
Unload Me
End Sub
Private Sub btnOk_click()
Dim i As Long
i = TxtBox_Defekt_NR.Value
Overlay_EintragDefekt.Show
Unload Me
End Sub
Hier der Code der 2ten userform:
Private Sub btnCancel_Click()
Unload Me
End Sub
Private Sub btnOk_click()
'Startet ab Zeile 7
Dim lZeile As Variant
lZeile = Evaluate("=MATCH(TRUE,INDEX(D7:D1006="""",0,0),0)+6")
If IsNumeric(lZeile) Then
Application.GoTo Reference:=Cells(lZeile, 4)
'Sicherheitsabfrage
If TxtBox_Defekt_Name.Value = "" Then
MsgBox "Es wurde kein Gerät eingetragen. Bitte korrigieren!", _
vbExclamation
Exit Sub
Else
'Sicherheitsabfrage
If TxtBox_Defekt_Modell.Value = "" Then
MsgBox "Es wurde keine Modellnummer eingetragen. Bitte korrigieren!", _
vbExclamation
Exit Sub
Else
'Sicherheitsabfrage
If TxtBox_Defekt_SN.Value = "" Then
MsgBox "Es wurde keine Seriennummer (SN) eingetragen. Bitte korrigieren!", _
vbExclamation
Exit Sub
Else
'Sicherheitsabfrage
If TxtBox_Defekt_Defekt.Value = "" Then
MsgBox "Es wurde keine Beschreibung des Defekts eingetragen. Bitte  _
korrigieren!", _
vbExclamation
Exit Sub
Else
'Werte auslesen und eintragen
ActiveCell.Offset(0, 0).Value = TxtBox_Defekt_Name
ActiveCell.Offset(0, 1).Value = TxtBox_Defekt_Modell
ActiveCell.Offset(0, 2).Value = TxtBox_Defekt_SN
ActiveCell.Offset(0, 3).Value = TxtBox_Defekt_Defekt
'Leert nach Eingabe die Textfelder
Dim ObCb As Object
For Each ObCb In Me.Controls
If TypeName(ObCb) = "TextBox" Then ObCb.Value = ""
Next ObCb
End If
End If
End If
End If
End If
Unload Me
End Sub
Private Sub UserForm_Initialize()
TxtBox_Defekt_Name = Cells(i, 4)
TxtBox_Defekt_Modell = Cells(i, 5)
TxtBox_Defekt_SN = Cells(i, 6)
TxtBox_Defekt_Defekt = Cells(i, 7)
End Sub
Mein Problem ist nun das der Code für die Initialisierung leider nicht funktioniert. Ich hätte gerne das die Variable i der gewünschten Zeilennummer entspricht und damit die Initialisierung der Daten aus der gewünschten Zeile erfolgen.
Ich komme leider nicht weiter....
Vielleicht gibt es ja auch einen einfacheren Weg :D
LG Matthias
PS: Vielen Dank vorab für eure Hilfe :)

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

Betreff
Datum
Anwender
Anzeige
AW: userform initialize bestimmte zeile
12.11.2017 04:27:42
Gerd
Moin Matthias,
schreibe die Variablendeklaration in ein allgemeines Modul ganz oben
Public i As Long
Gruß Gerd
AW: userform initialize bestimmte zeile
12.11.2017 08:49:51
Matthias
Hallo Gerd,
ich habe es genauso umgesetzt. Leider funktioniert es aber nicht. Es werden keine Werte in meine userform übernommen :( Hat jemand einen anderen Weg?
AW: userform initialize bestimmte zeile
12.11.2017 08:46:46
Hajo_Zi
Hallo Matthias,
unabhängig vom Problem. Du hast schon beachtet das Private Sub UserForm_Initialize() in einer Sitzung nur einmal ausgeführt wird?
Besser ist Private Sub UserForm_Activate()

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: userform initialize bestimmte zeile
12.11.2017 08:59:07
Matthias
Danke Hajo,
ich habe es geändert, daran hatte ich gar nicht gedacht ;) Eine kleine Frage zur Benennung habe ich noch für Private Sub UserForm_Activate().
Ist UserForm = der Name meiner UserForm oder ist das ein allgemeiner Befehl. Ich habe nämlich beides probiert und bekomme keine Daten in meiner UserForm angezeigt.
AW: userform initialize bestimmte zeile
12.11.2017 09:02:20
Hajo_Zi
die Code Zeile muss nicht geändert werden.
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Gruß Hajo
Anzeige
AW: userform initialize bestimmte zeile
12.11.2017 13:04:34
Matthias
Danke für das Angebot, ich habe den Fehler bereits selber gefunden :)
AW: userform initialize bestimmte zeile
12.11.2017 11:30:00
Ralf
Hi Matthias,
Das Ereignis Activate wird immer über den Klassennamen UserForm aufgerufen. Unabhängig von ihrem, durch Dich vergebenen Objektnamen. Bsp.:
Private Sub UserForm_Activate()
MsgBox Me.Name 'Hier wird der Name der Userform angezeigt
End Sub
Und da hinein schreibst Du, statt cells(i,4) (denn selbst das kann zu falschen Eingaben führen)
Private Sub UserForm_Activate()
Dim i As Long
i = ActiveCell.Row
With ThisWorkbook.ActiveSheet
TxtBox_Defekt_Name = .Cells(i, 4)
TxtBox_Defekt_Modell = .Cells(i, 5)
TxtBox_Defekt_SN = .Cells(i, 6)
TxtBox_Defekt_Defekt = .Cells(i, 7)
End With
End Sub

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige