Excel Selektion

Ich brauch mal wieder Hilfe =)

Ich habe eine riesige Datei mit vielen Daten und möchte gerne einige Selektieren.
Und zwar möchte ich gerne zb. nur die „Neukunden“ oder nur die „Privatkunden“ auswerfen lassen. gekennzeichnet ist das in der Liste jeweils immer mit einem x in der jeweiligen Spalte.

zb:

…Firma / Privat // Neu / Konvertiert // …
1…x…x
2…x…x
3…x…x

u.s.w.

Ich will also quasi das es mir dann nur die Privatkunden und nicht die Firmenkunden anzeigt. Was genau muss ich dazu eingeben bzw. wie muss ich die Tabelle formatieren?
Es wäre immer nur eine Selektion, nicht mehrere auf einmal.
Ich hab damit leider noch überhaupt keine Erfahrung.

Hallo Steffi,

da passt der Autofilter ganz gut.
Markiere die oberste Zeile (Überschriften).
dann geh auf Daten/Autofilter und schalte den an.
Anschließend siehst Du zu jeder Überschrift einen Dropdown-Button.
Dort kannst Du nun das „x“ auswählen und es werden nur die Zeilen angezeigt, die in der Spalte ein „x“ haben.

Rückgängig mit „Alle anzeigen“.

Du kannst auch nacheinandere mehrere Auswählen, d.h. es werden nur die angezeigt, die in der 1., 2. usw. Spalte den Auswahlbegriff haben.
Viel Erfolg
Ullrich Sander

perfekt … vielen dank =) genau das hab ich gesucht. klappt super

Excel Selektion Teil 2
Habe ich zusätzlich nach dem Selektieren die möglichkeit dass es mir dann bei gewissen Kriterien auch nur gewisse Spalten anzeigt? Ich brauch nämlich nicht bei allen Selektionen die gleichen Daten.

Hallo Steffi,
dann geht es m. E. nur mit vba. Habe da 2 Makros im Einsatz zum Aus- und Einblenden:

Option Explicit
Dim AR As Long: Dim AC As Long 'activecell.row + .column
Dim LR As Long: Dim LC As Long 'ActiveCell.SpecialCells(xlLastCell).Row+ .column
Dim R1 As Integer: Dim C1 As Integer ‚1.DatenZeile und -Spalte
Dim R0 As Integer: Dim i As Long ’ R0=Zeile mit AusBlendMarkierungen‘
Dim Modus As Boolean
Dim bolSperre As Variant

Sub selektiv_ausblenden()
'Call GetMoreSpeed(True)
r1=9’Überschriften NUR OBERHALB Zeile 9!!!
c1=4 'Steuerungs-Spalten NUR VOR Spalte 4!!!
R0 = 7
’ Markierung in Zeile 7 --> Spalte nicht ausblenden, ggf. anpassen
C0=2
’ Markierung in Spalte 2 --> Zeile nicht ausblenden, ggf. anpassen

LC = ActiveCell.SpecialCells(xlLastCell).Column
For i = C1 To LC
If Cells(R0, i) = „“ Then
Columns(i).EntireColumn.Hidden = True
End If
Next i
For i = R1 To LR
If Cells(C0, i) = „“ Then
Columns(i).EntireRow.Hidden = True
End If
Next i
'Call GetMoreSpeed(False)
End Sub

Sub alle_ein()
’ Alle ausgeblendeten Spalten und Zeilen werden eingeblendet,
’ alle Filter zurückgesetzt
'Call GetMoreSpeed(True)
Cells.EntireColumn.Hidden = False: Cells.EntireRow.Hidden = False
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
'Call GetMoreSpeed(False)
End Sub

Und zum Beschleunigen des Ablauf dieses Makro, welches ich von Reinhard erhalten habe:

Public Static Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
Dim intCalculation As Integer, bolSperre As Boolean
If Modus = True Then
intCalculation = Application.Calculation
bolSperre = ActiveSheet.ProtectContents
ActiveSheet.Unprotect
Else
If bolSperre = True Then ActiveSheet.Protect
End If
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, xlWait, xlDefault)
End With
End Sub

Letzteres sollte dann vielleicht oben im Modul eingefügt werden.

Kommt so etwas für Dich in Frage?

Freundliche Grüße
Thomas

wow das muss ich mir nochmal in ruhe ansehen, mit makros hab ich keinerlei erfahrung. Aber danke schon mal vorab :smile:

da werd ich mich am Wochenende mal spielen.

Korrektur
Sorry, beim ungetestet Ändern hat sich doch der eine und andere Fehler eingeschlichen.
So geht´s besser:

Option Explicit
Dim AR As Long: Dim AC As Long 'activecell.row + .column
Dim LR As Long: Dim LC As Long ‚ActiveCell.SpecialCells(xlLastCell).Row+ .column
Dim R1 As Integer: Dim C1 As Integer ‚1.DatenZeile und -Spalte
Dim R0 As Integer: Dim i As Long ’ R0=Zeile mit AusBlendMarkierungen‘
Dim C0 As Integer: ’ C0=Zeile mit AusBlendMarkierungen‘
Dim Modus As Boolean
Dim bolSperre As Variant
Public Static Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
Dim intCalculation As Integer, bolSperre As Boolean
If Modus = True Then
intCalculation = Application.Calculation
bolSperre = ActiveSheet.ProtectContents
ActiveSheet.Unprotect
Else
If bolSperre = True Then ActiveSheet.Protect
End If
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, xlWait, xlDefault)
End With
End Sub
Sub selektiv_ausblenden()
Call GetMoreSpeed(True)
R1 = 9 'Überschriften NUR OBERHALB Zeile 9!!!
C1 = 4 'Steuerungs-Spalten NUR VOR Spalte 4!!!
R0 = 7
’ Markierung in Zeile 7 --> Spalte nicht ausblenden, ggf. anpassen
C0 = 2
’ Markierung in Spalte 2 --> Zeile nicht ausblenden, ggf. anpassen

LC = ActiveCell.SpecialCells(xlLastCell).Column
For i = C1 To LC
If Cells(R0, i) = „“ Then
Columns(i).EntireColumn.Hidden = True
End If
Next i
LR = ActiveCell.SpecialCells(xlLastCell).Row
For i = R1 To LR
If Cells(i, C0) = „“ Then
Rows(i).EntireRow.Hidden = True
End If
Next i
Call GetMoreSpeed(False)
End Sub

Sub alle_ein()
’ Alle ausgeblendeten Spalten und Zeilen werden eingeblendet,
’ alle Filter zurückgesetzt
Call GetMoreSpeed(True)
Cells.EntireColumn.Hidden = False: Cells.EntireRow.Hidden = False
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Call GetMoreSpeed(False)
End Sub

Hallo Steffi,
nimm bitte dann die korrigierte Version ( Ich hoffe, Du hast die Benachrichtigung bei direkten Antworten aktiviert … )
Viel Erfolg und Spaß
Thomas

P. S.: Ich finde das so wesentlich komfortabler als die Filter, besonders, wenn man mehrere Spalten und Zeilen ausblenden will.
Spalten ausblenden geht auch mit der Filterfunktion nicht.

ja danke hab ich noch gesehen und auch gemailt bekommen =) werds natürlich mal mit der korrigierten version probieren falls ichs überhaupt checke :wink: ansonsten frag ich einfach nochmal nach.

aufjedenfall mal danke für die rasche hilfe!!