Frage von patrickR23, 66

Excel - Spalten via Schaltfläche ein- bzw. ausblenden?

Hallo zusammen,

ich beziehe Daten über eine externe Datenquelle (DB Verbindung).

Diese ist so aufgebaut, dass Spalte A eine deutsche Überschrift hat, Spalte B eine englische, Spalte C wieder deutsch, Spalte D englisch, usw...

Sprich in Spalte A steht Nummer und Spalte B number, Spalte C Menge, Spalte D amount, etc...

Nun würde ich gerne über eine Schaltfläche (z. B. Radiobox, o. ä), in der die Sprache angewählt werden kann.

Wenn Deutsch angewählt ist, dann sollten nur die Spalten A, C, etc... eingeblendet werden. Bei Englisch dann nur die Spalten B, D, etc...

Jemand eine Idee dazu?

Danke

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von augsburgchris, 28
Sub marine()
For x = 1 To 8
If x Mod 2 = 1 Then
    Columns(x).Hidden = True
Else 
    Columns(x).Hidden = False
End If
Next x
End Sub

Musst du halt noch anpassen.

x Mod 2 = 1 Blendet alle ungeraden Spalten aus

x Mod 2 = 0 Blendet alle geraden aus

1 to 8 Sind die Spalten auf die es angewendet wird.

Kommentar von patrickR23 ,

Hallo,
wunderbar, das ist schon mal gut.
Nur jetzt hab ich noch folgendes. Bei einem klick auf "Deutsch" werden mir nur die "deutschen" Spalten eingeblendet -> wunderbar!
Allerdings wenn ich dann auf "Englisch" klicke, wird auf Basis der deutschen Ergebnisse gefiltert.
Hast Du dazu noch eine Idee?

Kommentar von augsburgchris ,

Pack noch ein Columns("A:Z").Hidden = False vor beide Makros oder wie weit du es halt brauchst. Damit blendsest du erst mal alle Spalten wieder ein und dann einzeln wieder aus.

Ein Application.Screenupdating = False spart dir außerdem das geflackere.

Wichtig am Ende mit Application.Screenupdatig = True wieder einschalten sonst hängt dir die ganze Zeit die Anzeige.

Kommentar von patrickR23 ,

Hallo - super - klappt sehr gut. Dankeschön!

Kommentar von Oubyi ,

DH!

P.S.:Sub marine()
gefällt mir.

Kommentar von augsburgchris ,

So heißt bei mir fast jedes Makro. Alter Beatlesfan *ggg*

Antwort
von ClausO, 41

Bei Excel gibt es die wunderbare Möglichkeit Makros aufzunehmen. Das schreibt dir den Code von dem was du machst.

Kommentar von augsburgchris ,

Aber sicher nicht wenn man den Code, wie hier offensichtlich verlangt halbwegs flexibel gestalten muss.

Kommentar von ClausO ,

den musst du dann anpassen.

Kommentar von augsburgchris ,

Da hast du ihn aber leichter selbst geschrieben. Diese Aufgaben Stellung ist definitiv nicht mit dem Rekorder lösbar. Vor allem weil es eh nur 5 Zeilen Code sind.

Kommentar von Iamiam ,

Funktionen oder Schleifen kann der Recorder nicht aufnehmen, nur ihre Ergebnisse bzw die Eingaben, die wir im Kopf draus ausrechnen.

Ausserdem schreibt der Recorder so viel unnötiges Zeug auf: das kann man zwar zum Lernen brauchen (und staunen, wieviele Eigenschaften ein xl-Objekt so hat, aber da das Notwendige rauszufiltern, erfordert einige Kenntnisse!)

Wie gesagt, zum Lernen und Verstehen von xl sehr gut, aber praktisch nur für einfache Anweisungen nutzbar (und zum Feststellen einer Syntax)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten