Anzeige
Archiv - Navigation
1216to1220
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
Werte aus einer Tabelle in UserForm übernehmen
MB
Hallo ,
ich möchte eine Anmeldung mittels UserForm realisieren.
Dazu soll der angemeldete Benutzer ausgelesen werden --> user = Environ("Username"); funktioniert
In einer Tabelle suche ich die dazugehörigen Daten (Name, Vorname und Kennwort); funktioniert auch
Aber wie schreibe ich jetzt den Namen und Vornamen in die UserForm?
Hier mein Versuch:
wie gesagt, ich möchte per vba Name, Vorname und Benutzerkennung in die UserForm schreiben, dann soll der Anwender das Kennwort eingeben und mit OK soll´s dann weitergehen.

Dim wkb As Workbook
Dim wksUser As Worksheet
Dim user As String, n As String, vn as String, pw As String
Dim i As Integer
Set wkb = ActiveWorkbook
Set wksUser = Sheets("User")
user = Environ("Username")
With wksUser.Range("a1:a500")
Set b = .Find(user, LookIn:=xlValues)
i = b.Row
End With
vn =wksUser.Cells(i, 2)
n =wksUser.Cells(i, 3)
pw = wksUser.Cells(i, 4)
frmAnmeldung.Show
tbUser.Value = "ich"
bfName.Value = n
DoEvents
Für Eure Hilfe besten Dank im Voraus!
Liebe Grüße
Michael
tbUser=vn ? owT
01.06.2011 15:39:42
Rudi
AW: tbUser=vn ? owT
01.06.2011 15:55:39
MB
Hallo Rudi,
danke für die schnelle Antwort.
Ich habe es mit tbUser=vn probiert, meine UserForm bleibt aber leer.
Ich starte den code mit einem Button, das ganze läuft dann bis zum Einblenden der UserForm, aber der Name steht nicht drinn.
Nachdem ich den code mit Deinem Hinweis angepasst habe (tbUser=vn; bfName.Value = n gelöscht) läuft der code zwar ohne Fehler durch, aber wie gesagt, in der UserForm steht nichts.
Hast Du noch Hilfe für mich?
Liebe Grüße
Michael
AW: tbUser=vn ? owT
01.06.2011 15:59:11
Rudi
Hallo,
ist klar. Bei frmAnmeldung.Show stoppt der Code, bis die UF wieder geschlossen wird.
Dreh mal die Reihenfolge um.
tbUser=vn
frmAnmeldung.Show
Anzeige
AW: tbUser=vn ? owT
01.06.2011 16:03:56
MB
Hallo,
auch das Umdrehen der Reihenfolge bringt nichts, die UF bleibt leer.
Dennoch danke schön!
LG
Michael
dann lad mal die Datei hoch. owT
01.06.2011 16:20:00
Rudi
AW: dann lad mal die Datei hoch. owT
01.06.2011 16:29:23
MB
Hallo,
kann von hier aus nichts hochladen. Bis ich nach Hause komme wird auch noch ein bißchen dauern, vermutlich ist der Thread bis dahin leicht "versunken". Werd die Datei aber dennoch hochladen.
Ich werde jetzt mal ein neues UF machen, vielleicht habe ich ja irgend etwas falsch gemacht bei der ganzen Probiererei.
Danke für Deine Hilfe und vielleicht bis später!
Liebe Grüße
Michael
AW: dann lad mal die Datei hoch. owT
01.06.2011 18:41:18
MB
Hallo,
ich habe die Datei jetzt hochgeladen. Es ist nur ein Testdatei, in der ich die UF und auch die Programmierung der Menüleisten entwickle, der Code wird dann in die schon bestehende Datei übernommen.
https://www.herber.de/bbs/user/75125.xls
Leider kann ich aber im Augenblick die Datei zu Hause nicht testen, da ich in der unglücklichen Situation bin, zu Hause Excel 2007 zu haben und in der Arbeit Excel 2003. Da habe ich nicht richtig mitgedacht.
Für weitere Hilfe nochmals besten Dank im Voraus!
Liebe Grüße
Michael
Anzeige
Variablendeklaration usw.
01.06.2011 20:08:36
Erich
Hi Michael,
dass die Werte in deiner UF nicht angezeigt werden, ist erklärlich:
Du hast in CommandButton3_Click einige Variablen mit Werten belegt,
die so heißen wie die Textboxen bzw. Labels deiner UF.
Aber:
Die Namen der Textboxen bzw. Labels deiner UF sind in dieser Prozedur gar nicht bekannt.
Wenn du mit "Option Explicit" arbeiten würdest, hätte VBA sofort angemeckert,
dass tbUser, bfName usw. in CommandButton3_Click nicht deklariert sind.
Ich habe ein Modul eingefügt, in dem vier Variablen global deklariert sind.
In CommandButton3_Click werden diese Variablen mit Werten versorgt,
in UserForm_Activate() werden die Werte dann in die Objekte der UF übertragen.
Schaus dir einfach an: https://www.herber.de/bbs/user/75126.xls
Noch eins:
In User!A:A steht eine Zahl 44, kein Text. Aus Environ("Username") erhältst du aber einen String.
Sind alle Usernamen in Zahlen umwandelbar, enthalten nur Ziffern?
Wenn in User!A:A nach einer Zahl gesucht werden soll, musst du CLng(gstrUser) statt gstrUser suchen lassen.
Auf Dauer dürfte es aber sicherer sein, Usernamen generell als Strings zu verwalten.
Dem entsprechend sollten in User!A:A dann nur Texte stehen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Variablendeklaration usw.
02.06.2011 00:22:09
MB
Hallo Erich,
recht herzlichen Dank für die Hilfe und die ausführlichen Erklärungen - das hilft echt weiter. Meine VBA-Kenntnisse sind nicht so gut und vor öffentlichen Prozeduren oder Deklarationen schrecke ich, warum auch immer, zurück.
Den Code hab ich mir angeschaut, da hab ich wieder einiges lernen können! Ich weiß jetzt was ich falsch gemacht habe.
Noch eine Frage zum Verständnis, kann man die UF auch aus der CommandButton3_Click befüllen oder macht man das aus einem bestimmten Grund nicht. So wie es jetzt ist, werden die Text- und Beschriftungsfelder doch immer dann mit den Variablen-Werten befüllt, wenn die UF aktiviert wird.
Also, nochmal besten Dank für Deine Hilfe, damit kann ich wieder ein paar Riesenschritte machen.
Liebe Grüße aus Limbach
Michael
Anzeige
UserForm-Textbox mit Wert versorgen
02.06.2011 00:47:07
Erich
Hallo Michael,
man kann die UF auch aus der CommandButton3_Click befüllen.
Dazu muss man zunächst sicherstellen, dass die UF geladen ist (und damit die Objekte der UF angelegt sind).
Notfalls müsste man vor dem Befüllen die UF laden mit 'Load frmAnmeldung'.
Und dann reicht die Angabe z. B. des TextBox-Namens tbKennwort nicht aus,
vielmehr musst du auch den Namen der Komponente, zu dem das Objekt gehört, angeben, also z. B.
frmAnmeldung.tbKennwort = .Cells(lngZ, 4)
(Es könnte ja z. B. mehrere UFs geben, in denen es je ein tbKennwort gibt.)
Nach dem Befüllen wird die UF angezeigt mit frmAnmeldung.Show.
Der Weg über globale Variablen und das Befüllen im UF_Activate() ist wohl meist der einfachere.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
owT: Danke, wieder einiges gelernt!
03.06.2011 16:42:15
MB

347 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige