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
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)
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
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
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
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
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
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
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
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
Top


Gehe zu:


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