Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Daten aus Userform übernehmen und im Modul

VBA Daten aus Userform übernehmen und im Modul
27.12.2016 10:16:20
Jenny
Hallo zusammen,
Möchte Daten aus einem Userform übernehmen und im Modul nacheinander abarbeiten:
Die einzelnen Zahlen müssen nacheinander in Tabelle2 geschrieben werden und einzeln als PDF exportiert werden, wenn ich das ganze mit For intRow = 1 To 246 für alle mache läuft es gut, nun wie bringe ich die Userform Daten hinein.
Sub Auswahl()
Dim intRow As Integer
'Die Daten werden aus dem Formular "lbxTo" übergeben
For intRow = UserForm1.lbxTo To UserForm1.lbxTo "läuft nicht!"
Tabelle2.Range("D1").Value = intRow
Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1
Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1, Criteria1:=">0"
Tabelle2.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Tabelle2.Range("H2").Value & Format(Date, "YYYYMMDD") & ".pdf",  _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Next intRow
End Sub
Besten Dank für Eure Hilfe. Lg J
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Daten aus Userform übernehmen und im Modul
27.12.2016 10:47:01
Beverly
Hi,
was ist lbxTo und weshalb soll die Schleife von lbxTo bis lbxTo laufen? Das sind doch anscheinend irgendwie dieselben Werte.


AW: VBA Daten aus Userform übernehmen und im Modul
27.12.2016 10:58:12
Jenny
Hallo Karin
Hatte mir ein Userform gebaut, mit Werten von 1 bis 246 die ich von lbxfrom nach lbxto verschiebe. Danach steht zb. 1/5/9 in lbxto um einzeln abgearbeitet zu werden. Als ich die intRow geschrieben hatte verlange es ein TO, wie kann ich dies umgehen. Besten Dank und Lg Jenny
Anzeige
AW: VBA Daten aus Userform übernehmen und im Modul
27.12.2016 15:32:33
Beverly
Hi Jenny,
versuche es nach diesem Prinzip:
For intRow = 0 To UserForm1.lbxTo.ListCount
MsgBox UserForm1.lbxTo.List(intRow)
Next intRow



AW: VBA Daten aus Userform übernehmen und im Modul
27.12.2016 16:06:32
Jenny
Hallo Karin
Danke für den Input, kann es bis zur msgbox ausführen, danach erhalte ich eine Fehlermeldung "Laufzeitfehler13" Typenunverträglich bei Abschnitt "FETT".
Tabelle2.Range("D1").Value = intRow
Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1
Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1, Criteria1:=">0"
Tabelle2.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Tabelle2.Range("H2").Value & Format(Date, "YYYYMMDD") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

Next intRow
End Sub Habe ich hier bereits Zahlen eingelesn oder nicht?
Sub ShowDialog()
Dim i As Long
UserForm1.lbxFrom.RowSource = ""
'   Dem Listenfeld Einträge hinzufügen
With UserForm1.lbxFrom
.RowSource = ""
For i = 1 To 246
.AddItem Format(i, 0)
Next i
End With
'Erstes Element auswählen
UserForm1.lbxFrom.ListIndex = 0
UserForm1.Show
End Sub
Sorry drehe mich gerade im Kreis. Danke im Voraus für weiter Inputs. Lg Jenny
Anzeige
AW: VBA Daten aus Userform übernehmen und im Modul
27.12.2016 18:51:54
Beverly
Hi Jenny,
also m.E. müsste es so heißen:
Tabelle2.Range("D1").Value = ListBox1.List(intRow)
und nicht
Tabelle2.Range("D1").Value = intRow



Anzeige
AW: VBA Daten aus Userform übernehmen und im Modul
28.12.2016 08:17:25
Jenny
Hallo Karin
Habe die Anpassungen vorgenommen, bin kurz vor dem Ziel, die PDF´s werden hergestellt habe aber noch einen Laufzeitfehler"381" Eigenschaft List konnte nicht abgerufen werden. Index des Eigenschaftenfelds ungültig.
Sub Auswahl()
Dim intRow As Integer
'Die Daten werden aus dem Formular "lbxTo" übergeben
For intRow = 0 To UserForm1.lbxTo.ListCount
'MsgBox UserForm1.lbxTo.List(intRow)
Tabelle2.Range("D1").Value = UserForm1.lbxTo.List(intRow)
Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1
Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1, Criteria1:=">0"
Tabelle2.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Tabelle2.Range("H2").Value & Format(Date, "YYYYMMDD") & ".pdf",  _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Next intRow
End Sub

Besten Dank und Lg Jenny
Anzeige
AW: VBA Daten aus Userform übernehmen und im Modul
28.12.2016 09:02:52
Beverly
Hi Jenny,
ändere diese Zeile:
For intRow = 0 To UserForm1.lbxTo.ListCount - 1



AW: VBA Daten aus Userform übernehmen und im Modul
28.12.2016 09:32:52
Jenny
Hallo Karin,
Es läuft super. Besten Dank und wünsche noch einen guten Rutsch. Lg Jenny
Anzeige
AW: VBA Daten aus Userform übernehmen und im Modul
27.12.2016 10:50:38
Christian
hallo Jenny,
wie trägst du denn die Daten in das Userform(ular) ein?
in TextBoxes, ComboBoxes, ...?
  • Dein verwendetes Typ-Kürzel "lb..." lässt auf Label schließen. In einem Label kann aber vom Anwender kein Eintrag erfolgen, denn das ist ein reines "Beschriftungsfeld".

  • Bei der For-Schleife brauchst du Zahlen (Long, Integer) für die Grenzen. Text funktioniert nicht. Wenn die Einträge des Userforms zB. in TextBoxes erfolgen, musst du diese in Zahlen umwandeln (zB. mit "Clng").

  • Außerdem hast du bei der For-Schleife den gleichen Start- und Endwert genutzt. Dann bräuchtest du die Schleife ja nicht, da diese nur einmal durchlaufen wird.

  • Grüße
    Christian
    Anzeige
    AW: VBA Daten aus Userform übernehmen und im Modul
    27.12.2016 13:47:43
    Jenny
    Hallo Christian,
    Habe ein Userformular, was ich wie folgt fülle:
    Sub ShowDialog()
    Dim i As Long
    UserForm1.lbxFrom.RowSource = ""
    '   Dem Listenfeld Einträge hinzufügen
    With UserForm1.lbxFrom
    .RowSource = ""
    For i = 1 To 246
    .AddItem Format(i, "0")
    Next i
    End With
    'Erstes Element auswählen
    UserForm1.lbxFrom.ListIndex = 0
    UserForm1.Show
    End Sub
    
    Und danach schiebe ich die ausgewählen Werte in lbxto (ListBox) und nun möchte ich alle Zahlen aus lbxto nacheinander einzeln abarbeiten.
    Sub Auswahl()
    Dim intRow As Integer
    'Die Daten werden aus dem Formular "lbxTo" übergeben
    For intRow = "DIESER TEIL FEHLT"
    Tabelle2.Range("D1").Value = intRow
    Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1
    Tabelle2.Range("$A$9:$H$91").AutoFilter Field:=1, Criteria1:=">0"
    Tabelle2.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    ThisWorkbook.Path & "\" & Tabelle2.Range("H2").Value & Format(Date, "YYYYMMDD") & ".pdf",  _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False
    Next intRow
    End Sub
    
    Besten Dank im Voraus für Eure Hilfe. Lg Jenny
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige

    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