Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

makro auf mehrere Tabellenblätter anwenden

makro auf mehrere Tabellenblätter anwenden
25.05.2004 14:44:21
mika
Hallo Forum,
ich möchte folgendes Makro auf mehrere Tabellenblätter anwenden, in denen die Spalten nach gleichem Kriterium ausgeblendet werden sollen.
Wie funktioniert das?
Gruß,
mika
For i = 1 To 50
If Cells(1, 1) "" Then
If Cells(1, i) Range("a1") Then
Columns(i).EntireColumn.Hidden = True
End If
End If
Next i

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro auf mehrere Tabellenblätter anwenden
25.05.2004 15:17:00
JensD
Hi
Einfach das Makro in ein Modul Kopieren (Einfügen/Modul) und die jeweilige Tabelle auswählen und das Makro starten.
Gruß Jens
AW: nein - das eine soll in mehreren Tabellenblät
25.05.2004 15:38:56
mika
..blättern ausgeführt werden
Ich habe 5 Blätter, auf denen immer die Spalte mit dem gleichen Kriterium, z.b. Mai sichtbar ist und alle anderen ausgeblendet werden.
Auf dem 1. Blatt möchte ich das Makro starten und es soll auf allen 5 Blättern ausblenden.
Wie muß ich die Blätter ansprechen?
Gruß,
mika
AW: nein - das eine soll in mehreren Tabellenblät
25.05.2004 16:23:56
JensD
Dann ebend Automatisch ... in den ersten 5 Blättern von Links.

Sub Ausblenden()
For a = 1 To 5
With Worksheets(a)
For i = 1 To 50
If .Cells(1, 1) <> "" And .Cells(1, i) <> .Range("a1") Then .Columns(i).EntireColumn.Hidden = True
Next i
End With
Next a
End Sub

Anzeige
AW: makro auf mehrere Tabellenblätter anwenden
25.05.2004 15:31:02
Sven
Hallo mika,
etwa so:

Sub ausblenden()
Dim i As Integer
Dim j As Worksheet
For Each j In ActiveWorkbook.Sheets
For i = 1 To 50
If j.Cells(1, 1) <> "" Then
If j.Cells(1, i) <> j.Range("a1") Then
j.Columns(i).EntireColumn.Hidden = True
End If
End If
Next i
Next j
End Sub

Gruß, Sven.
danke, sven, aber ...
mika
... es soll nur für die ersten 5 sheets von mehr gelten.
Wie schränke ich das ein?
Gruß,
mika
AW: danke, sven, aber ...
25.05.2004 16:18:37
Sven
Hi mika, im einfachsten Fall so (nicht sehr schön programmiert aber es klappt):

Sub ausblenden()
ActiveWorkbook.Sheets(1).Activate
Call ausblenden2
ActiveWorkbook.Sheets(2).Activate
Call ausblenden2
ActiveWorkbook.Sheets(3).Activate
Call ausblenden2
ActiveWorkbook.Sheets(4).Activate
Call ausblenden2
ActiveWorkbook.Sheets(5).Activate
Call ausblenden2
End Sub


Sub ausblenden2()
Dim i As Integer
For i = 1 To 50
If Cells(1, 1) <> "" Then
If Cells(1, i) <> Range("a1") Then
Columns(i).EntireColumn.Hidden = True
End If
End If
Next i
End Sub

Anzeige
AW: danke, sven, aber ...
25.05.2004 16:22:47
Sven
Geht doch, so ist's schöner :-)

Sub ausblenden()
Dim a As Integer
For a = 1 To 5
ActiveWorkbook.Sheets(a).Activate
Call ausblenden2
Next a
End Sub


Sub ausblenden2()
Dim i As Integer
For i = 1 To 50
If Cells(1, 1) <> "" Then
If Cells(1, i) <> Range("a1") Then
Columns(i).EntireColumn.Hidden = True
End If
End If
Next i
End Sub

funzt, aber jetzt gibt es noch ein problem
25.05.2004 17:28:21
mika
...meine sheets sind zwar in meiner arbeitsmappe die ersten 5, aber wie ich jetzt erst bemerkt habe, in der VBA-Struktur nicht Tabelle 1-5, sondern kreuz u. quer. Kann ich die Tabellen im VBA Ordner umstrukturieren und benennen?
Gruß,
Mika
Desweiteren habe ich noch zwei Fragen:
1.Kann die Auswahl erweitern, z.b. durch sowas wie range("a1") or Range("a2")
genauso funzt es nicht, das habe ich versucht
2. wie definiere ich den druckbereich für die erzielte auswahl?
PS: Vielen, vielen Dank für deine Hilfe!!!!
Anzeige
AW: funzt, aber jetzt gibt es noch ein problem
25.05.2004 18:07:27
Sven
Hi mika,
so kriegst Du die Reihenfolge z.B. wieder hin:

Sub blattIndexAendern()
ActiveWorkbook.Sheets(1).name = "Tabelle 2"
ActiveWorkbook.Sheets(2).name = "Tabelle 3"
ActiveWorkbook.Sheets(3).name = "Tabelle 1"
End Sub

Bezüglich der anderen Sachen muss ich Dich auf morgen vertrösten.
Gruß, Sven.
AW: funzt, aber jetzt gibt es noch ein problem
25.05.2004 18:52:36
JensD
Hi
Die For a = 1 to 5 spricht die Tabellen von Links nach Rechts an.
Also immer die ersten 5 Tabellen von Links gesehen, es spielt keine Rolle ob du die Tabellen verschiebst. Wenn du z.B. Tabelle1 und 2 vertauschst dann ist Tabelle2 jetzt die Nr.1.

Sub Ausblenden()
For a = 1 To 5
With Worksheets(a)
For i = 1 To 50
If .Cells(1, 1) <> "" then
If .Cells(1, i) <> .Range("a1") or .Cells(1, i) <> .Range("a2")  Then
.Columns(i).EntireColumn.Hidden = True
End IF
End If
Next i
.PageSetup.PrintArea = "$A$1:$C$50"
End With
Next a
End Sub

Gruß JEns
Anzeige
AW: jetzt klappts prima bis auf OR
26.05.2004 09:49:37
Mika
Wenn ich die Anweisung folgendermaßen mit or verknüpfe
If .Cells(1, i) Worksheets("GuV 1").Range("a1")
OR .Cells(1, i) Worksheets("GuV 1").Range("a2") Then
wird keines der Kriterien akzeptiert.
Wo ist der Fehler? Nur Syntax oder Logik?
Vielen Dank für eure Hilfe Sven und JensD
Gruß,
Mika
AW: jetzt klappts prima bis auf OR
26.05.2004 13:02:24
JensD
Hi
Kann eigendlich nur ein Logigfehler sein.
If .Cells(1, i) Worksheets("GuV 1").Range("a1") OR .Cells(1, i) Worksheets("GuV 1").Range("a2") Then
Wenn Celle ist ungleich A1 oder Cells ist ungleich A2 dann
Das Ausblendten sollte erfolgen wenn der Inhalt der Zell weder mit A1 noch mit A2 übereinstimmt.
Gruß Jens
Anzeige

35 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige