Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten von Tabelle in Userform laden

Daten von Tabelle in Userform laden
Tabelle
Hallo und eine schönen Nachmittag,
ich hoffe es kann mir jemand helfen :-(
Ich habe für unsere Mitarbeiter ein Formular erstellt in dem sie gewisse Daten eintragen können.
Das klappt wunderbar meiner Meinung, die Daten werden Zeilenweise in das Tabellenblatt eingetragen.
Habe aber jetzt noch eine zweite Userform wo diese Eingetragenen Daten wieder ausgelesen werden müssen, sprich einfach zum auslesen und korrigieren.
In der Userform befinden sich 3 commandbuttons (zurück, weiter,korriegieren). Ich hoffe ihr versteht was mein Ziel ist.
Mit "zurück" & "weiter" möchte ich zwischen den eingetragenen Daten switchen und jeweils bei Bedarf korrigieren.
In der Anlage habe ich die Datei mal Hochgeladen
Bin euch wirklich sehr Dankbar für eure Hilfe bzw. Verbesserungsvorschläge
Wenn ich das hinkriege bekomm ich einen dicken fetten Mitarbeiter plus :-)
Meine VBA Kenntnisse haben bis dahin gereicht, ich weiss jetzt nicht mehr weiter
Lg aus Wien
Fatih

Die Datei https://www.herber.de/bbs/user/68865.xls wurde aus Datenschutzgründen gelöscht

Anzeige
AW: Daten von Tabelle in Userform laden
29.03.2010 17:30:15
Tabelle
Hallo Fatih,
und warum hast Du nicht Daten, Maske benutzt, da ist das schon alles drin.

AW: Daten von Tabelle in Userform laden
29.03.2010 17:38:10
Tabelle
Hallo Hajo,
danke für deine Antwort
an die Datenmaske hab ich auch schon gedacht, nur ich hab zwei Textboxen drinnen wo vermutlich ein langer Satz drinnen stehen wird.
-Inhalt und Vereinbarungen
-sonstige Vereinbarung (Wenn du dir Datei angesehen hast,was ich hochgeladen habe)
Ich hab keine Ahnung wie ich diese Einträge auslesen kann
Vielleicht so?
Private Sub Userform Initialize()
Textbox1.value = Sheets("").range (A1).value
End Sub
Wenn ich das so hinschreibe, bekomme ich genau einen Eintrag, aber ich möchte mit dem Vor & Zurück hin und her Switchen.
lg fatih
Anzeige
AW: Daten von Tabelle in Userform laden
29.03.2010 18:28:21
Tabelle
Hallo Fatih,
wie willst du denn die Zeile des anzuzeigenden Datensatzes im Userform2 auswählen?
Wenn du sehr wenige Daten hast, dann kann man man einfach in Zeile 2 anfangen und mit den Pfeiltasten aufwärts/abwärts zählen. Den Zeilenwert speicherst du in einer im Userform-Modul in der 1. Zeile als Private deklarierten Variablen.
Bei vielen Datensätzen sollte die Auswahl des Datensatzes in einer Liste (Kombobox oder Listbox) möglich sein.
Für das Einlesen der Tabellendaten ist eine eigene Subroutine erforderlich, die jeweils nach Änderung der Zeilen-Nr. von den beiden Pfeilbuttons gestartet wird.
Weiterer Hinweis: Wenn man die Eingabe-Steuerelemente per Tab-Taste ansteuert, dann ist die Reihenfolge etwas wild. Ändere für Comboboxen und Textboxen die Eigenschaft "Tabindex" beginnend von oben im UF aufsteigend von 0.
Gruß
Franz
'Prozedur für Userform2:
Option Explicit
Private ZeileAktuell As Long
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub DatenEinlesen()
With Worksheets("Daten")
Me.TextBox1.Value = .Cells(ZeileAktuell, 1).Value
Me.TextBox4.Value = .Cells(ZeileAktuell, 2).Value
Me.TextBox2.Value = .Cells(ZeileAktuell, 3).Value
Me.TextBox3.Value = "?" 'Name Vermittler
Me.TextBox5.Value = .Cells(ZeileAktuell, 4).Value
Me.TextBox6.Value = .Cells(ZeileAktuell, 5).Value
Me.TextBox7.Value = .Cells(ZeileAktuell, 6).Value
Me.TextBox8.Value = .Cells(ZeileAktuell, 7).Value
Me.TextBox9.Value = .Cells(ZeileAktuell, 8).Value
Me.TextBox10.Value = .Cells(ZeileAktuell, 9).Value
End With
End Sub
Private Sub CommandButton2_Click()
'Daten korrigieren
If MsgBox("Daten ändern?", vbQuestion, "Datensatz korrigieren") = vbYes Then
With Worksheets("Daten")
.Cells(ZeileAktuell, 1).Value = Me.TextBox1.Value
.Cells(ZeileAktuell, 2).Value = Me.TextBox4.Value
.Cells(ZeileAktuell, 3).Value = Me.TextBox2.Value
'      .Cells(ZeileAktuell, ?).Value = Me.TextBox3.Value 'Name Vermittler
.Cells(ZeileAktuell, 4).Value = Me.TextBox5.Value
.Cells(ZeileAktuell, 5).Value = Me.TextBox6.Value
.Cells(ZeileAktuell, 6).Value = Me.TextBox7.Value
.Cells(ZeileAktuell, 7).Value = Me.TextBox8.Value
.Cells(ZeileAktuell, 8).Value = Me.TextBox9.Value
End With
'    MsgBox ("Die Daten wurden geändert")
End If
End Sub
Private Sub CommandButton3_Click()
'Pfeil weiter
ZeileAktuell = ZeileAktuell + 1
With Worksheets("Daten")
If ZeileAktuell = 2 Then
Call DatenEinlesen
Else
MsgBox "1. Datensatz wird angezeigt", vbQuestion + vbOKOnly, "Datensatz zurück"
End If
End Sub
Private Sub UserForm_Initialize()
Worksheets("Daten").Activate
ZeileAktuell = 2
Call DatenEinlesen
End Sub

Anzeige
AW: Daten von Tabelle in Userform laden
30.03.2010 10:24:29
Tabelle
Einen wunderschönen Guten Morgen,
vorweg vielen vielen Dank für eure Bemühungen, ich habe mir jetzt die Vorschläge angeschaut bzw. auch gleich verarbeitet. Ich muss sagen, die Umsetzung ist echt genial.
Ich habe den Code von Chris in mein Hauptdokoment kopiert und zusätzlich noch die fehlende Listbox eingefügt. Es funktioniert genau wie ich es mir vorgestellt habe.
Lieber fcs, also die Datei wird wöchentlich bearbeitet von ca. 19 Mitarbeiter. Diese werden dann mir die Datei per Mail (Lotus Notes) zusenden. Habe auch im Forum ein Beitrag gefunden wo ich Lotus Notes direkt per Klick anspreche. Funktioniert auch wunderbar.
Per commanbutton öffnet sich mein Mailprogramm mit ein neuses Memo, der Absender und der Betreff sind schon vordefiniert, aber wie bekomme ich jetzt nur die Tabelle "Daten" in das Memo rein?
Private Declare

Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nshowcmd As Long) As Long

Sub Bild8_BeiKlick()
Dim strToReceiver As String
Dim strSubject As String
Dim strBody As String
strToReceiver = "vpmonitoring@helvetia.at"
strSubject = "Helvetia Action Tracking"
Call ShellExecute(0&, "Open", "mailto:" & strToReceiver _
& "?Subject=" & strSubject, "", "", 1)
End Sub
Wenn ihr mir da auch kurz weiterhelfen könnten, dann bin ich wunschlos glücklich, aber wenn nicht is auch kein Problem.
Trotzdem, vielen vielen Dank nochmals an euch beide.
lg
fatih
Anzeige
AW: Daten von Tabelle in Userform laden
30.03.2010 15:06:59
Tabelle
Hallo Fatih,
dann muss du das Blatt "Daten" kopieren und in einer separaten Datei speichern. Dann kannst du es als Attachment(Anhang) der Mail hinzufügen.
Ich kenne die Parameter, die Notes verarbeitet nicht bzw. ggf. deren Syntax. Firefox, das ich verwende, übernimmt das Attachment jedenfalls nicht als weiteren Parameter.
Ich hab in dein Makro mal das Erstellen der an die E-Mail anzuhängenden Datei eingebaut.
Gruß
Franz
Sub Bild8_BeiKlick()
Dim strToReceiver As String
Dim strSubject As String
Dim strBody As String
Dim wbMail As Workbook, strAttachment As String, strPfad As String
'Blatt Daten kopieren und als Datei speichern
With ActiveWorkbook
strPfad = .Path
.Worksheets("Daten").Copy
End With
Set wbMail = ActiveWorkbook
With wbMail
'Dokumenteigenschaften setzen
.BuiltinDocumentProperties("Title") = "Blatt Daten, Stand: " & Date
.BuiltinDocumentProperties("Subject") = "Helvetia Action Tracking"
'Dokument im Excel 2003-Format speichern
.SaveAs Filename:=strPfad & Application.PathSeparator _
& "Daten " & Format(Date, "YYYY-MM-DD"), FileFormat:=xlExcel8
strAttachment = .FullName
.Close
End With
'Mailprogramm aufrufen
strToReceiver = "vpmonitoring@helvetia.at"
strSubject = "Helvetia Action Tracking"
Call ShellExecute(0&, "Open", "mailto:" & strToReceiver _
& "?Subject=" & strSubject, "", "", 1)
'    Call ShellExecute(0&, "Open", "mailto:" & strToReceiver _
& "?Subject=" & strSubject & "?Attachment=" & strAttachment, "", "", 1)
End Sub

Anzeige
AW: Daten von Tabelle in Userform laden
30.03.2010 15:34:01
Tabelle
Hallo Franz,
muss ich den Code jetzt in ein neues Modul kopieren?
lg fatih
AW: Daten von Tabelle in Userform laden
30.03.2010 16:04:55
Tabelle
Hallo Fatih,
nein, du muss die vorhandenen Prozedur "Bild8_BeiKlick" durch die von mir geänderte ersetzen.
Gruß
Franz
AW: Daten von Tabelle in Userform laden
30.03.2010 16:27:01
Tabelle
Hallo Franz,
jetzt klappt es prima, hab nur eine Ziffer ändern müssen ( FileFormat:=xlExcel8) die 8 hab ich geändert auf 7
Hast mir echt sehr geholfen Franz, vielen Dank.
Ich hoffe das Chris auch mein Beitrag noch liest, denn das ist der letzte Punkt. Dann kann ich endlich die arbeit abgeben.
lg
fatih
Anzeige
Keine weiteren Fragen mehr (owT)
30.03.2010 16:41:11
fcs
Thread closed
AW: Daten von Tabelle in Userform laden
29.03.2010 18:55:23
Tabelle
Servus,
hier noch eine Alternative. Ich hab mal noch ne Listbox eingefügt. Außerdem ist mir aufgefallen, dass der Name des vermittlers nicht eingetragen wird.
https://www.herber.de/bbs/user/68868.xls
Wenn du auf korrigieren gehst, dann werden die Daten so eingetragen, wie sie in den Textboxen stehen. Also wenn du etwas ändern willst einfach ändern und korrigieren drücken.
Gruß
Chris
Anzeige
AW: Daten von Tabelle in Userform laden
30.03.2010 14:20:53
Tabelle
Hallo Chris,
es tut mir echt leid, das ich wieder störe. habe jetzt den Vermittler eingefügt eine zusätzliche spalte.
wenn ich die maske lesen und korrigieren anschaue, hat sich alles um eine zeile verschoben.
in welcher zeile muss ich was ändern?
wäre ganz lieb wenn du mir noch kurz helfen könntest.
vielen dank und liebe grüsse
Anzeige
AW: Daten von Tabelle in Userform laden
30.03.2010 23:24:16
Tabelle
Servus,
wo wurde jetzt der Vermittler eingefügt, also welche Spalte ? Und was heißt es hat sich alles um eine Zeile verschoben ?
Gruß
Chris
AW: Daten von Tabelle in Userform laden
01.04.2010 12:24:59
Tabelle
Hallo Chris,
hab es jetzt geschafft mit Hilfe von Franz. Trotzdem vielen Dank für deine Bemühungen.
wünsch dir noch einen wunderschönen Tag.
lg
fatih
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten von Tabelle in Userform laden


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Öffne Excel und erstelle eine neue Userform.

  2. Steuerelemente hinzufügen: Füge die benötigten Steuerelemente wie Textboxen und CommandButtons hinzu. Zum Beispiel:

    • TextBox1 für den ersten Datensatz.
    • CommandButton1 für "Zurück".
    • CommandButton2 für "Korrigieren".
    • CommandButton3 für "Weiter".
  3. VBA-Code einfügen: Öffne den VBA-Editor (ALT + F11) und füge den folgenden Code in das Userform-Modul ein:

    Option Explicit
    Private ZeileAktuell As Long
    
    Private Sub UserForm_Initialize()
       Worksheets("Daten").Activate
       ZeileAktuell = 2 ' Beginnt bei der zweiten Zeile
       Call DatenEinlesen
    End Sub
    
    Private Sub DatenEinlesen()
       With Worksheets("Daten")
           Me.TextBox1.Value = .Cells(ZeileAktuell, 1).Value
           ' Weitere TextBoxen hier befüllen
       End With
    End Sub
    
    Private Sub CommandButton3_Click()
       ZeileAktuell = ZeileAktuell + 1
       Call DatenEinlesen
    End Sub
    
    Private Sub CommandButton2_Click()
       ' Korrektur der Daten
       If MsgBox("Daten ändern?", vbQuestion, "Datensatz korrigieren") = vbYes Then
           With Worksheets("Daten")
               .Cells(ZeileAktuell, 1).Value = Me.TextBox1.Value
               ' Weitere Zellen hier aktualisieren
           End With
       End If
    End Sub
  4. Daten laden: Stelle sicher, dass die Daten in der Tabelle "Daten" korrekt formatiert sind, um sie in die Userform zu laden.


Häufige Fehler und Lösungen

  • Fehler: Daten werden nicht geladen: Überprüfe, ob die Tabelle "Daten" existiert und ob die Zeilen- und Spaltennummern im Code korrekt sind.

  • Fehler: Userform wird nicht angezeigt: Stelle sicher, dass die Userform über ein Makro aufgerufen wird. Du kannst dazu einen Button in der Haupttabelle verwenden.


Alternative Methoden

Eine einfache Alternative zur Userform ist die Verwendung einer Datenmaske. Diese ermöglicht es, Daten direkt in der Tabelle einzugeben und zu bearbeiten, was besonders nützlich ist, wenn die Datensätze nicht zu viele Zeilen umfassen.


Praktische Beispiele

Hier ist ein Beispiel, wie Du Daten von einer Tabelle in eine Userform laden kannst:

  1. Angenommen, Du hast eine Tabelle mit den folgenden Spalten: Name, Adresse, Telefon.
  2. In der Userform erstellst Du Textboxen für jede dieser Spalten.
  3. Der Code zum Laden der Daten könnte so aussehen:

    Private Sub DatenEinlesen()
       With Worksheets("Daten")
           Me.TextBox1.Value = .Cells(ZeileAktuell, 1).Value ' Name
           Me.TextBox2.Value = .Cells(ZeileAktuell, 2).Value ' Adresse
           Me.TextBox3.Value = .Cells(ZeileAktuell, 3).Value ' Telefon
       End With
    End Sub

Tipps für Profis

  • Verwende Listenboxen: Wenn Du viele Datensätze hast, kann eine Listbox helfen, die Auswahl zu erleichtern. Du kannst die Listbox mit den Datensätzen füllen, was die Navigation zwischen den Einträgen erleichtert.

  • Daten validieren: Füge eine Validierung in Deine Textboxen ein, um sicherzustellen, dass die Benutzer die richtigen Daten eingeben.

  • E-Mail-Funktionalität: Wenn Du die Daten per E-Mail versenden möchtest, kannst Du die ShellExecute-Funktion verwenden, um ein neues Mail-Memo zu erstellen, das die Tabelle als Anhang enthält.


FAQ: Häufige Fragen

1. Wie kann ich die Userform anpassen?
Du kannst die Steuerelemente in der Userform nach Deinen Wünschen anpassen. Füge neue Textboxen oder Buttons hinzu, um zusätzliche Funktionen zu integrieren.

2. Was mache ich, wenn die Userform nicht richtig funktioniert?
Überprüfe Deinen VBA-Code auf Syntaxfehler und stelle sicher, dass alle Steuerelemente korrekt benannt sind.

3. Kann ich die Userform auch in anderen Excel-Versionen verwenden?
Ja, die grundlegenden Funktionen sollten in den meisten Excel-Versionen funktionieren, jedoch können einige spezifische Funktionen variieren. Stelle sicher, dass Du die richtige VBA-Syntax verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige