Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Per Makro Abfrage erzeugen welche Tabelltenblätter ausgedruckt werden sollen
#1
Hallo,

kann mir bitte jemand dabei helfen wie ich ein Makro erstellen kann was in einem Zellenbereich die Zellen ausliest in welchen ein X vorhanden ist. Diese Tabellenblätter sollen dann ausgedruckt werden

Beispiel: Tabelle hat - folgende Tabellenblätter : tbl 1 / tbl 2 / tbl 3 / tbl 4

Nun möchte ich folgendes im Zellenbereich des Makros prüfen lassen:

tbl 1: x
tbl 2:
tbl 3:
tbl 4: x

Das Makro sollte die beiden x erkennen und nur tbl 1 und tbl 4 ausdrucken. Gibt es dieses Makro so schon oder kann mir jemand beim erstellen behilflich sein ?

Gruß Daniel
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Antworten Top
#2
Moin!
Ausgesprochen ungenaue Threaderöffnung. 

Daher nur ein Snippet:
Code:
Sub Machet()
Dim i#
For i = 1 To 4
 If Tabelle1.Cells(2, i).Text = "x" Then _
   Worksheets(Tabelle1.Cells(1, i).Text).PrintOut
Next
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hallo Ralf,

Cells(2,i) i und die 2 tauschen, oder Wink
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Daniel Albert
Antworten Top
#4
Au Backe!  Blush
Danke für die Korrektur, atilla!
Natürlich so:
Code:
Sub Machet()
Dim i#
For i = 1 To 4
 If Tabelle1.Cells(i, 2).Text = "x" Then _
   Worksheets(Tabelle1.Cells(i, 1).Text).PrintOut
Next
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Daniel Albert
Antworten Top
#5
Hallo, wusste nicht wie es es genau beschreiben soll.

Die erste Zelle wo ein x stehen kann ist L22

Also habe ich die Werte umgeschrieben aber ich bekommen eine Fehlermeldung. Laufzeitfehler 424. Warum ist eine # hinter i?


Sub Machet()
Dim i#
For i = 22 To 30
 If Kundendaten.Cells(i, 12).Text = "x" Then _
   Worksheets(Kundendaten.Cells(i, 11).Text).PrintOut
Next
End Sub
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Antworten Top
#6
Moin!
Den LZF 424 kann ich nicht nachvollziehen.
Dein Code ist soweit i.O., vielleicht zeigst Du mal die Datei, damit man sich das ansehen kann.
Zitat:Warum ist eine # hinter i?

Ist das Kurzzeichen für Double.
Ich hätte auch & für Long oder % für Integer nehmen können.
(oder es ganz weglassen -> Variant)
Macht bei diesem kurzen Code alles nichts aus.
siehe:
https://de.wikibooks.org/wiki/VBA_in_Exc...ablentypen

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Daniel Albert
Antworten Top
#7
Hallo, habe es mal in eine einzelne Datei gepackt da meine Tabelle nicht hier einstellen kann. Da kommt der Fehler nicht aber es wird auch nicht gedruckt


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 18,58 KB / Downloads: 7)
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Antworten Top
#8
Na logisch, dass nichts gedruckt wird.
Du fragst Tabelle1 ab, die x stehen aber in Tabelle4

Ergänzend:
Ich benutze den CodeName, der steht im Projektexplorer vor der Klammer.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Daniel Albert
Antworten Top
#9
Guten Morgen, ah verdammt da war ich woll zu schnell beim erstellen.

OK aber es macht ja nicht das ich suche.

Ich wollte ja, dass dieses Makro anhand der x Eintragungen prüft welche Tabellenblätter ausgedruckt werden sollen und den Druckvorgang direkt startet. Sollen Tabelle 1 und 4 ausgedruckt werden wird das durch das X angezeigt und das Makro startet sofort den Druckvorgang. Daher habe ich ja in der Spalte K die Tabellennamen gleich Name Tabellenblatt eingetragen.
Gruß Daniel Albert

Finanzberater für Baufinanzierungen
Antworten Top
#10
Hallo,

Dein Code ist falsch.

so sollte er aussehen:

Code:
Sub Machet()
Dim i#
For i = 22 To 30
 If Tabelle4.Cells(i, 12).Text = "x" Then _
   Sheets(Tabelle4.Cells(i, 11).Text).PrintOut
Next
End Sub
Ok, hat Ralf schon genauso geschrieben.
Aber vielleicht schaust Du noch einmal nach, was genau bei Dir steht.
Gruß Atilla
[-] Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:
  • Daniel Albert
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste