Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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 ausblenden (mit VBA)

Spalten automatisch ausblenden (mit VBA)
25.05.2023 10:11:51
Christian

Guten Tag liebe Leute

Ich habe im Forum mehrere Beiträge dazu gefunden, jedoch konnte ich die VBA nicht an meine Bedürfnisse anpassen. Da ich überhaupt keine Ahnung von VBA habe.

Von Spalte P bis Spalte AW, in der Zeile 9 hat es Formeln die eine ganze Zahl oder "" als Ergebnis aufweisen. Sollte das Ergebnis "" sein, sollte die ganze Spalte ausgeblendet werden, bei einem anderen Ergebnis eingeblendet. Die Überprüfung sollte nur stadtfinden, wenn in der Zelle AN1 eine Änderung (durch Formel) vorgenommen wird, und nur in einem bestimmten Blatt (Woche = Rotation). Danach möchte ich sie anpassen für ein Anders Blatt (Rotation = Woche). Und nur im Bereich vom P9 bis AW9, nicht die ganze Zeile.

Eine Formel (gefunden) die zum Teil funktioniert

Private Sub Worksheet_Activate()
For myColumn = 1 To ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1
If Cells(9, myColumn) = "" Then
Columns(myColumn).Hidden = True
Else
Columns(myColumn).Hidden = False
End If
Next
End Sub

Noch eine Formel (auch gefunden) die zum Teil Funktionier.
Ich habe nur etwas verändert.
If dSaved > Range("AO38").Value Then
If dSaved > Range("Q9").Value Then

Private Sub Worksheet_Calculate()
Static dSaved As Double
Dim lCol As Long
If dSaved > Range("Q9").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


Um den Blattschutz auszuschalten und wieder einzuschalten habe ich zwei Makros gemacht. Wahrscheinlich müsste ich die das VBA zwischen die zwei Makros legen?

Sub Blattschutz_aufheben()
'
' Blattschutz_aufheben Makro
'

'
ActiveSheet.Unprotect
End Sub



Sub Blatt_schützen()
'
' Blatt_schützen Makro
'

'
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


Mit freundlichen Grüssen
Christian

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten automatisch ausblenden (mit VBA)
25.05.2023 14:15:17
Edi
Hallo Christian

In so einem Fall wäre eine Beispieldatei nicht schlecht. Dann kann man sich etwas darunter vorstellen.
Dein erster Code sieht doch gar nicht schlecht aus. Warum funktioniert der nur teilweise?

Wenn der Bereich zuverlässig P bis AW ist, kannst du die 2. Zeile ersetzen durch:
For myColumn = 16 To 49


AW: Spalten automatisch ausblenden (mit VBA)
26.05.2023 08:40:14
Christian
Hallo
Danke dein Typ hat mir sehr geholfen, gerne füge ich die Datei an.

https://www.herber.de/bbs/user/159327.xlsm

Das VBA wird ausgeführt wie ich es mir wünsche.
Das VBA wird automatisch beim Blattwechsel ausgeführt, gibt es die Möglichkeit dies bei einer Änderung vom Zellinhalt zu tun? Zelle X1 oder/und X2 Zelle (O1 oder/und O2)

Private Sub Worksheet_Activate()
'
' Blattschutz_aufheben Makro
'

'
    ActiveSheet.Unprotect
'
'
For myColumn = 25 To 49
    If Cells(9, myColumn) = "" Then
        Columns(myColumn).Hidden = True
    Else
        Columns(myColumn).Hidden = False
    End If
Next

'
' Blatt_schützen Makro
'

'
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Mit freundlichen Grüssen
Christian


Anzeige
AW: Spalten automatisch ausblenden (mit VBA)
31.05.2023 14:53:19
Edi
Hallo Christian

So wie ich das sehe, funktioniert deine Datei.
Das Makro wird jetzt durch einen Wechsel der Sheets angestossen. Wenn Dir das nicht reicht, könnte man das Ergebnis von AN1 beim öffnen der Datei in eine Variable schreiben (oder auch in eine Versteckte Zelle) und die Ergebniszelle dann bei jedem Klick vergleichen und bei einer Änderung das Makro ausführen. Nicht besonders elegant, aber möglich.
Eine andere Idee habe ich nicht

Gruß
Edi


AW: Spalten automatisch ausblenden (mit VBA)
13.06.2023 17:58:54
Christian
Sälü Edi

Danke für deine Meldung. Ich habe im Forum mehrere Beiträge gefunden die ein VBA automatisch ausführen bei einer Änderung in einer bestimmten Zelle. Ich habe versucht sie mit "meinem" VBA zusammenzufügen. Jedoch ohne Erfolg.
Ich werde nicht noch mehr Zeit investieren und benütze das VBA so wie es ist. Es funktioniert ja.
Nochmals Dankeschön

Mit freundlichen Güssen
Christian


Anzeige
AW: Spalten automatisch ausblenden (mit VBA)
25.05.2023 19:39:47
Yal
Hallo Christian,

nicht getestet, da keine Datei dafür.

Private Sub Worksheet_Calculate()
Dim C As Column
    Application.ScreenUpdating = False
    Columns.Hidden = False
    For Each C In UsedRange.Columns
        If C.Cells(9) = "" Then C.Hidden = True
    Next
    Application.ScreenUpdating = True
End Sub
In VB-Editor, unter Extras, Optionen, schalte "Variablendeklaration erforderlich" an ("Option Explicit"). Am Anfang nervig, aber nur am Anfang.

VG
Yal


AW: Spalten automatisch ausblenden (mit VBA)
26.05.2023 08:51:43
Christian
Hallo

Danke für deine Antwort.
Ich werde deinen Lösungsvorschlag nicht ausprobieren, da ich mit einer anderen Lösung fast ganz zufrieden bin. Es ist sehr schön Hilfe zu bekommen, danke an Alle. Wenn man von VBA nichts versteht, stösst man sehr schnell an unüberwindbare Grenzen.

Mit freundlichen Grüssen
Christian

Anzeige

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige