Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1260to1264
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro für alle Tabellenblätter (Filter,ausblenden.

Makro für alle Tabellenblätter (Filter,ausblenden.
Maggie
Hallo
ich habe 3 Makros welche nur auf dem aktiven Tabellenblatt laufen, bräuchte sie aber so das sie gleichzeitig in allen Tabellenblättern laufen... habe Null-Ahnung wie ich das hin bekommen soll...
kann mir bitte jemand dabei helfen?
Gruß
Maggie
hier die 3 Makros
--------------------------------------------------
Sub Monat_anpassen()
'
' Monat_anpassen Makro
'
'
Range("A2:AI2").Select
Selection.AutoFilter
Range("A3:AI27").Select
Range("A27").Activate
ActiveSheet.Range("$A$2:$AI$51").AutoFilter Field:=35, Criteria1:=RGB(255, _
199, 206), Operator:=xlFilterCellColor
Selection.ClearContents
Selection.AutoFilter
Range("D3").Select
End Sub
--------------------------------------------------------------

Public Sub ausblenden()
Application.ScreenUpdating = False
Dim L As Long
For L = 3 To 27
Rows(L).Hidden = WorksheetFunction.Sum(Range("C" & L & ":By" & L)) = 0
Next
Application.ScreenUpdating = True
End Sub

----------------------------------------------------------------
Sub Seite_Druckbereich()
ActiveSheet.PageSetup.PrintArea = "$A$1:$AC$51"
ActiveSheet.PageSetup.PrintArea = False
With ActiveSheet.PageSetup
.Zoom = 68 'Zoomfaktor 68%
'.FitToPagesWide = 1 '1 Seite breit
.LeftMargin = Application.InchesToPoints(0.31496062992126)
.RightMargin = Application.InchesToPoints(0.31496062992126)
.TopMargin = Application.InchesToPoints(0.78740157480315)
.BottomMargin = Application.InchesToPoints(0.31496062992126)
.Orientation = xlLandscape
End With
End Sub
AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 15:13:47
Reinhard
Hallo Maggie,
Option Explicit
Sub Alle()
Dim wks As Worksheet
For Each wks In Worksheets
Call Monat_anpassen(wks)
Call ausblenden(wks)
Call Seite_Druckbereich(wks)
Next wks
End Sub
Sub Monat_anpassen(ByRef wks As Worksheet)
' Monat_anpassen Makro
With wks
.Range("A2:AI2").AutoFilter
.Range("A3:AI27").Select
.Range("A27").Activate
.Range("$A$2:$AI$51").AutoFilter Field:=35, Criteria1:=RGB(255, _
199, 206), Operator:=xlFilterCellColor
Selection.ClearContents
Selection.AutoFilter
.Range("D3").Select
End With
End Sub
Public Sub ausblenden(ByRef wks As Worksheet)
Dim L As Long
Application.ScreenUpdating = False
With wks
For L = 3 To 27
.Rows(L).Hidden = WorksheetFunction.Sum(.Range("C" & L & ":By" & L)) = 0
Next
End With
Application.ScreenUpdating = True
End Sub
Sub Seite_Druckbereich(ByRef wks As Worksheet)
With wks
.PageSetup.PrintArea = "$A$1:$AC$51"
.PageSetup.PrintArea = False
With .PageSetup
.Zoom = 68 'Zoomfaktor 68%
'.FitToPagesWide = 1 '1 Seite breit
.LeftMargin = Application.InchesToPoints(0.31496062992126)
.RightMargin = Application.InchesToPoints(0.31496062992126)
.TopMargin = Application.InchesToPoints(0.78740157480315)
.BottomMargin = Application.InchesToPoints(0.31496062992126)
.Orientation = xlLandscape
End With
End With
End Sub

Gruß
Reinhard
Anzeige
AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 15:42:21
Hajo_Zi
Hallo Reinhard,
ich hätte vermutet Du kannst kein Select auf eine nicht aktive Tabelle machen.
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.

AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 15:50:12
Maggie
Hallo Reinhold,
klappt leider nicht... .
Laufzeitfehler 1004 - Die Select Methode des Range Objekts konnte nicht ausgeführt werden....
.Range("A3:AI27").Select
Gruß
Maggie
AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 16:02:11
Daniel
Hallo Maggi,
probier mal das:
Sub bla()
For Each b In Worksheets
b.Select
[...deine 3 Makros...]
next
End Sub
b ... steht als Platzhalter für jedes Arbeitsblatt der aktuellen Mappe
d.h. du kannst es auch anders nennen (Blatt o.ä. ...)
Viele Erfolg
Daniel Ov
Anzeige
AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 19:16:40
Reinhard
Hallo Maggie,
ja, ist normal, Hajo hat ja schon geschrieben warum der Fehler kommen muß.
Du kannst in meiner Prozedur Alle in der For-Schleife zuoberst schreiben:
wks.activate.
Funktioniert, ist aber ohne Stil.
Lass das weg und probier mal (ungetestet):
Sub Monat_anpassen(ByRef wks As Worksheet)
' Monat_anpassen Makro
With wks
.Range("A2:AI2").AutoFilter
.Range("$A$2:$AI$51").AutoFilter Field:=35, Criteria1:=RGB(255, _
199, 206), Operator:=xlFilterCellColor
.Range("A3:AI27").ClearContents
.Range("A3:AI27").AutoFilter
End With
End Sub

Gruß
Reinhard
Anzeige
AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 18:49:30
Rolf
Hallo Reinhard,
das muss ich jetzt einfach mal loswerden.
Du hast geniale Lösungen auf Lager, von denen ich, als VBA-Greenhorn, nur träumen kann.
Warum mir jetzt - in diesem Moment - Mark Twain einfällt, weiß ich nicht.
Vermutlich Freud'sche Fehlleistung. Der Spruch ist aber dennoch nachdenkenswert.
Der Mensch ist das religiöse Tier. Er ist das einzige Tier, das seinen Nächsten wie sich selber liebt und, wenn dessen Theologie nicht stimmt, ihm die Kehle abschneidet.
Gruß, Rolf
AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 20:54:41
Reinhard
Hallo Rolf,
ich und genial in Vba? :-) danke, dem ist aber beileibe nicht so.
Ich spiele hier bei Herber in der dritten Bundesliga knapp über dem Relegationsplatz.
Und ich sehe schon was in den beiden oberen Ligen so gezeigt wird an Können.
Was Mark Twain so sagte, übrigens Erich Kästner ist da ähnlich, u.v.m., ist schon lesenswert.
Warum du nun bei mir auf diese Aussage von mark Twain kommst ist mir nicht klar.
Daß der Mensch auch nur ein Tier ist, ja das weiß ich.
PS: Vor vielen Jahren lief mal in einem dritten Programm eine mehrteilige Doku mit dem Titel
"das Tier Mensch"
Sie ist sehr wert gesehen zu werden. Da wurde vieles gleiches aufgezeigt.
Im Sinne der Weltrelegionen, ich bezeichne sie sowieso alle als Sekten, bin ich nicht gläubig.
Ich bin meine eigene Sekte :-)
Daran daß genügend Menschen "Liebe deinen Nächsten" so im Kopf/Herzen haben und es auch umsetzen daß sie das auf jeden anwenden der grad ihr Nächster ist, also neben ihnen steht, um das
prozentual bezogen auf Milliarden. Menschen auszudrücken glaube ich nicht.
Es gilt immer noch das Prinzip aus der Evolution was auch in heutigen Genen steckt.
Erst komme ich, dann meine Familie, dann mein Dorf, dann dazu noch das Nachbardorf,
dann viele Dörfer der Umgebung (Bundesland), dann der Staat aller Tiere die so sind wie ich,
hier also Deutsche, dann alle die in Europa, dann alle auf der Erde wenn es gegen marsmenschen geht...
Ich liebe garantiert nicht alle meine Nächsten. Andrerseits habe ich (noch) nicht jmdm. die Kehle durchgeschnitten.
Zum Thema Evolution. Stell dir mal vor, in Urzeiten gab es mal einen See und zwei Dörfer am See.
Sie lebten alle vom Fischfang. Jetzt geschah irgendwas und beide Dörfer stelleten fest,
der Fischfang reicht nicht mehr aus um beide Dörfer mit Nahrung zu versorgen.
Die Logik sagt, mal angenommen daß wären damals alle menschen auf der Welt gewesen,
überlebt hat das Dorf das gewann als sich beide Dörfer gegenseitig abmursten.
Das zieht sich durch die Geschichte. Und wir haben logischerweise die Gene derjenigen die
besser darin waren andre abzumurksen. Was auch bedeutet, um eigene Truppen zu schonen
zuerst zuzuschlagen und das auch ggfs. noch hinterrücks.
The winner takes all.
Was ich geschreiben habe ist dann doch winzigist OT in Bezug auf ein Excelforum.
Hier ist nicht der Ort um das zu debattieren.
Gruß
Reinhard
Anzeige
AW: Makro für alle Tabellenblätter (Filter,ausblenden.
06.05.2012 22:57:28
Maggie
Danke Euch,
musste es doch etwas anders lösen, hatte vergessen, dass ich alle bis auf die ersten 3 Tabellenblätter brauche.
Jetzt brauche ich nur noch den Druckbereich, aber das ist nicht so wichtig, denn den kann ich mit dem E-Mailversand verbinden.
so sieht mein Ergebnis bisher aus...
Sub Monat_anpassen()
Dim I As Integer
For I = 4 To Sheets.Count
Sheets(I).Select
' Monat_anpassen Makro
Range("A2:AI2").Select
Selection.AutoFilter
Range("A3:AI27").Select
Range("A27").Activate
ActiveSheet.Range("$A$2:$AI$51").AutoFilter Field:=35, Criteria1:=RGB(255, _
199, 206), Operator:=xlFilterCellColor
Selection.ClearContents
Selection.AutoFilter
Range("D3").Select
Range("A3:A27").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
Next I
End Sub

Gruß
Maggie
PS. Sorry Reinhard, das ich aus Dir einen Reinhold gemacht habe...
Anzeige

333 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige