Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1228to1232
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

über Button

über Button
Ulf
Moin, moin
ich habe überhaupt keine Vorstellung wie ich meine Idee realisieren kann.
Ich habe ein Inhaltsverzeichnis erstellt, welches über einen Button ausgedruckt werden soll.
Den allgemeinen Druckbereich habe ich festgelegt.
Die Fragen:
Ist es egal, ob ich die Schaltfläche aus dem Formular oder aus den Steuerelementen nehme?
Es sollen nur Zeilen ausgedruckt werden, in denen eine Mat.Nr. eingetragen wurde.
Ich hoffe mein "Problem" verständlich beschrieben zu haben und bedanke mich im voraus für eure Hilfe.
Gruß
Ulf
https://www.herber.de/bbs/user/76586.xls

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: über Button
13.09.2011 13:59:05
fcs
Hallo Ulf,
füge in Spalte A eine Formel ein, die "X" ausgibt, wenn in Spalte Partnumber etwas steht.
Systemkomponenten

 A
5Auswahl
6 

Formeln der Tabelle
ZelleFormel
A6=WENN(ISTLEER(E6); "";"X")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Per Autofilter kann man dann schnell die nicht zu druckenden Zeilen ausblenden.
Ob es dann noch ein Drucken-Makro braucht?
Button aus Formular oder Steuerelemente?
Im Prinzip egal.
Button aus Formular hat den Vorteil, dass man das Tabellenblatt Code-Frei halten kann, da das zugehörige Makro in einem allgemeinen Modul stehen darf. Ist wichtig, wenn man ein Tabellenblatt ohne Makros in eine andere Mappe kopieren möchte.
Nachfolgend Code für Formular-Button, der Code nutzt die Autofilterfunktion und setzt den Filter entsprechend.
Gruß
Franz 'Code in einem allgemeine Modul Sub Print_Systemkomponenten() Dim wks As Worksheet Set wks = Worksheets("Systemkomponenten") With wks If .AutoFilterMode = True Then .AutoFilter.Range.AutoFilter field:=1, Criteria1:="X" Else With .Range(.Cells(5, 1), .Cells(.Rows.Count, 1).End(xlUp)) .AutoFilter .AutoFilter field:=1, Criteria1:="X" End With End If .PrintOut Preview:=True .ShowAllData End With End Sub
Anzeige
AW: über Button
14.09.2011 10:12:17
Ulf
Moin, moin
@Franz
ich verneige und bedanke mich ehrfürchtig.
Ich habe mich für das Steuerelement entschieden, da ich noch 3 weitere Blätter eingefügt habe.
Den Code habe ich entsprechend angepaßt.
Ob es auch anders gegangen wäre, keine Ahnung, es funktioniert.
Für Verbesserungsvorschläge bin ich gerne zu haben, da ich ja dazulernen will.
Gruß
Ulf
https://www.herber.de/bbs/user/76609.xls
AW: über Button
14.09.2011 12:29:04
fcs
Hallo Ulf,
wenn der Aufbau der Tabellenblätter identisch ist (oder hier ginge auch bis auf die Anzahl der Zeilen identisch ist), dann kann man alle Blätter auch mit einem Makro abarbeiten. D.h. du könntest in jedem Blatt einen Formlarbutton plazieren, der jeweils auf das Makro verweist.
Code - Beispiel:

Sub Druck()
'Makro für Button aus Formularelmenten
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
Select Case .Name
Case "Strahlweg 1", "Strahlweg 2", "Strahlweg 3", "Strahlweg 4"
If .AutoFilterMode = True Then
.AutoFilter.Range.AutoFilter field:=1, Criteria1:="X"
Else
With .Range(.Cells(5, 1), .Cells(.Rows.Count, 1).End(xlUp))
.AutoFilter
.AutoFilter field:=1, Criteria1:="X"
End With
End If
.PrintOut Preview:=True
.ShowAllData
Case Else
.PrintOut Preview:=True
End Select
End With
End Sub

Das Makro für die Active-X-Buttons kannst du noch etwas vereinfachen. Für Tabellen-, Userform-, und das Arbeitsmappenmodul gibt es noch die Standard-Objekt-Variable "Me". Diese bezieht sich immer auf das Objekt in dem der Code steht. D.h. man muss nicht unbedingt eine Worksheet-Objektvariable deklarieren.

Private Sub CommandButton1_Click()
With Me
If .AutoFilterMode = True Then
.AutoFilter.Range.AutoFilter field:=1, Criteria1:="X"
Else
With .Range(.Cells(5, 1), .Cells(.Rows.Count, 1).End(xlUp))
.AutoFilter
.AutoFilter field:=1, Criteria1:="X"
End With
End If
.PrintOut Preview:=True
.ShowAllData
End With
End Sub
Ansonsten solltest du verbundene Zellen möglichst vermeiden. Sie machen einem das Leben bei der Makro-Programmierungen unnötig schwer. Zumindest für die Zeilen 4 und 5 besteht keine Notendigkeit die Zellen in den Spaltentiteln vertikal zu verbinden.
Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige