Excel Druckvariablen

Hallo,
evtl kann mir hier jemand von Euch weiterhelfen!

Ich arbeite in einem Treppenfachbetrieb und habe für unsere Verpackung eine Packliste in Excel erstellt. Zu jeder Treppe gehören logischerweise auch Plegeanleitungen für die verschiedenen Oberflächen. Bsp. Lack, Öl, Wachs, etc.

Wenn ich jetzt im Excel in meiner Eingabemaske, Bsp. Feld A1 Wasserlack eingebe, sollte mir Excel das entsprechende Arbeitsblatt (Pflegehinweise für Wasserlack), welches sich in der gleichen Exceldatei befindet, zusätzlich und automatisch zu meiner Packliste ausdrucken.
Vielleicht weiß jemand wie man das einstellt oder wie ich das mit VBA herbekomme. Vielleicht ist es auch möglich ein Worddokument mit dem Excel zu verknüpfen, so dass der Ausdruck der Pflegehinweise automatisch abläuft.

Vielen Vielen Dank für Eure Hilfe.

Beste Grüße Daniel

hallo, über google gefunden in http://www.office-loesung.de/ftopic437437_0_0_asc.php

Sub DruckeMir()

For Each wks In ActiveWorkbook.Worksheets
If Len(Trim(wks.Cells(7, 4).Text)) > 0 Then
wks.PrintOut
End If
Next
End Sub
Probier mal eine Makro damit zu erstellen. In der IF Abfragen muss Du natürlich keinen Namen abfragen, also IF A1=„Wasserlack“ Then…
Eventuell muss Du noch dem wks vorher den Namen des Sheets zuweisen.
Gruß Armin

Hallo Daniel,

Tabellenname und Zelle anpassen. dann wird das gewünschte Blatt gedruckt.

Dim wks As String

wks = Sheets(„Tabelle3“).Range(„A1“).Value
Worksheets(wks).PrintOut

Gruß Fred

Grüezi smoggmog

Im BeforePrint-Ereignis der Mappe könntest Du den Inhalt deiner Zelle prüfen und je nach Inhalt dann zuerst deine anderen Tabellenblätter drucken und dann mit dem eigentlichen weiterfahren.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Also ein Druckbefehl auslösen.

Sheets(Array(„Titelblatt“, „Bewerberprofil“, „Zusatzseite“, „Referenz Kurz“)).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=„PDF24 PDF“, Collate:=True

In der Sheets(Array( sind die Blätter die ausgedruckt werden. Je nach selektiertem Wert sieht der Ausdruck anders aus. Kombiniere diesen Befehl mit der sogenannten Select Case Rutine und Du bist am Ziel.
Grüsse Sebastian

Hallo Sebastian,
danke für die Antwort.
Kannst du den Code noch ein bisschen umbauen?
So wie das jetzt ist, sind es ja fixe Tabellenblätter die durch einen Drucken-Button ausgelöst werden?!
Ich möchte gern dass der Button folgendes macht:
Steht in Zelle A1 „Lack“, soll er mir zusätzlich zu Tabellenblatt 1 auch Tabellenblatt 2 ausdrucken. Steht in Zelle A1 „Öl“, soll mir der Button Tabellenblatt 1 und Tabellenblatt 3 ausdrucken. Tabellenblatt 1 ist in dem Fall die Eingabemaske. Es wäre schön wenn du gleich diese Begriffe wie Lack, Öl und meine 3 Tabellenblätter in den Code integrierst damit ich das auch verstehen kann…

Vielen Dank und Grüße
Daniel

Eben:
Select case tabelle1.cells(1,1)
case „Lack“
Sheets(Array(„Blatt1“, „Blatt5“)).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=„PDF24 PDF“, Collate:=True

case „Ölfarbe“
Sheets(Array(„Blatt2“, „Blatt5“)).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=„PDF24 PDF“, Collate:=True

case „Stoffarbe“
Sheets(Array(„Blatt3“, „Blatt5“)).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=„PDF24 PDF“, Collate:=True

end select

Hallo smoggmog,

erstelle dir am besten eine Liste der Materialien und den zugehörigen Pflegeanleitungen auf einem separaten Tabellenblatt.
Per Formel kannst du dann die zum gewälten Material gehörige Pflegeanleitung ermitteln.

Tabellenblattname: Pflegeanleitungen

 A B C 
 1 gewähltes Material Verzeichnis Word-Dokumente: C:\Users\Public\Test 
 2 Wasserlack Pflege Wasserlack Pflege Wasserlack.docx 
 3 
 4 Material Treppe Tabelle mit Pflegeanleitung Worddokument 
 5 Wasserlack Pflege Wasserlack Pflege Wasserlack.docx 
 6 Naturholz Pflege Naturholz Pflege Naturholz.docx 
 7 Wachs Pflege Wachs Pflege Wachs.docx 
 8 Öl Pflege Öl Pflege Öl.docx 
 9 verzinkt Pflege verzinkt Pflege verzinkt.docx 
10 Edelstahl Pflege Edelstahl Pflege Edelstahl.docx 
11 
12 

Benutzte Formeln:
A2: =Packliste!A1
B2: =SVERWEIS(A2;A5:B20;2;FALSCH)
C2: =SVERWEIS(A2;A5:C20;3;FALSCH)

Namen in der Tabelle:
AuswahlMaterial: =Pflegeanleitungen!$A$5:blush:A$20

Mit den nachfolgenden Makros kannst du dann beide Tabellen bzw. Packliste und Worddokument in einem Rutsch drucken. Die Namen der Tabellen und Zellen musst du ggf. anpassen.

Gruß
Franz

Sub Drucken\_mit\_Pflegeanleitung()
 'Drucken von Packliste und zugehörigem Tabellenblatt mit Pflegeanleitung
 Dim wksPflege As Worksheet, strPflege As String
 On Error GoTo Fehler
 strPflege = Worksheets("Pflegeanleitungen").Range("B2")
 Set wksPflege = Worksheets(strPflege)
 ActiveWorkbook.Sheets(Array("Packliste", strPflege)).PrintOut Preview:=True
Fehler:
 With Err
 If .Number = 0 Then
 'alles OK
 Else
 MsgBox "Tabelle """ & strPflege & """ mit Pflegeanleitung fehlt", \_
 vbInformation + vbOKOnly, "Fehler im Makro ""Drucken\_mit\_Pflegeanleitung"""
 End If
 End With
End Sub

Sub Drucken\_mit\_Word\_Pflegeanleitung()
 'Drucken von Packliste und Word-Pflegeanleitung
 Dim wdDoc As Object 'Word.Document
 Dim wdApp As Object 'Word.Application
 Dim strPflege As String
 On Error GoTo Fehler
 With Worksheets("Pflegeanleitungen")
 strPflege = .Range("C1") & "\" & .Range("C2")
 End With
 If Dir(strPflege) "" Then
 If MsgBox("Tabelle ""Packliste"" mit Pflegeanleitung """ & strPflege & """ drucken?", \_
 vbQuestion + vbOKCancel, " Packliste + Pflegeanleitung drucken") = vbOK Then
 ActiveWorkbook.Sheets("Packliste").PrintOut
 Set wdDoc = VBA.GetObject(Pathname:=strPflege)
 Set wdApp = wdDoc.Application
 wdDoc.Application.Visible = True
 wdDoc.PrintOut
 wdDoc.Close savechanges:=False
 wdApp.Quit
 End If
 Else
 MsgBox "Worddkument """ & strPflege & """ mit Pflegeanleitung fehlt", \_
 vbInformation + vbOKOnly, "Fehler im Makro ""Drucken\_mit\_Pflegeanleitung"""
 End If
Fehler:
 With Err
 If .Number = 0 Then
 'alles OK
 Else
 MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
 End If
 End With
End Sub

Hallo Sebastian,

ich habe das jetzt eingebunden und angepasst.
Irgendwie bekomme ich immer einen Fehler in der ersten Zeile…

>>Select case tabelle1.cells(1,1)

Hast du denn die Tabelle1? Sie wird im VBA Editor als tabelle 1 bezeichnet. Duies hat aber nichts mit der Tabellenbeschriftung im excel zu tun. Möchtest Du den Excel Namen verwenden, musst Du mit Woorkbooks.Sheet(„Mein tabellenname“) oder Woorkbook.Sheet(„Mein tabellenname“) Arbeiten.
Grüsse Sebastian

Hallo,
ich würde an Deiner Stelle ein weiteres Excelblatt nutzen, welches Deinem Ausdruck entsprechen soll.
Hier kannst Du entsprechend Deiner Auswahl mit der Funktion SVERWEIS alle zugehörigen Informationen einbringen. Solltest Du Hilfe benötigen, melde Dich einfach noch einmal.
Gruß,
Ptonka

Hallo Sebastian, ich habe es soweit hinbekommen.

Folgender Code:

Sub DruckenSys()

Select Case Tabelle1.Cells(58, 9)
Case „Wasserlack Heidelberg“
Sheets(Array(„L_Sys“, „Pflege Lack“, „Konf System“)).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="\treppe09\Utax Kopierer CD 5025 auf Ne08:", Collate:=True

Case „Hartwachs Heidelberg“
Sheets(Array(„L_Sys“, „Pflege Öl“, „Konf System“)).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="\treppe09\Utax Kopierer CD 5025 auf Ne08:", Collate:=True
End Select

End Sub

Wenn jetzt weder Lack noch Öl in der Maske steht druckt mir Excel gar nichts.
Kannst du mir den Code noch umbauen dass es funktioniert?

Zum Beispiel mit der Oberfläche Beize, da brauch ich die Pflegeanleitung nicht, aber ggfls die Liste L_Sys und die Liste Konf System.

Danke für deine Hilfe.

Grüße Daniel

hallo
Ja, Du kannst die sogenannte Case else eicgenschaft einbauen, die ausgefühtr wird, wenn kein select case zutrifft.

Also:
Select case A
Case „A“

Case „B“

Case „C“

Case Else

End Select

Grüsse Sebastian

Hallo ѕmoggmog,

solche Verknüpfungen habe ich noch nicht bearbeitet.

Gruß Hugo

Hallo an alle,

ich habe es hinbekommen dank eurer Hilfe. Ihr seid echt spitze…

Ich komme mit Sicherheit auf euch zurück

Machts gut, Daniel

-)

Hallo,
habe heute erst deine Frage lesen können. Muß dir aber leider sagen das ich keine Ahnung habe wie das zu lösen ist.
Carsten