Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
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
Inhaltsverzeichnis

VBA Druckoption m. Userforn

VBA Druckoption m. Userforn
29.08.2016 17:38:19
Stefan
Hallo Forum,
ich hoffe einer kann mir mal wieder weiter helfen. Ich möchte eine Druckoption per VBA
und Userform erstellen, in dem der Benutzer die Druckeigenschaften (also was er gedruck haben möchte) selber fexibel auswhlen kann.
Also der User soll die Namen welche er ausdrucken will als Buchstaben auswählen können.
Danach dann die Optionen "Namen", "Straße" und "PLZ" oder nur Namen usw....
Der Druck solle dann untereinander und je nach auswahl recht leserlich auf ein A4 sein.
Eine bsp. Datei hab ich beigefügt mit Userform, wie ich es mir so vorstelle!
vlt. kann mir jemand helfen, da ich das nicht hinbekomme.
Vielen Dank schonmal !
https://www.herber.de/bbs/user/107879.xlsm
Gruß Stefan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Druckoption m. Userforn
30.08.2016 05:47:00
fcs
Hallo Stefan,
die Programmierung ist einfacher, wenn man für die Auswahl der Anfangsbuchstaben und der Spalten Listboxen mit Mehrfachauswahl verwendet.
Hier deine Datei mit entsprechenden Anpassungen / Ergänzungen im Userform.
https://www.herber.de/bbs/user/107886.xlsm
Evtl. muss man noch etwas beim Seiten-Layout machen, wenn viele Spalten gewählt werden oder sehr viel Namen gedruckt werden sollen.
Gruß
Franz
AW: VBA Druckoption m. Userforn
30.08.2016 08:05:10
Stefan
Hallo Franz,
Danke für deine Bemühungen erstmal, komme aber erst heute Abend zum schauen.
Ich melde mich dann auf jeden Fall nochmal bei dir!
Gruß Stefan
Anzeige
AW: VBA Druckoption m. Userform
30.08.2016 14:33:42
Stefan
Hallo Franz,
hab jetzt mal schnell drüber geschaut und bin begeistert !
einfach nur Klasse deine Umsetzung. Darauf kann ich aufbauen.
Mir fehlt da die erfahrung merke ich immer wieder.
Nochmal Klasse und vielen lieben Dank, bringt mich wirklich weiter.
Und Danke an das Forum hier, das ist echt gut!
Beste Grüße an dich
Stefan
Für Franz
30.08.2016 16:35:14
Stefan
Hallo Franz,
mir ist aufgefallen,dass doppelte Namen nicht gehen. Es kommt ein Fehler 457
Der Schlüssel wurde bereits vergeben.
wäre es möglich noch eine Schleife einzubauen der dann auch alle Namen auch doppelte findet?
Ansonsten prima ding!
Private Sub UserForm_Initialize()
Dim varList, intI As Integer
Set wksData = ActiveSheet
Dim objCol As New Collection
Dim bolRemove As Boolean
With wksData
varList = Application.WorksheetFunction.Transpose( _
.Range(.Cells(1, 2), .Cells(1, .Columns.Count).End(xlToLeft).Offset(1, 0)))
'Spaltennummern zu Spaltentiteln eintragen
With Me.ListBox2
.List = varList
For intI = 0 To .ListCount - 1
.List(intI, 1) = 2 + intI
Next
End With
Me.ListBox2.Selected(0) = True
For Zeile = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
With .Cells(Zeile, 2)
If Trim(.Text)  "" Then
objCol.Add Left(Trim(.Text), 1), Left(Trim(.Text), 1)
End If
End With
Next
ReDim varList(1 To 29) As String
For intI = 1 To 26
varList(intI) = Chr(64 + intI)
Next
varList(27) = "Ä"
varList(28) = "Ö"
varList(29) = "Ü"
Me.ListBox1.List = varList
With Me.ListBox1
For intI = .ListCount - 1 To 0 Step -1
bolRemove = True
For Zeile = 1 To objCol.Count
If .List(intI, 0) = objCol(Zeile) Then
bolRemove = False
Exit For
End If
Next
If bolRemove = True Then
.RemoveItem (intI)
End If
Next
End With
Me.CheckBox1.Value = True
End With
End Sub

Danke !!!!!
Anzeige
AW: Für Franz
30.08.2016 18:14:35
fcs
Hallo Stefan,
da hatte ich in der Eile vergessen, die Fehlerbehandlung einzubauen, die den Fehler 456 verarbeitet (einfach zum nächsten Namen springt).
Gruß
Franz
Private Sub UserForm_Initialize()
Dim varList, intI As Integer
Set wksData = ActiveSheet
Dim objCol As New Collection
Dim bolRemove As Boolean
On Error GoTo Fehler
With wksData
varList = Application.WorksheetFunction.Transpose( _
.Range(.Cells(1, 2), .Cells(1, .Columns.Count).End(xlToLeft).Offset(1, 0)))
'Spaltennummern zu Spaltentiteln eintragen
With Me.ListBox2
.List = varList
For intI = 0 To .ListCount - 1
.List(intI, 1) = 2 + intI
Next
End With
Me.ListBox2.Selected(0) = True
For Zeile = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
With .Cells(Zeile, 2)
If Trim(.Text)  "" Then
objCol.Add Left(Trim(.Text), 1), Left(Trim(.Text), 1)
End If
End With
Next
ReDim varList(1 To 29) As String
For intI = 1 To 26
varList(intI) = Chr(64 + intI)
Next
varList(27) = "Ä"
varList(28) = "Ö"
varList(29) = "Ü"
Me.ListBox1.List = varList
With Me.ListBox1
For intI = .ListCount - 1 To 0 Step -1
bolRemove = True
For Zeile = 1 To objCol.Count
If .List(intI, 0) = objCol(Zeile) Then
bolRemove = False
Exit For
End If
Next
If bolRemove = True Then
.RemoveItem (intI)
End If
Next
End With
Me.CheckBox1.Value = True
End With
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case 457 'doppeltes Object in Collection
Resume Next
Case Else
MsgBox "Fehler-Nr.: " & vbLf & .Description, vbOKOnly, _
"Fehler Makro: Userform-Initialize"
End Select
End With
End Sub

Anzeige
AW: I am Happy! Owt
30.08.2016 19:29:31
Stefan
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige