Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Spalten ein/ausblenden per Click

Betrifft: VBA Spalten ein/ausblenden per Click von: koskesh
Geschrieben am: 19.08.2014 16:09:04

Hallo, möchte per Click auf ein Button folgende Aktionen ausführen

- Spalten H:K ein bzw ausblenden
- Spalten L-O aus bzw einblenden

Alle vier Aktionen auf den selben Button (wien Toggle für ein/aus)
Die jeweiligen Spalten sollen nicht gleichzeitig sichtbar sein.

Nur für die Spalten H:K habe ich es so hinbekommen

Columns("H:K").EntireColumn.Hidden = Not Columns("H:K").EntireColumn.Hidden

  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Daniel
Geschrieben am: 19.08.2014 16:18:48

Hi

Probiere mal:

With Range("H:K").EntireRow
.Hidden = not .Hidden
End With
With Range("L:O").EntireRow
.Hidden = not .Hidden
End with
bevor du den Code Startest, musst du dafür sorgen dass der eine Block ausgeblendet und der andere Eingeblendet ist.

wenn du den Fall absichern willst, dass jedmand von Hand noch ein- oder ausblendet, aber nach dem Klick wieder alles wie gewohnt sein soll, dann so:
Static x as Boolean
x = Not x
Range("H:K").EntireRow.Hidden = x
Range("L:O").EntrieRow.Hidden = Not x
Gruß Daniel


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: koskesh
Geschrieben am: 19.08.2014 16:30:09

Krieg einen Debug Fehler. Keine Ahnung wieso


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Daniel
Geschrieben am: 19.08.2014 16:37:11

wenn du mir sagen würdest, bei welchem Code und in welcher Zeile, dann würde ich dir auch sagen, woran es liegt.
Tippfehler kannst du vermeiden, wenn du den Code selber schreibst und dabei die Intellisense verwendest, dh du tippst die ersten Buchstaben ein und drückst dann ALT+LEER.
wenn der Ausdruck schon eindeutig ist, bekommst, wird er automatisch vervollständigt, falls nicht, bekommst du eine Auswahlliste und kannst den passenden auswählen, so dass du nicht alles tippen musst.

Gruß Daniel


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Christian
Geschrieben am: 19.08.2014 16:40:08

Hallo,

wir sind hier in einem Forum, nicht im Kids-Chat, da gehört Anrede und Gruß dazu, gehört eigentlich zur guten Erziehung.... und zur Netiquette !!

Wo tritt den der Fehler auf?

MfG Christian


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Gerold
Geschrieben am: 19.08.2014 20:35:32

Hallo koskesh


Option Explicit
Dim Toggle As Boolean

Sub DeinButton_Klick()
If Toggle Then
    Columns("H:K").EntireColumn.Hidden = True
    Columns("L:O").EntireColumn.Hidden = False
    Toggle = False
Else
    Columns("H:K").EntireColumn.Hidden = False
    Columns("L:O").EntireColumn.Hidden = True
    Toggle = True
End If
End Sub

Gruß Gerold

Rückmeldung wäre nett.


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Daniel
Geschrieben am: 19.08.2014 21:07:45

Hi Gerold

nicht DIM Toggle as Boolean, sonder STATIC Toggle as Boolean

Mit DIM ist Toggle beim Start des Makros immer FALSE, weil die Variablenwerte nach Makroende gelöscht werden, ausser die Variable ist als STATIC deklariert, dann behält sie ihren Wert für den nächsten Lauf dieses Makros.

Gruß Daniel


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Gerold
Geschrieben am: 19.08.2014 22:44:19

Hallo Daniel

Stimmt, hast recht.
Hatte den von Robert nur -aus der Sub rausgeholt- und nicht weiter drauf geachtet.


Option Explicit
Static Toggle As Boolean

Sub DeinButton_Klick()
If Toggle Then
    Columns("H:K").EntireColumn.Hidden = True
    Columns("L:O").EntireColumn.Hidden = False
    Toggle = False
Else
    Columns("H:K").EntireColumn.Hidden = False
    Columns("L:O").EntireColumn.Hidden = True
    Toggle = True
End If
End Sub

Gruß Gerold

Rückmeldung wäre nett.


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Gerold
Geschrieben am: 19.08.2014 22:48:43

Hallo Daniel

Stimmt, hast recht.
Hatte den von Robert nur -aus der Sub rausgeholt- und nicht weiter drauf geachtet.


Option Explicit

Sub DeinButton_Klick()
Static Toggle As Boolean
If Toggle Then
    Columns("H:K").EntireColumn.Hidden = True
    Columns("L:O").EntireColumn.Hidden = False
    Toggle = False
Else
    Columns("H:K").EntireColumn.Hidden = False
    Columns("L:O").EntireColumn.Hidden = True
    Toggle = True
End If
End Sub

Gruß Gerold

Rückmeldung wäre nett.


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Gerold
Geschrieben am: 19.08.2014 22:48:55

Hallo Daniel

Stimmt, hast recht.
Hatte den von Robert nur -aus der Sub rausgeholt- und nicht weiter drauf geachtet.


Option Explicit

Sub DeinButton_Klick()
Static Toggle As Boolean
If Toggle Then
    Columns("H:K").EntireColumn.Hidden = True
    Columns("L:O").EntireColumn.Hidden = False
    Toggle = False
Else
    Columns("H:K").EntireColumn.Hidden = False
    Columns("L:O").EntireColumn.Hidden = True
    Toggle = True
End If
End Sub

Gruß Gerold

Rückmeldung wäre nett.


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: koskesh
Geschrieben am: 20.08.2014 08:12:54

Funktioniert. Danke euch zwei.
Hatte es in der Zwischenzeit aber schon selber so gelöst:
Habe zusätzlich den Buttonnamen beim togglen verändert.

Vielen Dank & VG

Option Explicit


Private Sub cmdButton_Click()


    If Columns("H:K").EntireColumn.Hidden = True Then
        Columns("H:K").EntireColumn.Hidden = False
        Columns("L:O").EntireColumn.Hidden = True
        cmdButton.Caption = "Test"
    Else
        Columns("H:K").EntireColumn.Hidden = True
        Columns("L:O").EntireColumn.Hidden = False
        cmdButton.Caption = "OK"
    End If


End Sub



  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Adis
Geschrieben am: 24.08.2014 03:21:30

Hallo

If Columns("H:K").EntireColumn.Hidden = True Then

ich amüsiere mich köstlich. Vor allem über die Eigenlösungen im Forum s. oben (wollte ich gerade anbieten)
Sie stammt noch aus Excel Urzeiten, ich kenne sie aus Excel7, als es noch keine Toggel Button gab.

Gruss Adis


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Matthias L
Geschrieben am: 24.08.2014 08:34:22

Hallo

Eine If-Abfrage ist da nicht nötig
Sorge einfach dafür das Einer der beiden Bereiche bereits ausgeblendet ist
Dann kannst Du mit folgendem Code wechselseitig ein- und ausblenden.

Application.ScreenUpdating = False
Columns("H:K").EntireColumn.Hidden = Not Columns("H:K").EntireColumn.Hidden
Columns("L:O").EntireColumn.Hidden = Not Columns("H:K").EntireColumn.Hidden
Mehr brauchst Du nicht.

Gruß Matthias


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Robert
Geschrieben am: 19.08.2014 16:19:24

Hallo koskesh

Sub DeinButton_Klick()
Dim Toggle As Boolean

If Toggle Then
    Columns("H:K").EntireColumn.Hidden = True
    Columns("L:O").EntireColumn.Hidden = False
    Toggle = False
Else
    Columns("H:K").EntireColumn.Hidden = False
    Columns("L:O").EntireColumn.Hidden = True
    Toggle = True
End If
Viele Grüße
Robert


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: koskesh
Geschrieben am: 19.08.2014 16:29:08

Funktioniert nicht richtig. Das ausblenden funktioniert aber das wieder einblenden nicht.


  

Betrifft: AW: VBA Spalten ein/ausblenden per Click von: Robert
Geschrieben am: 20.08.2014 08:49:29

Die ToggleVariable muss als Static definiert werden, dann gehts.
Mein Fehler.

Viele Grüße
robert


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Spalten ein/ausblenden per Click"