Microsoft Excel

Herbers Excel/VBA-Archiv

Excel Druckmakro - VBA Experten gesucht

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

  

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




  

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


  

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


  

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