Herbers Excel-Forum - das Archiv
Spalte ausblenden bei Bedingung
Betrifft: Spalte ausblenden bei Bedingung
von: Andrew
Geschrieben am: 12.12.2006 15:50:53
Hallo zusammen,
ich habe folgendes Problem:
in einer Excel-Tabelle möchte ich die Spalten, die in einer Zelle ein "X" aufweisen, ausblenden. Gleichzeitig möchte ich aber die Zeilen-SUmmen ausrechnen, was mit der Formel TEILERGEBNIS nicht funktioniert.
Da ich ein VBA-Anfänger bin, kann ich mir leider nicht selbst helfen
eine BeispielTabelle ist beigefügt:
https://www.herber.de/bbs/user/38913.xls
Für eure Hilfe wäre ich sehr dankbar.
Viele Grüße
Andrew
Betrifft: zu 2/2
von: Reinhard
Geschrieben am: 12.12.2006 16:50:44
Hi Andrew
Tabelle:
│ C │ D │ E │ F │ G │ H │ I │
───┼────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
3 │ Gesamt │ Objekt1 │ Objekt2 │ Objekt3 │ Objekt4 │ Objekt5 │ Objekt6 │
4 │ │ X │ X │ not_X │ X │ not_X │ not_X │
5 │ 21 │ 6 │ 1 │ 3 │ 9 │ 8 │ 1 │
6 │ 23 │ 10 │ 7 │ 4 │ 9 │ 9 │ 1 │
7 │ 25 │ 9 │ 9 │ 4 │ 6 │ 7 │ 8 │
8 │ 26 │ 10 │ 7 │ 10 │ 1 │ 6 │ 9 │
9 │ 21 │ 9 │ 3 │ 5 │ 2 │ 9 │ 5 │
10 │ 32 │ 1 │ 7 │ 6 │ 10 │ 7 │ 9 │
11 │ 26 │ 1 │ 3 │ 6 │ 8 │ 7 │ 5 │
12 │ 24 │ 10 │ 4 │ 6 │ 1 │ 10 │ 7 │
───┴────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
Benutzte Formeln:
C5 : =SUMME2(D5:I5)
C6 : =SUMME2(D6:I6)
C7 : =SUMME2(D7:I7)
C8 : =SUMME2(D8:I8)
C9 : =SUMME2(D9:I9)
C10: =SUMME2(D10:I10)
C11: =SUMME2(D11:I11)
C12: =SUMME2(D12:I12)
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Betrifft: zu 1/2
von: Reinhard
Geschrieben am: 12.12.2006 16:57:19
Hi Andrew,
Sub aus()
Dim S
For S = 4 To 256
If Cells(4, S) = "x" Or Cells(4, S) = "X" Then Columns(S).Hidden = True
Next S
End Sub
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Betrifft: AW: zu 1/2
von: Andrew
Geschrieben am: 12.12.2006 17:21:21
Hallo Reinhard,
vielen Dank für deine Hilfe.
Dein Makro funktioniert super. Jetzt habe ich leider einen Fehler gemacht. Denn die Spalte soll ausgeblendet werden, wenn sie gerade nicht gleich "x" oder "X" ist.
Daher habe ich in dem VBA-Code geschrieben <>"x". Das funktioniert aber leider nicht, da er nun alles ausblendet.
Vielleicht könntest du mich an der Stelle noch mal unterstützen.
Die Summe2-Funktion kenne ich leider nicht. Sie funktioniert nicht. Beruht das auch auf einem VBA-Code?
Viele Grüße
Andrew
Betrifft: AW: zu 1/2
von: Reinhard
Geschrieben am: 12.12.2006 17:24:38
Hi Andrew,
hatte den Code vergessen bei der Funktion :-)
Option Explicit
Sub aus()
Dim S
For S = 4 To 256
If Cells(4, S) <> "x" And Cells(4, S) <> "X" Then Columns(S).Hidden = True
Next S
End Sub
Function Summe2(Zellenbereich As Range)
Dim Z
For Each Z In Zellenbereich.Cells
If Columns(Z.Column).Hidden = False Then Summe2 = Summe2 + Z.Value
Next Z
End Function
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Betrifft: AW: zu 1/2
von: Andrew
Geschrieben am: 12.12.2006 17:35:59
Hallo Reinhard,
super, vielen Dank. Das klappt ausgezeichnet!
Viele Grüße
Andrew
Betrifft: AW: zu 1/2
von: Reinhard
Geschrieben am: 12.12.2006 17:29:26
Hi Andrew,
Korrektur, andrer Code blendet zuviele Spalten aus,also auch leere.
Option Explicit
Sub aus()
Dim S
For S = 4 To Cells(4, 256).End(xlToLeft).Column
If Cells(4, S) <> "x" And Cells(4, S) <> "X" Then Columns(S).Hidden = True
Next S
End Sub
Function Summe2(Zellenbereich As Range)
Dim Z
For Each Z In Zellenbereich.Cells
If Columns(Z.Column).Hidden = False Then Summe2 = Summe2 + Z.Value
Next Z
End Function
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Betrifft: Vielen Dank, läuft alles spitze!
von: Andrew
Geschrieben am: 12.12.2006 17:47:09
Hallo Reinhard,
Spitze, jetzt läuft alles super.
Ich danke dir ganz herzlich für deine Hilfe.
Viele Grüße
Andrew