Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
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

Zeile ausblenden via VBA -> Variabel gestalten

Zeile ausblenden via VBA -> Variabel gestalten
09.09.2014 15:37:51
Dominic
Hallo zusammen,
ich verwende aktuell folgendes VBA Skript um bestimmte Zeilen in meiner Excel Tabelle aus- oder einzublenden.
Dieses Makro ist an einige Formularsteuerlemente verknüpft, so dass das Makro dann
ausgelöst wird und die jeweils gewünschten Zeilen aus- oder eingeblendet werden.
Kommen wir zum eigentlichen Problem. Ich muss bzw. möchte diese Liste variabler gestalten.
Heißt ich möchte nicht mehr bei jeder Änderung der Kundenbasis in das VBA Skript reingehen
und die Zeilen anpassen und editieren.
Im Tabellenblatt Datensammlungen werden in der Spalte X alle Kunden untereinander mit Namen aufgeführt.
Diese Kundenanzahl kann variabel sein.
Wie kann ich dieses Skript um folgenden Teil erweitern:
Prüfe im Tabellenblatt "Datensammlungen" ab Zelle X3 bis X400 (max. 400), (X1 und 2 enthalten Überschriften)
wie viele Zellen untereinander gefüllt sind. Hier werden alle Kunden nacheinander
aufgeführt. In dem aufgeführten VBA Beispiel sind es 181x Kunden heißt X3 bis X183 ist mit jeweils einem Kundennamen gefüllt.
Das u. aufgeführte Skript soll dann ausgehend von Startzeile 180 ausgehen und dazu (181 x 6 = 1.086 addieren ) = 1.266) an
besagter Stelle eintragen/ verwenden.
Angenommen in X3 bis X350 sind Kunden aufgeführt, sollte im Skript statt der 1.266 der Wert 2.262 stehen.
(Zusammensetzung wie gehabt: Startzeile = 180 + 348 Kunden (348x6= 2.088) = 2.268
Sub ZeileAusblenden()
Application.ScreenUpdating = False
With Sheets("Export")
With .Range("B14:T2050")
.ClearContents
.FormatConditions.Delete
.Borders.LineStyle = xlNone
With .Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With .Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
With .Cells
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
.RowHeight = 17
.ColumnWidth = 15
'.UseStandardHeight = True
End With
End With
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim Ze As Long
If [B1] = 1 And [B2] = 1 And [P1] = 1 Then
Range("28:2340").EntireRow.Hidden = True
For Ze = 180 To 1266 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
End If
Range("B1:O8").Calculate
Range("O27:O28").Calculate
If [B1] = 2 And [B2] = 1 And [P1] = 1 Then
Range("28:2340").EntireRow.Hidden = True
Range("181:1266").EntireRow.Hidden = False
End If
Range("B1:O8").Calculate
Range("O27:O28").Calculate
If [B1] = 2 And [B2] = 1 And [P1] = 2 Then
Range("28:2340").EntireRow.Hidden = True
Range("181:1266").EntireRow.Hidden = False
Range("30:173").EntireRow.Hidden = False
Range("180:180").EntireRow.Hidden = False
End If
Range("B1:O8").Calculate
Range("O27:O28").Calculate
If [B1] = 1 And [B2] = 1 And [P1] = 2 Then
Range("28:2340").EntireRow.Hidden = True
Range("180:180").EntireRow.Hidden = False
For Ze = 180 To 1266 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
For Ze = 29 To 170 Step 6
Rows(Ze + 1).EntireRow.Hidden = False
Next
End If
Range("B1:O8").Calculate
Range("O27:O28").Calculate
Application.ScreenUpdating = True
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile ausblenden via VBA -> Variabel gestalten
09.09.2014 15:50:43
Rudi
Hallo,
die Anzahl der Kunden kannst du ganz einfach mit
Worksheetfunction.CountA(Range("X3:X400")

auslesen.
Gruß
Rudi

AW: Zeile ausblenden via VBA -> Variabel gestalten
09.09.2014 16:17:27
Dominic
Hi Rudi,
wie erweitere ich die WorksheetFunction.CountA um Angabe des Tabellenblatts "Datensammlungen"?
Ich kann zwar über ActiveWorkbook.Worksheets("Datensammlungen").Select gehen, wenn ich das davor eintrage,
aber dann springt er auch für den User sichtbar in das andere Tabellenblatt, und das will ich nur ungern.
Danke im Voraus!

AW: Zellbezug mit Tabellenblattangabe
09.09.2014 16:29:58
Daniel
Hi
Tabellenblatt mit angeben, so wie man dass in VBA üblicherweise macht, wenn man mit mehren Blättern arbeitet:
Worksheetfunction.CountA(Worksheets("Datensammlungen").Range("X3:X400"))
ggf funktioniert auch (bitte mal testen):
Worksheetfunction.CountA(Range("Datensammlungen!X3:X400"))

Gruß Daniel

Anzeige
AW: Zellbezug mit Tabellenblattangabe
09.09.2014 16:31:23
Dominic
Super danke!
Mit VBA kenne ich mich noch gar nicht aus... Wird aber noch werden. :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige