Collapse column

Autor Thema: Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)  (Gelesen 4052 mal)

Offline stormsh

  • Newbie
  • *
  • Beiträge: 23
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« am: Februar 26, 2016, 23:04:03 Nachmittag »
Hallo zusammen,
folgendes: Zur Berechnung von Arbeitsstunden habe ich von einem Kollegen eine Exceltabelle bekommen. Diese tut soweit ihren Dienst. Ich habe die auch schon mit Hilfe dieses Forums erweitert. Nun komme ich nicht weiter.
Mein Kollege hat einen Button erstellt um einige Zeilen und Spalten auszublenden. Nachdem ich nun einige Bereiche umsortiert habe möchte ich keine Reihen oder Spalten sondern einen Bereich ausblenden. Hier die beiden VBA Script Teile die zz das Ein und Ausblenden übernehmen.

Dieser Erste teil wird beim erstellen einer neuen Mappe genutzt.
For i = 2009 To Jahr - 1
        Worksheets("Plan " & i).Visible = False
        Worksheets("Plan " & i).Rows("27:37").EntireRow.Hidden = True
    Next i
    Worksheets("Plan " & Jahr).Rows("27:37").EntireRow.Hidden = True

Der Zweite Teil ist dann glaub ich die "Logik" hinter dem Button.
Sub Schaltfläche_Klicken()
    Application.ScreenUpdating = False
    If Rows("27:37").EntireRow.Hidden = True Then
        Rows("27:37").EntireRow.Hidden = False
    Else
        Rows("27:37").EntireRow.Hidden = True
    End If
   
    Application.ScreenUpdating = True
End Sub

Als Range habe ich folgendes geschrieben. Teil eins (wie oben):
For i = 2009 To Jahr - 1
        Worksheets("Plan " & i).Visible = False
        Worksheets("Plan " & i).Range("B19:Q30").Hidden = True
    Next i
    Worksheets("Plan " & Jahr).Range("B19:Q30").Hidden = True

Und Teil zwei:
Sub Schaltfläche_Klicken()
    Application.ScreenUpdating = False
    If Range("B19:Q30").Hidden = True Then
        Range("B19:Q30").Hidden = False
    Else
        Range("B19:Q30").Hidden = True
    End If
   
    Application.ScreenUpdating = True
End Sub

Ich bekomme dann die Fehlermeldung:
Zitat
hidden-eigenschaft des range-objektes kann nicht festgelegt werden
Mit dem Hinweis auf diese Zeile:
Worksheets("Plan " & i).Range("B19:Q30").Hidden = True
Wie muss ich die Syntax ändern, damit der Bereich, das Array wie auch immer man es nennen will, zwischen B19 und Q30 auf Button-Klick ein und ausgeblendet wird?
Wie gesagt, mit Rows und Columns funktioniert das alles wunderbar, nur den Bereich auszublenden bekomme ich nicht hin.
Der Bereich ist leer. Kein Zelleninhalt, alles ausgeklappt, keine Kommentare.

Thx 4 F1.

st.


Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #1 am: Februar 27, 2016, 12:45:11 Nachmittag »
Moin,

irgendwie ist das ohne die Datei und den entsprechenden Aufruf nur "Kuddelmuddel"  ;).
Es ist durchaus denkbar, dass du statt der Hidden - Eigenschaft die Visible-Eigenschaft verwenden musst. Aber mir sind da noch so einige andere Sachen "spanisch" vorgekommen ...

Wegendes derzeit grassierenden Locky-Trojaners öffne ich aus fremden Quellen nur noch *.xlsx-Dateien, also garantiert oh VBA drin. Wenn du möchtest, kannst du die einzelnen Module exportieren (siehe hier) und die Musterdatei als *.xlsx speichern. Dann ist gewährleistet, dass ich "sauber" bleibe und dennoch sinnvoll helfen kann.
Gruß
Günther

Offline stormsh

  • Newbie
  • *
  • Beiträge: 23
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #2 am: Februar 28, 2016, 18:59:15 Nachmittag »
@gmg-cc: Danke für die Antwort und den Link. Habe alles so gemacht wie beschrieben. Hier die Dateien und ein Screenshot um zu zeigen, welcher Bereich Ein und Ausgeblendet werden soll. Leider darf man keine .bas oder .cls dateien anhängen, deshalb die drei module in einer txt Datei. Hoffe das klappt trotzdem.

Danke. Thx 4 F1.

st.


Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #3 am: Februar 28, 2016, 21:58:50 Nachmittag »
Also, jetzt glaube ich zu verstehen, was du meinst.
Und: Ich habe die Anleitung in meinem Blog dahingehend geändert, dass du einfach die Dateien umbenennst und ein ".txt" (ohne Anführungszeichen) dahinter hängst.
Zurück zum Kern der Sache: Du willst nicht eine ganze Zeile oder Spalte ausblenden sondern eben nur diesen definierten Bereich.Richtig?

Erst einmal: IMHO geht so etwas nicht, zumindest nicht direkt.
Und dann: Wenn dort keine Werte, Formeln oder was auch immer drin sind, was soll das denn bezwecken bzw. bewirken? - Inhalte unsichtbar machen wäre ken Problem, aber sonst bleibe dir nur das löschen und wieder einfügen der Zellen des bewussten Bereichs.
Gruß
Günther

Offline stormsh

  • Newbie
  • *
  • Beiträge: 23
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #4 am: Februar 29, 2016, 17:13:19 Nachmittag »
@gmg-cc:
Zitat
Und: Ich habe die Anleitung in meinem Blog dahingehend geändert, dass du einfach die Dateien umbenennst und ein ".txt" (ohne Anführungszeichen) dahinter hängst.
Ich helfe immer gern ;). Ich habe alles in eine TXT gepackt, weil ich sonst 5 Dateien gehabt hätte und das Bild nicht mehr hätte Anfügen können (man darf nur 4).

Zitat
Du willst nicht eine ganze Zeile oder Spalte ausblenden sondern eben nur diesen definierten Bereich.Richtig?
Richtig!

Zitat
IMHO geht so etwas nicht, zumindest nicht direkt.
Schade.

Der Bereich soll aber nicht leer Bleiben. Ich trage dort die Daten von Lehrgängen etc ein, um nicht zu vergessen, wann die statt fanden. Die haben aber keine abrechnungstechnische Relevanz, daher wollte ich die nicht ganze Zeit eingeblendet haben. Es sollte der Übersichtlichkeit der Tabelle dienen, die ja doch recht umfangreich ist (für meine Verhältnisse) und zum anderen wollte ich dabei was lernen. Und damit ich beim lernen nix kaputt mache, habe ich einen leeren Bereich gewählt in einer leeren neuen Kopie der Arbeitsmappe.
Aber wenn das nicht mit der richtigen Syntax getan ist, dann Blende ich halt weiterhin ganze Zeilen und Spalten aus, das hab ich ja schon hin bekommen.

Wenn ich vor einem solchen "Problem" stehe, denk ich mir meistens: Excel gibt es schon so lange, ich kann nicht der Einzige sein, der sowas schon mal machen wollte. Anscheinend doch... Egal, trotzdem Danke für deine Mühe.
« Letzte Änderung: Februar 29, 2016, 17:15:05 Nachmittag von stormsh »

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #5 am: Februar 29, 2016, 17:24:11 Nachmittag »
Aha,

das sieht ja schon ganz anders aus. Ich meine das Ziel.
Mache von hand einmal folgendes: Markiere den Bereich und vergebe dann das benutzerdefinierte Zahlenformat ;;; (also 3 Semikola). Gut so? Das lässst sich ganz easy mit dem makrorecorder aufzeichen, und da es immer dr gleiche Bereich ist, kannst du es auch so verwenden. Und wieder sichtbar machst du es mit dem Zahlenformat Standard.

Ich hoffe, dass das in deine Wunschrichtung geht.
Gruß
Günther

Offline stormsh

  • Newbie
  • *
  • Beiträge: 23
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #6 am: Februar 29, 2016, 19:34:56 Nachmittag »
Ja, geile scheisse. Danke.
Da bin ich ja schon fast wo ich hin möchte. Funktioniert zwar nicht so wie ich dachte, dass es das würde, aber erfüllt genau seinen Zweck.  ;)
Eine Kleinigkeit noch. Ich habe den code mit dem Button verwurstet, welcher folgendermaßen aus sieht:
Sub Schaltfläche_Klicken()
    Application.ScreenUpdating = False
    If Range("B19:Q30").NumberFormat = "General" Then
        Range("B19:Q30").NumberFormat = ";;;"
    Else
        Range("B19:Q30").NumberFormat = "General"
    End If
   
    Application.ScreenUpdating = True

Ein Klick auf den Button lässt Text verschwinden und wieder auftauchen. Wenn ich ein Datum eintrage, macht der aus dem 29.01.2016  erst die Ganzzahl 42389 und erst dann blendet er aus. Er braucht also dann drei Klicks um alles auszublenden. Wie kann ich das Datumsformat leserlich halten? Und damit verhindern, dass ein Teil der mit dem Button ausgeblendet wird zu sehen ist, und der andere nicht und umgekehrt (es sollen ja alle Bereiche gleichzeitig zu sehen sein, oder eben nicht).

Danke :D

st.

Offline gmg-cc

  • Hero Member
  • *****
  • Beiträge: 1.321
    • Profil anzeigen
    • Meine Webseite
  • Office-KnowHow: Fortgeschritten
  • VBA-KnowHow- : Gut
  • Version [Office] : Office 2016
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #7 am: Februar 29, 2016, 20:56:38 Nachmittag »
Da fehlt ja nicht viel ...

Else
   Range("B19:Q30").NumberFormat = "General"
    Range("B22").NumberFormat = "dd/mm/yyyy" 'Die Zelle mit dem Datum
End If
Gruß
Günther

Offline stormsh

  • Newbie
  • *
  • Beiträge: 23
    • Profil anzeigen
  • Office-KnowHow: Amateur
  • VBA-KnowHow- : Ohne
  • Version [Office] : Office 2010
Antw:Office 2010: Bereich mit Button ein oder Ausblenden (Macro VBA Script)
« Antwort #8 am: März 01, 2016, 17:13:04 Nachmittag »
Hm, das hätte ich mir ja fast denken können. Da fehlt mir aber noch etwas die Routine.

Vielen Dank. :D

Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden und Dein Anliegen in Auftrag geben.
>>> Schnell und einfach ein unverbindliches Angebot anfordern. Per E-Mail an anfrage@excel-inside.de oder per Online-Formular
<<<

!!! Wichtige Information
!!! Dieses Forum steht aus technischen Gründen ab dem 11. September 2019 nur noch im Lesemodus zur Verfügung.
Das NEUE Office-Fragen-Forum kannst du aber unter der gewohnten Domain https://office-fragen.de wie gewohnt nutzen.

- Wir freuen uns auf deinen Besuch im neuen Forum.