expertenaustausch > microsoft.* > microsoft.excel

nis.lehmann (19.04.2017, 14:59)
Hallo Zusammen,

ich bin auf der Suche nach einer Lösung für folgendes Problem:

Ich wähle auf "Tabellenblatt 1" eine Zahl Zwischen 1 und 5 aus. Je Zahl gibt es auf "Tabellenblatt 2" 3 Spalten, in welcher diese Zahl jeweils inder ersten Zelle steht. Der Übersicht halber möchte ich, dass auf "Tabellenblatt 2" alle Spalten, außer die Spalten 1-3 (Bezeichnungen,Einheiten etc.) ausgeblendet werden, außer die 3 Spalten, welche die auf "Tabellenblatt 1" ausgewählte Zahl in der ersten Zeile haben.

Habt ihr eine Idee wie man sowas lösen kann?

Vielen Dank für eure Hilfe. Ich hoffe ihr hattet ein angenehmes Osterwochenende!

Beste Grüße,
Hannes N.
Claus Busch (19.04.2017, 15:20)
Hallo Hannes,

Am Wed, 19 Apr 2017 05:59:46 -0700 (PDT) schrieb nis.lehmann:

> Ich wähle auf "Tabellenblatt 1" eine Zahl Zwischen 1 und 5 aus. Je Zahl gibt es auf "Tabellenblatt 2" 3 Spalten, in welcher diese Zahl jeweils in der ersten Zelle steht. Der Übersicht halber möchte ich, dass auf "Tabellenblatt 2" alle Spalten, außer die Spalten 1-3 (Bezeichnungen,Einheiten etc.) ausgeblendet werden, außer die 3 Spalten, welche die auf "Tabellenblatt 1" ausgewählte Zahl in der ersten Zeile haben.


auf Tabellenblatt1 in A1 ist eine Datengültigkeit mit einer Liste von 1
bis 5.
Dann im Codemodul von Tabellenblatt1:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub

Dim LCol As Long, i As Long

With Sheets("Tabelle2")
LCol = .Cells(1, Columns.Count).End(xlToLeft).Column
For i = LCol To 4 Step -1
.Columns(i).Hidden = .Cells(1, i) <> Target
Next
End With
End Sub

Mit freundlichen Grüßen
Claus
Claus Busch (19.04.2017, 16:05)
Hallo Hannes,

Am Wed, 19 Apr 2017 15:20:00 +0200 schrieb Claus Busch:

> Private Sub Worksheet_Change(ByVal Target As Range)
> If Target.Address(0, 0) <> "A1" Then Exit Sub


besser du schreibst deinen Bereich fest im Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub

Dim rngC As Range

With Sheets("Tabelle2")
For Each rngC In .Range("D1:AB1")
rngC.EntireColumn.Hidden = rngC <> Target
Next
End With
End Sub

Mit freundlichen Grüßen
Claus
nis.lehmann (20.04.2017, 13:22)
Hallo Claus,

zunächst einmal vielen Dank dafür, dass du dir die Zeit nimmst, mir zu helfen!

Deinen Folgenden Code habe ich nun in Modeul des Arbeitsblatts gelegt, in welchem auf der Zelle A1 die Zahlen 1-6 stehen. (Sorry, sind 6 und nicht 5)

Muss dann der folgende Teil With Sheets("Tabelle2") oder With Sheets("Ausgabeseite") heißen? Ursprünglich ist die Ausgabeseite die Tabelle 2..

Leider tut sich bei beiden Varianten noch nichts. Muss ich das Makro irgendwie noch aktivieren oder sowas? Sorry, bin absoluter Anfänger was VBA angeht. Allerdings scheint dieses Problem nicht mit Formeln lösbar zu sein.

Ich weiß deine Hilfe sehr zu schätzen!

Vielen Dank & Beste Grüße aus dem Norden,

Hannes.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub

Dim LCol As Long, i As Long

With Sheets("Tabelle2")
LCol = .Cells(1, Columns.Count).End(xlToLeft).Column
For i = LCol To 4 Step -1
.Columns(i).Hidden = .Cells(1, i) <> Target
Next
End With
End Sub
Claus Busch (20.04.2017, 14:41)
Hallo Hannes,

Am Thu, 20 Apr 2017 04:22:28 -0700 (PDT) schrieb nis.lehmann:

> Deinen Folgenden Code habe ich nun in Modeul des Arbeitsblatts gelegt, in welchem auf der Zelle A1 die Zahlen 1-6 stehen. (Sorry, sind 6 und nicht 5)
> Muss dann der folgende Teil With Sheets("Tabelle2") oder With Sheets("Ausgabeseite") heißen? Ursprünglich ist die Ausgabeseite die Tabelle 2.
> Leider tut sich bei beiden Varianten noch nichts. Muss ich das Makro irgendwie noch aktivieren oder sowas? Sorry, bin absoluter Anfänger was VBA angeht. Allerdings scheint dieses Problem nicht mit Formeln lösbar zu sein.


nimm besser das Makro aus der anderen Antwort. Dieses hier ist nicht
immer zuverlässig.
Klicke rechts auf den Reiter der Blattes mit den Zahlen => Code anzeigen
und füge den Code dann in dieses Codefenster ein.
In der With-Anweisung muss dann der Name des Blattes stehen, in dem die
Spalten ausgeblendet werden sollen.

Mit freundlichen Grüßen
Claus
nis.lehmann (20.04.2017, 15:08)
Hi Claus,

so habe ich es eigentlich gemacht. Der Code steht im Richtigen Fenster.

Leider funktionieren bei mir beide Codes nicht. Irgendetwas scheine ich falsch zu machen...

Funktioniert es bei dir?

Beste Grüße,
Hannes
Claus Busch (20.04.2017, 15:44)
Hallo Hannes,

Am Thu, 20 Apr 2017 06:08:28 -0700 (PDT) schrieb nis.lehmann:

> so habe ich es eigentlich gemacht. Der Code steht im Richtigen Fenster.
> Leider funktionieren bei mir beide Codes nicht. Irgendetwas scheine ich falsch zu machen...


bei mir funktioniert es. Ich schreibe hier nur getestete Antworten ein.
Sehr wahrscheinlich ist dann dein Tabellenlayout nicht so wie
beschrieben. Stelle mal deine Mappe zur Verfügung, damit ich sehen kann
wo der Fehler liegt.

Mit freundlichen Grüßen
Claus
nis.lehmann (20.04.2017, 16:09)
Hallo Claus,

da es sich um eine Datei mit vertraulichen Informationen handelt, kann ich leider nicht das Original hochladen.

Ich habe eine neue Datei erstellt, die dem Original vom Format fast 1:1 ähnelt. In der Datei habe ich nochmal alles erklärt. Der Code sollteauch schon im Modul liegen. Vielleicht findest du ja den Fehler :)



Ich hoffe der Download klappt.

Du hast es von mir schon gehört und vermutlich auch von X anderen Usern, welchen du geholfen hast: Trotzdem möchte ich dir nochmals meinen größten Dank für die Zeit, welche du hier investierst, um anderen zu helfen, aussprechen!

Beste Grüße aus dem Norden,
Hannes
Claus Busch (20.04.2017, 16:17)
Hallo Hannes,

Am Thu, 20 Apr 2017 07:09:23 -0700 (PDT) schrieb nis.lehmann:

> Ich habe eine neue Datei erstellt, die dem Original vom Format fast 1:1 ähnelt. In der Datei habe ich nochmal alles erklärt. Der Code sollte auch schon im Modul liegen. Vielleicht findest du ja den Fehler :)
>


das ist keine Excel-Datei sondern eine ISO-Datei.
Schicke mir die Excel-Datei an
claus_busch(at)t-online.de

Mit freundlichen Grüßen
Claus
nis.lehmann (21.04.2017, 08:28)
Guten Morgen Claus,

habe die Datei gemailed. :)

Beste Grüße,
Hannes
Ähnliche Themen