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

Spalten automatisch ein- und ausblenden

Spalten automatisch ein- und ausblenden
24.04.2014 14:38:22
Gira
Hallo liebes Forum,
ich habe noch ein kleines Problem, bei dem ihr mir hoffentlich behilflich sein könnt:
Ich möchte in einer Excel-Datei alle Spalte eines bestimmten Bereiches ausblenden, die in Z. 38 den Wert 0 haben. Das Makro soll immer dann ausgeführt werden, wenn sich irgendwo in der gesamten Arbeitsmappe ein Wert ändert, also nicht nur bei Veränderung einer bestimmten Zelle.
Da ich mich nicht wirklich mit VBA auskenne, habe ich mir das Makro aus ein paar Beispielen zusammenkopiert:
Private Sub Worksheet_Change(ByVal Target As Range)
Sub spalte_einb_ausb()
Cells.EntireColumn.Hidden = False
Dim intSpalte As Integer
For intSpalte = 9 To 39
If Cells(38, intSpalte) = 0 Then
Columns(intSpalte).EntireColumn.Hidden = True
End If
Next
End Sub

Wie muss ich VBA sagen, dass dieses Makro immer ausgeführt werden soll, wenn sich irgendein Wert in der gesamten Arbeitsmappe ändert?
Vielen Dank für eure Unterstützung!
Viele Grüße
girasol

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten automatisch ein- und ausblenden
24.04.2014 14:46:57
Philipp
Hallo girasol,
kopier das mal in das ThisWorkbook Modul.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Row = 38 And Target.Value = 0 Then
Target.EntireColumn.Hidden = True
End If
End Sub
Gruß
Philipp

AW: Spalten automatisch ein- und ausblenden
24.04.2014 14:53:50
Gira
Hallo Philipp,
danke für deine schnelle Antwort.
Die folgenden Fragen habe ich zu deiner Antwort:
Statt des anderen, d.h. das bisherige soll ich löschen?
Wie weiß die Datei dann, in welche Lasche der Arbeitsmappe sie die besagten Spalten ausblenden soll?
Viele Grüße
girasol

Anzeige
AW: Spalten automatisch ein- und ausblenden
24.04.2014 14:57:01
Philipp
Hallo girasol,
das bisherige Workbook_SheetChange() müsstest Du ersetzten, außer es sind noch andere Sachen da drinnen abgebildet. Ist halt schwierig zu sagen was Du da schon hast.
Was der code macht:
Es wird geguckt, was geändert wurde und wenn das in Zeile 38 ist und der neue Wert eine 0 ist, dann wird die Spalte ausgblendet.
Das Ganze funktioniert nicht wenn in Spalte 38 eine Formel ist und die Eingabe nicht direkt in der Zelle stattfindet.
Dazu bräuchten wir aber mehr Angaben oder eine Beispieldatei.
Gruß
Philipp

AW: Spalten automatisch ein- und ausblenden
24.04.2014 15:19:32
Gira
Hallo Philipp,
also dieses Makro ist das einzige in der ganzen Arbeitsmappen - es sind keine weiteren vorhanden.
Ich probiere es jetzt noch ein wenig genauer zu beschreiben:
In Tabelle1 gibt es die Zeile 38. Diese Zeile ist ein Summenzeile. Pro Spalte sind die Kosten eines Jahres. D.h. I38 sind die Kosten des Jahres 2014, J39 die Kosten des Jahres 2015 usw. In AO38 ist dann die Summe über alle Jahre. Die Kosten eines Jahres berechnen sich abhängig von sehr vielen Parametern. Auch die Dauer ist abhängig von div. Parametern, d.h. die Spalten eines Jahres können Werte enthalten, müssen aber nicht. Daher möchte ich immer die Spalten (= Jahre) ausblenden, in denen keine Kosten auflaufen.
Viele Grüße
girasol

Anzeige
AW: Spalten automatisch ein- und ausblenden
24.04.2014 14:52:27
hary
Moin
Wie aendert sich der Wert? Durch Formel oder haendisch?
gruss hary

AW: Spalten automatisch ein- und ausblenden
24.04.2014 14:57:14
Gira
Hallo Hary,
an verschiedensten Stellen der gesamten Datei können Parameter, also händische Werte, geändert werden.
Diese sind dann wieder irgendwie verformelt und führen dazu, dass sich die Zelle AO38 (= die Gesamtsumme der ganzen Rechnung) ändert.
Ich habe schon versucht, es so aufzubauen, dass bei Änderung des Wertes in AO38 das Makro startet, aber das scheint nicht zu funktionieren, da AO38 eine Formel und kein manueller Wert ist. Daher die Idee, das Makro auf eine Änderung irgendwo in der gesamten Arbeitsmappe zu beziehen.
Danke für deine Unterstützung und viele Grüße
girasol

Anzeige
AW: Spalten automatisch ein- und ausblenden
24.04.2014 15:00:53
Philipp
Hallo girasol,
also kann es sein, dass eine Änderung in Blatt x eine 0 in Blatt y Zeile 38 bewirkt?
Muss also auf jedem Arbeitsblatt nach 0 gesucht werden? Und um welche Spalten handelt es sich genau?
Gruß
Philipp

AW: Spalten automatisch ein- und ausblenden
24.04.2014 15:15:42
EtoPHG
Hallo,
Diesen (und nur diesen) Code in das Tabellenblatt in dem die Spalten aus/eingeblendet werden sollen:
Private Sub Worksheet_Calculate()
Static dSaved As Double
Dim lCol As Long
If dSaved  Range("AO38").Value Then
dSaved = Range("AO38").Value
For lCol = 9 To 39
Cells(38, lCol).EntireColumn.Hidden = (Cells(38, lCol) = 0)
Next lCol
End If
End Sub
Gruess Hansueli

Anzeige
AW: Spalten automatisch ein- und ausblenden
24.04.2014 15:21:51
Gira
Hallo Hansueli,
super, vielen Dank - damit funktioniert es (wie auch immer du das gemacht hast... ;-))!
Viele Grüße
girasol

AW: Spalten automatisch ein- und ausblenden
24.04.2014 15:40:26
Philipp
Hallo Hansueli,
geile Sache, besonders das '= (Cells(38, lCol) = 0)'.
Was genau soll aber das bewirken?
dSaved = Range("AO38").Value
Gruß
Philipp

AW: Spalten automatisch ein- und ausblenden
24.04.2014 15:52:15
EtoPHG
Hallo Philipp,
Na was schon?: das Resultat der Summenformel in AO38 wird in die Variable dSaved geschrieben!
Damit wird das Ein-/Ausblenden nur dann durchgeführt, wenn sich diese Summe verändert hat (siehe vorhergehenden If), was im Endeffekt ein _Change-Ereignis von AO38 'simuliert'!
Gruess Hansueli

Anzeige
AW: Spalten automatisch ein- und ausblenden
24.04.2014 16:11:15
Philipp
Hallo Hansueli,
das mit dem Resultat der Summenformel war mir klar :p
Was mir nicht klar war, dass das Resultat da gespeichert wird.
Kommt das durch das static? Wann genau wird der Wert da wieder rausgelöscht?
Gruß
Philipp

AW: Spalten automatisch ein- und ausblenden
24.04.2014 16:40:50
EtoPHG
Hallo Philipp,
Static bedeutet, dass der Inhalt der Variablen solange erhalten bleibt, wie das Klassenmodul nicht entladen, bzw. neu geladen wird. Hier also solange die Arbeitsmappe geöffnet bleibt. Die Variable wird also beim Laden des Klassenmoduls auf 0 initialisiert und ändert sich anschliessend nur bei jeder Veränderung des Werts von AO38, falls eine Neuberechnung des Blatts angestossen wurde.
Gruess Hansueli

Anzeige
AW: Spalten automatisch ein- und ausblenden
25.04.2014 08:04:23
Philipp
Hallo Hansueli,
sehr coole Sache. Danke für die Erklärung.
Gruß
Philipp

27 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige