Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

makro mit +-1% Filter

makro mit +-1% Filter
28.02.2018 12:32:47
Nik
Hallo zusammen,
ich habe folgendes Problem und konnte es auch leider nach langem Suchen nicht bewältigen.
Ich möchte einen Spaltenfilter einbauen, der mit Spalten ausblendet, wenn sie eine Vorraussetzung nicht erfüllen.
Ich habe die Ausgangszelle 10A (10/1). In diese gebe ich einen Wert ein, bsp. 45%. Nun soll das Makro in allen Spalten der Zeile 10 nachschauen, welche Spalten die Bedingung (Toleranz +-1%, also 44-46%) erfüllen, und die übrigen Spalten ausblenden. Ich hoffe das ist soweit verständlich.
Mfg Nik Las

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro mit +-1% Filter
28.02.2018 12:45:25
Rudi
Hallo,
Sub aaa()
Dim rng As Range
For Each rng In Range(Cells(10, 2), Cells(10, Columns.Count).End(xlToLeft))
Select Case rng
Case Range("a10") - 0.01 To Range("A10") + 0.01
rng.EntireColumn.Hidden = False
Case Else
rng.EntireColumn.Hidden = True
End Select
Next rng
End Sub

Gruß
Rudi
AW: makro mit +-1% Filter
28.02.2018 15:05:13
Nik
Habe es nun am laufen, besten dank nochmal!!
Etwas bearbeitet, aber sieht nun wie folgt aus:
Sub aaa()
Dim rng As Range
For Each rng In Range(Cells(10, 2), Cells(10, 478))
Select Case rng
Case Range("a10") - 0.01 To Range("A10") + 0.01
rng.EntireColumn.Hidden = False
Case Else
rng.EntireColumn.Hidden = True
End Select
Next rng
End Sub
Also nur an der Spaltenbegrenzung noch mal bearbeitet, auf meine max. begrenzt ;)
Anzeige
AW: makro mit +-1% Filter
28.02.2018 12:45:36
Rainer
Hallo Niklas,
i = 1
While Cells(10, i)  ""
If Cells(10, i)  1.01 * Cells(10, 1) Then Columns(i).Hidden = True
i = i + 1
Wend
Gruß,
Rainer
AW: makro mit +-1% Filter
28.02.2018 13:03:20
UweD
Hallo
rechtsclick auf den Tabellenblattreiter
Code anzeigen
Makro einfügen
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        If Target.Count > 1 Then
            MsgBox "Bitte nur einzeln ändern"
            Exit Sub
        End If
        Dim LC As Integer, i As Integer
        LC = Cells.SpecialCells(xlCellTypeLastCell).Column 'Letzte Spalte des gesamten Blattes 

        For i = 2 To LC
            With Cells(Target.Row, i)
                If .Value <> "" And (.Value > Target * 1.01 Or .Value < Target / 1.01) Then
                    Columns(i).Hidden = True
                Else
                    Columns(i).Hidden = False
                End If
            End With

        Next
    End If
End Sub

Bei Änderung in Spalte A läuft das makro
LG UweD
Anzeige
AW: makro mit +-1% Filter
28.02.2018 13:40:23
Daniel
Hi
ich würde das so machen:
1. füge eine Hilfsspalte ein, in welcher du per Formel alle Spalten, die ausgeblendet werden sollen mit eine Zahl (1) kennzeichnest und die die Stehen bleiben müssen mit dem Leerstring.
hierzu diese Formel in A1, dann nach rechts ziehen
=Wenn(Oder(A10
2. als Markocode reicht dann:
Cells.Entirecolumn.Hidden = False
If Worksheetfunction.Sum(rows(1)) > 0 Then rows(1).SpecialCells(xlcelltypeformulas, 1).entirecolum.Hidden = true
hat den Vorteil, dass du den Code nicht ändern musst, wenn sich die Bedingungen ändern, sondern nur die Formel.
ein weiterer Vorteil wäre, dass du das ausblenden ggf auch ohne Makro von Hand machen kannst:
- Spalte 1 markieren
- über Start - Bearbeiten - Suchen und Auswählen - Inhalte - Formeln - Zahlen die Selektion auf Zellen mit Zahl einschränken
- die Spalten der so selektierten Zellen ausblenden: Start - Zellen - Format - Spalten ausblenden
Gruß Daniel
Anzeige
AW: makro mit +-1% Filter
28.02.2018 13:52:50
Nik
Rudi's Ansatz scheint mir an passendsten, vielleicht steige ich durch die anderen beiden auch einfach nur nicht richtig durch.
Hab mal ein Beispielbild hochgeladen, welches vielleicht noch besser verdutlicht, worauf ich hinaus möchte, da das Makro bisher noch nicht läuft..
Also im bsp. habe ich den Wert 44% eingetragen. Nun nach betätigung des "Suchen"-Button sollten alle Spalten ausgeblendet werden, welche nicht 43-45% besitzen in der Zeile (auf dem Bild also alle, in weiteren Spalten kommt der Wert jedoch noch vor). Das Makro muss sich also auf die Toleranz von +-0,01 beziehen, damit es bei jedem Wert läuft..
@Daniel leider handelt es sich um mehrere hundert Spalten, deshalb wir ein ausblenden per Hand nicht benötigt
Userbild
Anzeige
AW: makro mit +-1% Filter
28.02.2018 14:02:32
Daniel
Wenn du so vorgehst wie ich es beschrieben habe, macht es keinen Unterschied, ob du viele oder wenige Spalten ausblendest.
das geht dann auch von Hand für eine Spalte genauso schnell wie für 1000 Spalten.
und auch das Makro dazu wird wesentlich einfacher, wie du an meinem Beispiel leicht nachvollziehen kannst, denn das Makro muss dann nur diese paar Klicks nachbilden und braucht keine Schleifen und eigenständigen Berechnungen.
von daher ist es auch bei Verwendung von Makros immer vorteilhaft, eine gut funktionierende "by Hand"-Methode zu kennen, denn diese lässt sich dann oft in einfache, kurze und schnelle Makros umsetzen.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige