Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Drehfeld mit Makro

Drehfeld mit Makro
04.03.2014 08:16:22
Jochen
Hallo Excel-Freunde, ich brauch mal wieder Eure Hilfe.
In einer Tabelle sind eine Reihe von Spalten die immer mal wieder ein/ bzw. ausgeblendet werden sollen. Nun habe ich mir Kontrollkästen mit dem dazu passendem Code erstellt, funktioniert auch sehr gut. Da das aber 30 Stück sind und sehr unübersichtlich ist nun meine Frage: Kann das nicht mit einem anderen Werkzeug z. B. mit einem Drehfeld klappen so das ich nur eine Schaltfläche habe. Ich hoffe das irgend jemand eine Lösung für mich hat.
Danke im Voraus
Gruß
Jochen

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Drehfeld mit Makro
04.03.2014 08:31:30
Beverly
Hi Jochen,
erstelle ein Drehfeld aus den ActiveX-Steuerelementen und gib unter den Eigenschaften als Minimum deine erste aus-/einzublendende Spaltennummer und als Maximum deine letzte and. Mit folgendem Code kannst du die Spalten dann sukzessive aus- bzw. einblenden:
Private Sub SpinButton1_SpinDown()
Columns(SpinButton1).Hidden = False
End Sub
Private Sub SpinButton1_SpinUp()
Columns(SpinButton1).Hidden = True
End Sub


Anzeige
AW: Drehfeld mit Makro
04.03.2014 09:57:16
Jochen
Hallo Karin, danke erst einmal für die schelle Antwort. Ich habe mal eine Test-Tabelle erstellt aber wenn ich das Makro so übernehme, den MAX –Wert auf 50 und den MIN – Wert auf 10 setzte und dann betätige werden die Spalten auch ausgeblendet. Beim wieder einblenden bleibt die 50. Spalte immer ausgeblendet. Wenn ich dann mal mittendrinn wieder Spalten einblende bleibt wieder eine Spalte verschwunden. Um alle Spalten ( bis auf die 50. ) wieder zuhaben muss ich alle ausblenden und dann wieder einblenden. Mach ich irgend wo einen Fehler?
https://www.herber.de/bbs/user/89523.xlsm
Gruß
Jochen

Anzeige
AW: Drehfeld mit Makro
04.03.2014 11:51:22
Beverly
Hi Jochen,
versuche es mit diesem Code:
Private Sub SpinButton1_SpinUp()
Dim intSpalten As Integer
intSpalten = 52 - Range("I1:AY1").SpecialCells(xlCellTypeVisible).Count
If intSpalten > 49 Then
SpinButton1 = 50
Else
Range(Cells(1, 10), Cells(1, intSpalten + 1)).EntireColumn.Hidden = True
End If
End Sub
Private Sub SpinButton1_SpinDown()
Dim intSpalten As Integer
intSpalten = Range("I1:AY1").SpecialCells(xlCellTypeVisible).Count
If intSpalten = 43 Then SpinButton1 = 10
Range(Cells(1, 52 - intSpalten), Cells(1, 50)).EntireColumn.Hidden = False
End Sub


Anzeige
AW: Drehfeld mit Makro
04.03.2014 12:40:23
Jochen
Hallo Karin, das ist Spitze nur jetzt hätte noch gerne das die Spalten, von hinten angefangen, ausgeblendet werden. Da ich nicht gut in VBA bin könntest Du noch eine kurze Erläuterung geben an welcher Stelle was gemeint ist bestimmt auch hilfreich für andere die das nutzen wollen.
Noch mal DANKE
Jochen

Anzeige
AW: Drehfeld mit Makro
04.03.2014 14:40:19
Beverly
Hi Jochen,
Private Sub SpinButton2_SpinDown()
Dim intSpalten As Integer
' Anzahl der sichtbaren Spalten ermitteln
intSpalten = Range("I1:AY1").SpecialCells(xlCellTypeVisible).Count
' damit Spinbutton nur bis 1 laufen kann
If intSpalten = 42 Then
SpinButton2 = 40
End If
' Spalten einblenden
Range(Cells(1, 10), Cells(1, 8 + intSpalten)).EntireColumn.Hidden = False
End Sub
Es muss die Anzahl an sichtbaren Spalten zwischen I und AX ermittelt werden - also jeweils links und rechts des Bereichs 1 Spalte mehr, da es sonst zu einem Fehler kommt, wenn alle Spalten von J bis AX ausgeblendet sind.
Dem SpinButton muss kein Min und Max zugewiesen werden.


Anzeige
AW: Drehfeld mit Makro
04.03.2014 15:13:36
Jochen
Hallo Karin,
danke für die schnelle Hilfe, hast mir sehr geholfen.
Bis bald
gruß
Jochen
;
Anzeige
Anzeige

Infobox / Tutorial

Drehfeld in Excel erstellen und programmieren


Schritt-für-Schritt-Anleitung

  1. Drehfeld erstellen:

    • Gehe zu Entwicklertools > Einfügen.
    • Wähle das SpinButton (Drehfeld) aus den ActiveX-Steuerelementen aus und platziere es auf deinem Arbeitsblatt.
  2. Drehfeld konfigurieren:

    • Klicke mit der rechten Maustaste auf das Drehfeld und wähle Eigenschaften.
    • Setze den Minimum-Wert auf die erste Spaltennummer, die du ein- oder ausblenden möchtest.
    • Setze den Maximum-Wert auf die letzte Spaltennummer.
  3. Makro programmieren:

    • Öffne den VBA-Editor mit ALT + F11.
    • Füge den folgenden Code in das entsprechende Modul ein:
      
      Private Sub SpinButton1_SpinDown()
      Columns(SpinButton1).Hidden = False
      End Sub

    Private Sub SpinButton1_SpinUp() Columns(SpinButton1).Hidden = True End Sub


Häufige Fehler und Lösungen

  • Problem: Beim Einblenden bleibt eine Spalte ausgeblendet.

    • Lösung: Stelle sicher, dass der Code zur Ermittlung der sichtbaren Spalten korrekt ist. Verwende diesen Code:
      Dim intSpalten As Integer
      intSpalten = Range("I1:AY1").SpecialCells(xlCellTypeVisible).Count
  • Problem: Drehfeld funktioniert nicht wie erwartet.

    • Lösung: Überprüfe, ob das Drehfeld korrekt mit den Spalten verknüpft ist und ob die Maximal- und Minimalwerte korrekt gesetzt sind.

Alternative Methoden

Falls du kein Drehfeld verwenden möchtest, kannst du auch:

  • Kontrollkästchen nutzen: Diese können eine ähnliche Funktionalität bieten, erfordern jedoch mehr Platz auf dem Arbeitsblatt.
  • Dropdown-Listen erstellen: Diese sind ebenfalls intuitiv, benötigen jedoch zusätzliche Schritte zur Programmierung des Ein- und Ausblendens.

Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Drehfeld in Excel:

  1. Erstelle ein Drehfeld für die Spalten 10 bis 50.
  2. Programmiere das Einblenden der Spalten wie folgt:

    Private Sub SpinButton1_SpinUp()
        Columns(SpinButton1).Hidden = True
    End Sub
    
    Private Sub SpinButton1_SpinDown()
        Columns(SpinButton1).Hidden = False
    End Sub
  3. Überprüfe, ob die Spalten korrekt ein- und ausgeblendet werden, indem du unterschiedliche Werte im Drehfeld ausprobierst.

Tipps für Profis

  • VBA-Optimierung: Wenn du häufig zwischen vielen Spalten umschaltest, kannst du die Performance verbessern, indem du das Application.ScreenUpdating-Feature verwendest:
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler gracefully zu handhaben. Beispielsweise:
    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich das Drehfeld anpassen, um mehr Spalten zu verwalten?
Du kannst die Minimum- und Maximum-Werte in den Eigenschaften des Drehfeldes anpassen, um mehr Spalten zu verwalten.

2. Funktioniert das Drehfeld in allen Excel-Versionen?
Ja, das Konzept des Drehfeldes ist in den meisten modernen Excel-Versionen verfügbar, jedoch können spezifische Funktionen je nach Version variieren.

3. Kann ich das Drehfeld auch für andere Daten verwenden?
Ja, das Drehfeld kann auch für andere Daten, wie Zeilen oder benutzerdefinierte Bereiche, verwendet werden, indem du die entsprechenden Anpassungen im Code vornimmst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige