Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werte aus Tabelle an Userform übergeben?

Werte aus Tabelle an Userform übergeben?
15.10.2005 14:20:33
Frank
Hallo Leute!
Ich habe das Problem Werte aus einer Tabelle an eine Userform zu übergeben.
Es muss mittels Inputbox eine Datensatznummer angegeben werden.
Dann soll in dem Tabellenblatt in dem die relevanten Daten hinterlegt sind in Zeile A nach der passenden Nummer gesucht werden.
Das funktioniert auch.
Nun sollen die Werte, die daneben in den Spalten B,C,D u.s.w. stehen (hier stehen Daten wie Name, Vorname, Geburtsdatum.....) in meine Text und Comboboxen innerghalb der Userform "Eingabe" übergeben werden.
Das funktioniert dann leider nicht mehr.
Excel ist so frei und wählt einfach ein ganz anderes Tabellenblatt aus und nimmt Daten von dort. Welchen Fehler habe ich hier gemacht. Hat jemand eine Idee?
Folgendes habe ich gemacht:
Private Sub combuBearbeiten_Click()
Dim Eingabe As Variant
Dim d as integer
Eingabe = InputBox("Geben Sie die LfdNr an ..." + Chr(13) _
, " Datensatz einlesen ...")
If Eingabe = "" Then MsgBox "Sie haben keinen LfdNr angegeben ...!" + Chr(13) _
+ "Datensatz kann nicht eingelesen werden!", _
0 + 32 + 4096, " Fehlermeldung!"
If Eingabe = "" Then Exit Sub
Sheets("Master_Liste").Select
Columns("A:A").Select
Selection.Find(What:=Eingabe, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Select
d = Eingabe
Load frmEingabe
With frmEingabe
.txtLfdnr = d
.txtName = Cells(d, 2)
.txtVorname = Cells(d, 3)
.cmbGeschlecht = Cells(d, 4)
.txtGebdat = Cells(d, 5)
.txtGebort = Cells(d, 6)
.cmbNation = Cells(d, 7)
End With
frmStart.Hide
frmEingabe.Show

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 15:05:31
Ralf
Hi Frank,
load frmeingabe kannst Du Dir sparen. Was steht den drin in frm_activate? sheets("blablabla").activate? Dann musst Du Dich nicht wundern.
Die Inputbox kannst Du auch aus der Form heraus aufrufen, dann in Dein Blatt wechseln usw...
Ciao, Ralf
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 15:39:22
Frank
Hallo Ralf!
Dein Beitrag hat mir leider nicht weitergeholfen. Für mich leider unverständlich. Trotzdem Danke für den Versuch.
Hat noch jemand eine Idee und verständliche Erklärung?
Gruß
Frank
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 15:44:24
Franz
Hallo Frank,
wenn ich den Code richtig gelesen habe, dann ist nach der Datensatzsuche die Zelle mit der Datensatznummer die aktive Zelle. Dann müßte folgende Anpassung die Daten korrekt ins Formular einlesen:
With frmEingabe
.txtLfdnr = ActiveCell.Value
.txtName = ActiveCell.Offset(0, 1).Value
.txtVorname = ActiveCell.Offset(0, 2).Value
.cmbGeschlecht = ActiveCell.Offset(0, 3).Value
.txtGebdat = ActiveCell.Offset(0, 4).Value
.txtGebort = ActiveCell.Offset(0, 5).Value
.cmbNation = ActiveCell.Offset(0, 6).Value
End With

Das Problem bei der Verwendung von Cells ist, dass es sich zunächst einmal auf die Tabelle bezieht, aus der das Formular aufgerufen wurde.
Gruß
Franz
Anzeige
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 16:07:46
Frank
Hallo Franz!
Ich habe die Anpassung nach Deinem Vorschlag vorgenommen.
Ich erhalte nun eine Fehlermeldung, "Laufzeitfehler-Index außerhalb des gültigen Bereichs" - Fehlerstelle ist load frmEingabe.
Objektvariable oder Withblockvariable nicht festgelegt.
Gruß
Frank
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 17:44:18
Nepumuk
Hallo Frank,
versuch es mal so:
Private Sub combuBearbeiten_Click()
    Dim Eingabe As Variant
    Dim objCell As Range
    Eingabe = InputBox("Geben Sie die LfdNr an ..." _
        , " Datensatz einlesen ...")
    If Eingabe = "" Then
        MsgBox "Sie haben keinen LfdNr angegeben ...!" & vbLf _
            & "Datensatz kann nicht eingelesen werden!", _
            4128, " Fehlermeldung!"
        Exit Sub
    End If
    Set objCell = Sheets("Master_Liste").Columns(1).Find(What:=Eingabe, _
        LookIn:=xlFormulas, LookAt:=xlPart)
    If Not objCell Is Nothing Then
        Load frmEingabe
        With frmEingabe
            .txtLfdnr = objCell.Text
            .txtName = objCell.Offset(0, 1).Text
            .txtVorname = objCell.Offset(0, 2).Text
            .cmbGeschlecht = objCell.Offset(0, 3).Text
            .txtGebdat = objCell.Offset(0, 4).Text
            .txtGebort = objCell.Offset(0, 5).Text
            .cmbNation = objCell.Offset(0, 6).Text
        End With
        frmStart.Hide
        frmEingabe.Show
        Set objCell = Nothing
    Else
        MsgBox "Nix gefunden", 48, "Hinweis"
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 18:15:12
Frank
Hallo Nepumuk!
Klasse, es läuft einwandfrei. Ich habe noch ein "On Error Resume Next" dazwischen gesetzt, für den Fall das in der Tabelle Werte manuell verändert wurden, die in Userform bei der Eingabe eigentlich nicht aktzeptiert werden.
Vielleicht finde ich da aber noch eine andere Lösung. (ist so erst mal das schnellste).
Aber kannst Du mir auch verraten, welchen Fehler ich gemacht habe?
(Vielleicht verstehe ich es ja sogar -grins-)
Erst einmal aber VIELEN DANK!!!!
Gruß
Frank
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 18:21:50
Nepumuk
Hallo Frank,
du hast den Wert aus der Eingabe als Zeilenbezug für die anderen Werte verwendet.
d = Eingabe
.txtName = Cells(d, 2)
Gruß
Nepumuk

Anzeige
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 18:08:28
Franz
Hallo Frank,
diese Fehlermeldung kann ich jetzt nicht nachvollziehen, denn sie hätte vorher auch schon auftreten müssen.
Da muß noch was anderes nicht ganz korrekt sein. Ich hab versucht den Code und Userform nachzubilden. Allerdings in EXCEL97. So funktioniert er. Ich hab dabei den Makrobutton combuBearbeiten in einer anderen Tabelle als "Master_Liste" eingerichtet. Für diesen Button mußte ich die Eigenschaft "TakeFocusOnClick" auf False gesetzt werden.
Private Sub combuBearbeiten_Click()
Dim Eingabe As Variant
'  Dim d As Integer Zeile nicht mehr erforderlich
Eingabe = InputBox("Geben Sie die LfdNr an ..." + Chr(13) _
, " Datensatz einlesen ...")
If Eingabe = "" Then MsgBox "Sie haben keinen LfdNr angegeben ...!" + Chr(13) _
+ "Datensatz kann nicht eingelesen werden!", _
0 + 32 + 4096, " Fehlermeldung!"
If Eingabe = "" Then Exit Sub
Sheets("Master_Liste").Select
ActiveSheet.Columns("A:A").Select 'Zeile modifiziert
Selection.Find(What:=Eingabe, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate 'Zeile modifiziert für EXCEL97
ActiveCell.Select
Load frmEingabe ' Diese Zeile ist evtl. nicht erforderlich
With frmEingabe
.txtLfdnr = ActiveCell.Value
.txtName = ActiveCell.Offset(0, 1).Value
.txtVorname = ActiveCell.Offset(0, 2).Value
.cmbGeschlecht = ActiveCell.Offset(0, 3).Value
.txtGebdat = ActiveCell.Offset(0, 4).Value
.txtGebort = ActiveCell.Offset(0, 5).Value
.cmbNation = ActiveCell.Offset(0, 6).Value
End With
frmStart.Hide
frmEingabe.Show
End Sub

Gruß
Franz
Anzeige
AW: Werte aus Tabelle an Userform übergeben?
15.10.2005 18:18:03
Frank
Hallo Franz!
Dir auch noch mal VIELEN DANK für Deine Mühe.
Ich glaube Du hast eine ähnliche Lösung wie Nepumuk.
Gruß
Frank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige