Clever-Excel-Forum

Normale Version: Per Makro Abfrage erzeugen welche Tabelltenblätter ausgedruckt werden sollen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Hallo,

Also bei dem Code passiert nichts. Es springt in Tabelle 1 und das wars. Der Printvorgang wird aber nicht gestartet. Geht es bei euch ?
Hi Daniel,

(03.07.2017, 07:37)Daniel Albert schrieb: [ -> ]Also bei dem Code passiert nichts. Es springt in Tabelle 1 und das wars. Der Printvorgang wird aber nicht gestartet. Geht es bei euch ?

bei mir geht es:
[attachment=12063]
Ja komisch bei deiner Datei geht es auch mir bei - Danke

Werde es mal ausprobieren
Hallo, also sehr komisch. Wenn ich den Code in eine neue Arbeitsmappe kopiere dann funktioniert dieser aber nicht in meiner bestehenden.

Ich erhalte folgende Fehlermeldung:

Laufzeitfehler 9

Index außerhalb des gültigen Bereichs

Meine Tabellen haben folgenden Namen:

[attachment=12488]

und werden hier abgerufen. Ich hatte vorher die Namen die in Klammern stehen wie Kundendaten verwendet aber da geht es auch nicht

[attachment=12489]

Code:
Sub Drucken()
  Dim i&
  For i = 22 To 30
     If Tabelle1.Cells(i, 12).Text = "x" Then _
         Worksheets(Tabelle1.Cells(i, 11).Text).PrintOut
  Next
End Sub

Was ist an meiner bestehenden Tabelle nicht richtig?
Moin!
Schöne Screenshots!
Du hast keine Tabelle mit dem .Name "Tabelle1" in der Mappe!!
Ich bin eigentlich kein Freund von Textbausteinen, aber für Dich, weil Du in diesem Thread bereits zum zweiten Mal einen Anfängerfehler machst (sorry, aber der musste sein):

Ein Tabellenblatt kannst Du in plain Excel nur mit dem Namen, der auf dem "Tabellenreiter" steht ansprechen!
Bei VBA gibt es drei Möglichkeiten:
  1. Die .Name-Eigenschaft: Worksheets("Meine Tabelle").Range("A1") [steht in der Klammer]
  2. Den Code-Name: Tabelle4.Range("A1") [vor der Klammer]
  3. Den Index (lfd. Nr. des Sheets, von links mit 1 beginnend) Worksheets(4).Range("A1")
Gruß Ralf
Ich habe mich verschrieben. Also auch wenn ich alles ordentlich eintrage es geht nicht sobald ich aus dem Arbeitsblattname "Tabelle1" "Kundendaten" mache.
Also ich finde den Fehler nicht, es kommt folgende Fehlermeldung:
Laufzeit 424 objekt erforderlich


Kann mir jemand Helfen
Tut mir leid Daniel!
Ich habe Dir am 27.7. dezidiert den Unterschied zwischen .Name und .Codename erklärt.
Ich habe sogar noch konkrete Beispiele gegeben.
Habe Dir geschrieben, wo Du im Projektexplorer die jeweiligen Bezeichnungen findest.

Und Du schaffst es nach fast 400 Beiträgen nicht ansatzweise, dies zu verstehen?

Nimm es mir nicht übel, aber ich glaube kaum, dass ich Dir zukünftig helfen werde.

Da wir uns gerade im Luther-Jahr befinden, mal ein Zitat aus seiner Bibelübersetzung:
„Ihr sollt das Heilige nicht den Hunden geben und eure Perlen sollt ihr nicht vor die Säue werfen, damit die sie nicht zertreten mit ihren Füßen und sich umwenden und euch zerreißen.“ (Matthäus 7,6)

Gruß Ralf
Hallo Daniel,

(30.07.2017, 16:21)Daniel Albert schrieb: [ -> ]
Also ich finde den Fehler nicht, es kommt folgende Fehlermeldung:
Laufzeit 424 objekt erforderlich
Kann mir jemand Helfen

Ralf hat Dir hier geholfen bzw. es versucht. Nun kannst Du Dir nur noch selber helfen, in dem Du Ralfs Erklärung noch einmal durchgehst und versuchst, es nachzuvollziehen.

Gruß Uwe
Ja aber ich verstehe es nicht was ich in der 2ten Code Zeile verändern muss.


Code:
Sub Drucken()
Dim i#
For i = 22 To 30
If Worksheets("Kunden").Cells(i, 12).Text = "x" Then _
  Sheets(Tabelle1.Cells(i, 11).Text).PrintOut
Next
End Sub
Jetzt läuft es durch aber es passiert nicht. Es wird nichts gedruckt

Ich denke es liegt an Sheets(....

Da komme ich nicht weiter. Wenn ich dort auch Worksheets verwende kommt eine Fehlermeldung da hinter Text ebenfalls eine Klammer ist
Seiten: 1 2 3 4