298 Aufrufe
Gefragt in Tabellenkalkulation von jelena Mitglied (829 Punkte)
Bearbeitet von jelena
Hallo guten Tag, bitte um einen Excel code, spalte ausblenden wo eine Formel vorhanden aber keinen wert enthält. Mit dem nachstehenden eintrag

If Application.CountA(.Range(.Cells(11, iSpalte), .Cells(49, iSpalte))) = 0 Then

werden nur ausgeblendet die leer sind ohne Formel und nicht mit Formel ohne Wert. Danke

8 Antworten

0 Punkte
Beantwortet von xlking Experte (1.7k Punkte)

Hallo Jelena,

0 ist aber ein Wert, wenn du Spalten ausblenden willst deren Formelergebnis 0 ergibt dann so:

Einfach in das entsprechende Tabellen-Modul den folgenden Code eingeben:

Private Sub Worksheet_Calculate()
  
  Dim rng As Range, s As Range, c As Range, Wert
  
  Set rng = Intersect(Range("E:G"), Me.UsedRange)
  For Each s In rng.Columns
    Wert = False
    For Each c In s.Cells
      If Not IsError(c.Value) Then
        If c.Value <> 0 Then Wert = True
      End If
    Next c
    s.EntireColumn.Hidden = Not Wert
  Next s

End Sub

PS: Wenn mehrere Formeln untereinander stehen, wird die Spalte nur ausgeblendet wenn Alle Formeln 0 oder einen Fehler (z.B. #Div/0) ergeben.

Den Bereich E:G musst du natürlich an deine Spalten anpassen. 

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Mitglied (829 Punkte)
Bearbeitet von jelena

Hallo Mr. K. bei den vorherigen code passiert nichts, ich verwende diesen code

Public Sub SpaltenAusblenden()   'Leere Spalten verstecken
Dim iSpalte  As Integer
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets("Stahlliste")
.Columns("B:CA").EntireColumn.Hidden = False
For iSpalte = 2 To 79
If Application.CountA(.Range(.Cells(11, iSpalte), .Cells(49, iSpalte))) = 0 Then
.Columns(iSpalte).Hidden = True
End If
Next iSpalte
End With
Application.ScreenUpdating = True
End Sub

es werden aber nur Spalten ausgeblendet die leer sind und wo keine Formel enthalten ist. Spalten mit Formeln wenn auch kein Wert enthalten werden nicht ausgeblendet. Bitte um Hilfe, Danke

0 Punkte
Beantwortet von xlking Experte (1.7k Punkte)
Hi Jelena,

OK, du willst also das Ausblenden der Spalten selbst anstoßen. z.B. über einen Button oder ein Symbol. Dass mit dem von dir gezeigten Code keine Spalten mit Formeln ausgeblendet werden ist korrekt. Weil Formeln nun mal immer einen Wert zurückgeben. Es gibt keine Formel, die "keinen Wert" enthält. Daher beschreibe doch mal bitte was du mit "kein Wert" meinst.

Zeig doch bitte nochmal an einem Beispiel, wie deine Tabelle aufgebaut ist. Falls du dich auf einen alten Beitrag beziehst, kannst du auch gern einen Link zu diesem hier einstellen.

Gruß Mr. K.
0 Punkte
Beantwortet von jelena Mitglied (829 Punkte)

Hallo Mr. K. ich benutze diese Formel in der Zelle B12 =WENN(B11="";"";B11) also wenn die Zelle B12 Leer ist soll die Zelle oder Spalte ausgeblendet werden. Ja ich benutze einen Button. Danke

0 Punkte
Beantwortet von xlking Experte (1.7k Punkte)

OK, nur um das klarzustellen auch ein Nullstring "" ist ein Wert nach dem du suchen und den du zählen kannst. Ersetze mal testweise die Zeile 

If Application.CountA(.Range(.Cells(11, iSpalte), .Cells(49, iSpalte))) = 0 Then

durch

If Application.CountIf(.Range(.Cells(11, iSpalte), .Cells(49, iSpalte)), "") _
   = .Range(.Cells(11, iSpalte), .Cells(49, iSpalte)).Cells.Count Then

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Mitglied (829 Punkte)

Hallo Mr. K. danke für die schnelle Hilfe. Habe da noch einige Formeln, die berücksichtigt werden sollten =SUMME(O11;AC11;AP11;BD11;BQ11)  nächste =SUMME(BV11*$BY$9)  nächste =SUMME(Q11;AE11;AR11;BF11;BS11)  und nächste =SUMME(BY11;BZ11) nochmals Danke.

0 Punkte
Beantwortet von xlking Experte (1.7k Punkte)
Und was willst du mir damit sagen? Summen geben nun wirklich immer einen Wert zurück. Der ist entweder 0 oder kleiner oder größer als 0. Aber eben nicht leer. Damit bleiben Spalten, die diese Formeln beinhalten immer eingeblendet. Oder ist das bei dir anders?

Mr. K.
0 Punkte
Beantwortet von jelena Mitglied (829 Punkte)
Hallo Mr. K. ich habe mich wohl falsch ausgedrückt. Trotzdem vielen Dank.
...