Herbers Excel-Forum - das Archiv

Excel Druckmakro - VBA Experten gesucht

Bild

Betrifft: Excel Druckmakro - VBA Experten gesucht
von: sammy

Geschrieben am: 04.07.2008 21:32:25

Hallo Excel User,
ich habe seit Wochen ein Problem mit einem Excel Makro.
Diese Makro hat mir freundlicherweise das Forumsmitglied Sepp erstellt.
Leider funktioniert es noch nicht ganz wie gewünscht.
Die Datei "GS4_Beispiel.xls" als zip habe ich hierzu hochgeladen.
Hintergrund:
Ich habe eine Artikelliste "bis LK99999" (sehr lang), aus der ich auf Wunsch immer jeweils
die Wareneingänge nach Artikelnummer ausdrucken möchte. Hierzu gibt es
in meiner Datei das Tabellenblatt "Wunschmaske". Ich trage ich die
zum Ausdruck gewünschte Artikelnummer ein, anschließend die Schaltfläche
(mit dem hinterlegten Makro) drücken.
Nun soll, je nachdem wieviel Zeilen pro Artikelnummer es sind, diese ausgedruckt werden.
Die Druckvorlage ist das Tabellenblatt "Druckbeispiel".
Die Druckform bzw. das Druckbild ist auch OK.
Nun mein Problem:
Das Makro funktioniert zwar, jedoch sind beim Ausdruck die Inhalte nicht mit
den richtigen Spaltenüberschriften ("Druckbeispiel") kompatibel.
Das kommt meiner Meinung nach von den ausgeblendeten Spalten.
Ich möchte die Tabelle jedoch in Ihren Grundzügen nicht verändern, da diese
auch für andere Auswertungen herangezogen wird.
Auch die derzeit ausgeblendeten Spalten sollen hier augeblendet bleiben.
Es wäre schön, wenn mir jemand helfen könnte (probiere schon seit Wochen
ohne Erfolg).
Schöne Grüße
sammy
https://www.herber.de/bbs/user/53609.zip

Bild

Betrifft: AW: Excel Druckmakro - VBA Experten gesucht
von: fcs

Geschrieben am: 07.07.2008 13:02:02
Hallo Sammy,
hier eine Lösung, die zeilenweise die Daten der gefilterten Zeilen in die sichtbaren Spalten des Druckblattes überträgt.
In einigen Spalten des Druckblattes muss du noch die Zahlenformate bereinigen.
Gruß
Franz

Sub SachnummernDrucken()
Dim rng As Range, Zeile As Long, Spalte As Long, rngFilter As Range
Dim arrSpaltenSichtbar(1 To 39) As Boolean
Const Filter As Long = 3 'Spalte mit Filter
Dim wksLK As Worksheet
On Error GoTo ErrExit
Application.ScreenUpdating = False
Application.Dialogs(xlDialogPrinterSetup).Show
Set wksLK = Worksheets("bis LK99999")
If wksLK.AutoFilterMode = False Then wksLK.Range("A1").AutoFilter
With Sheets("Druckbeispiel")
.Visible = xlSheetVisible
'Einlesen welche Spalten im Druckblatt sichtbar sind
For Spalte = 1 To 39
arrSpaltenSichtbar(Spalte) = Not .Columns(Spalte).Hidden
Next
'Zeilen in Wunschmaske abarbeiten
For Each rng In Sheets("Wunschmaske").Range("A4:A30")
If Trim$(rng) <> "" Then
'Zeile in Druckblatt auf 1 setzen
Zeile = 1
.Range("A2:AM" & Rows.Count).ClearContents
'Auto Filter gemäß Wunschmaske setzen
wksLK.Range("A1").AutoFilter Field:=Filter, Criteria1:=rng.Text
'Daten der gefilterten Zeilen übertragen
For Each rngFilter In _
wksLK.Range(wksLK.Cells(2, Filter), wksLK.Cells(.Rows.Count, Filter).End(xlUp))
If rngFilter.EntireRow.Hidden = False Then
Zeile = Zeile + 1
For Spalte = 1 To 39
If arrSpaltenSichtbar(Spalte) = True Then
.Cells(Zeile, Spalte).Value = _
wksLK.Cells(rngFilter.Row, Spalte).Value
End If
Next
End If
Next
.PageSetup.PrintArea = "A1:AM" & .Cells(Rows.Count, 1).End(xlUp).Row
.PageSetup.PrintTitleRows = "$1:$1"
.PrintOut
.PageSetup.PrintArea = "A1:AM1"
.Range("A2:AM" & Rows.Count).ClearContents
End If
Next
'.Visible = xlSheetVeryHidden    'Optional
End With
If wksLK.AutoFilterMode = True Then wksLK.ShowAllData
ErrExit:
Application.ScreenUpdating = True
End Sub


Bild

Betrifft: AW: Excel Druckmakro - VBA Experten gesucht
von: sammy

Geschrieben am: 07.07.2008 20:14:26
Hallo Franz,
vielen Dank für Deine Hilfe. Ich habe Dein Makro getestet, jedoch
erscheint z.B. in der Spalte "Menge" im Tabellenblatt "Druckbeispiel"
das Datum, beim Preis stimmts ebenfalls leider nicht.
Habe ich hier einen Fehler gemacht?
Vielleicht ist mein Problem doch noch lösbar.
Trotzdem vielen Dank.
Muss jetzt leider weg, bin erst am Dienstag abend wieder hier.
Schöne Grüße
sammy

Bild

Betrifft: AW: Excel Druckmakro - VBA Experten gesucht
von: fcs
Geschrieben am: 08.07.2008 10:57:19
Hallo Sammy,
ich hatte doch geschrieben, dass im Blatt "Druckbeispiel" in einigen Spalten die Zahlenformate nicht korrekt sind und die Spalte "Menge" ist eine davon.
Gruß
Franz

Bild

Betrifft: AW: Excel Druckmakro - VBA Experten gesucht
von: sammy

Geschrieben am: 08.07.2008 18:51:43
Hallo Franz,
hast recht, habe zwar die in den anderen Datumspalten die Zahlenformate geändert,
hätte aber nicht gedacht, das bei falschen Format (Spalte "Menge") ein übliches Datum angezeigt wird.
Deshalb habe ich es nicht probiert.
Aber - Ende gut, alles gut, alles funzt dank Deiner Hilfe.
Nochmals herzlichen Dank und schöne Grüße
sammy

 Bild