Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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 Blätter ausblenden optimieren

Makro Blätter ausblenden optimieren
06.03.2018 10:15:57
Alex
Hallo,
vielleicht könnt ihr mir helfen, wäre jedenfalls sehr dankbar :).
Ich habe ein File mit 40 Tabelleblättern "C1" bis "C40" benannt
In diesen Blättern gibt es 120 Spalten zu prüfen, startet ab Spalte D
In Blatt C1 steht für jede Spalte in Zeile 39 ein "x", wenn die Spalte eingeblendet bleiben soll, ein "-", wenn die Spalte ausgeblendet werden soll.
Die gleichen Spalten sollen für alle Blätter C1 bis C40 ausgeblendet werden
Leider dauert die Berechnung sehr lange, was ich den Bedienern nicht zumuten möchte, das geht schneller, nur weiß ich nicht wie :/.
Danke! :)
Dim lspalt As Integer
Dim Coun As Integer
Dim Buchs As String
Dim WS As String
Dim WSCount As Integer
Dim Curws As String
Application.ScreenUpdating = False
Application.Calculate
Curws = ActiveSheet.Name
Sheets("C1").Select
Call Einblenden /alle Spalten werden eingeblendet
Application.ScreenUpdating = False
lspalt = 123 /Spalte 4 bis 123 sind 120 Spalten
For Coun = 4 To lspalt Step 1
If Cells(39, Coun) = "-" Then /wenn "-" dann blende die Spalte überall aus
For WSCount = 1 To 40 Step 1 /WS stellt C1-C40 dar
WS = "C" & WSCount
Buchs = Cells(38, Coun).Value /Kleiner Behelf von mir für die Zahlspalte
Sheets(WS).Columns(Buchs).Hidden = True /verstecke
Next
End If
Next

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mauf einmal ausblenden
06.03.2018 10:47:29
Fennek
Hallo,
wenn man alle relevanten Spalten auf einmal ausblendet, geht es wesentlich schneller.
Für das Blatt "C1": (eine Schleife für die anderen Blätter ist einfach)

Sub T_1()
Dim WS As Worksheet
Dim Cl As String
Set WS = Sheets("C1")
With WS
Ar = .Range(.Cells(39, 1), .Cells(39, 120))
For j = 4 To 120
If Ar(1, j) = "x" Then Cl = Cl & Chr(64 + j) & ":" & Chr(64 + j) & ", "
Next j
Cl = Left(Cl, Len(Cl) - 2)
WS.Range(Cl).EntireColumn.Hidden = True
End With
End Sub
mfg
AW: Mauf einmal ausblenden
06.03.2018 10:59:51
Alex
Hey, Fennek,
danke für deine Antwort, das half mir schonmal etwas weiter. Leider bin ich in Makros noch nicht so fit, ich verstehe die Befehle alle nicht.
Wie kann ich im folgenden Code die Spalten nicht wie dort einzeln ausblenden sondern den ganzen Array gleichzeitig?
Sheets("Stock level").Select
Rows("1:200").Hidden = False
lspalt = 150
For Coun = 11 To lspalt Step 1
If Cells(Coun, 6) = 0 Then
Rows(Coun).Hidden = True
End If
Next
Anzeige
AW: Mauf einmal ausblenden
06.03.2018 11:08:53
Alex
Hey, Fennek,
danke für deine Antwort, das half mir schonmal etwas weiter. Leider bin ich in Makros noch nicht so fit, ich verstehe die Befehle alle nicht.
Wie kann ich im folgenden Code die Spalten nicht wie dort einzeln ausblenden sondern den ganzen Array gleichzeitig?
Sheets("Stock level").Select
Rows("1:200").Hidden = False
lspalt = 150
For Coun = 11 To lspalt Step 1
If Cells(Coun, 6) = 0 Then
Rows(Coun).Hidden = True
End If
Next

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige