Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Filtern?





Frage

Hallo, habe folgendes Problem, ausgefiltert werden sollen alle Zeilen, bei denen in der Spalte "DRG" 4 Zeichen stehen, von denen das letzte ein Buchstabe ist. also Struktur: (Buchstabe,Ziffer,Ziffer,Buchstabe) Hat jemand ein Idee bzw. Tip Danke

Antwort 1 von want2cu

Hallo,

eine Komplettlösung auf die Schnelle nicht, aber einen Tipp.
Mit der Funktion LINKS müßtest du das 4. Zeichen ermitteln können. Mit ISTTEXT kannst du prüfen, ob es sich um einen Buchstaben handelt. Wenn du dazu noch genaueres brauchst, könntest du mit CHAR arbeiten.
Dann das ganze in eine Hilfsspalte und dann mit dem Autofilter nach dieser Hilfsspalte filtern.

CU
want2cu


Antwort 2 von nighty

hi enibas :)

wie gewuenscht ,filter in wechselwirkung,spalten anzupassen bzw. posten.

gruss nighty


Sub makro01()
Dim zaehler, zaehler1
With Worksheets("Tabelle1")
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
a = LastCell.Row
Do While Application.CountA(Rows(a)) = 0 And a <> 1
a = a - 1
Loop
alta = a
lzeile = alta
If Rows(1 & ":" & 200).EntireRow.Hidden = True Then
Rows(1 & ":" & 200).EntireRow.Hidden = False
End
Else
Rows(1 & ":" & lzeile).EntireRow.Hidden = False
End If
For t1 = 1 To lzeile
zaehler1 = Len(Cells(t1, 1))
If zaehler1 = 4 Then
If Asc(Mid$(Cells(t1, 1), 1, 1)) > 96 And Asc(Mid$(Cells(t1, 1), 1, 1)) < 123 _
Or Asc(Mid$(Cells(t1, 1), 1, 1)) > 64 And Asc(Mid$(Cells(t1, 1), 1, 1)) < 91 Then zaehler = zaehler + 1
If Asc(Mid$(Cells(t1, 1), 4, 1)) > 96 And Asc(Mid$(Cells(t1, 1), 4, 1)) < 123 _
Or Asc(Mid$(Cells(t1, 1), 4, 1)) > 64 And Asc(Mid$(Cells(t1, 1), 4, 1)) < 91 Then zaehler = zaehler + 1
If Asc(Mid$(Cells(t1, 1), 2, 1)) > 47 And Asc(Mid$(Cells(t1, 1), 2, 1)) < 58 Then zaehler = zaehler + 1
If Asc(Mid$(Cells(t1, 1), 3, 1)) > 47 And Asc(Mid$(Cells(t1, 1), 3, 1)) < 58 Then zaehler = zaehler + 1
If zaehler <> 4 Then Rows(t1 & ":" & t1).EntireRow.Hidden = True
Else
Rows(t1 & ":" & t1).EntireRow.Hidden = True
End If
zaehler = 0
zaehler1 = 0
Next t1
End With
End Sub






Antwort 3 von nighty

hi alle :)

wie gewuenscht :)

gruss nighty

es wird zur zeit das tabellen ende automatisch ermittelt ,von spalte a werden alle zellen abgetastet auf 4 zeichen die da sind wie gefordert
1 zeichen a-z bzw. A-Z bzw. A-z bzw. a-Z
2 zeichen zahl
3 zeichen zahl
4 zeichen a-z bzw. A-Z bzw. A-z bzw. a-Z

erste makrostart wird gefiltert und wenn nun nochmals gestartet wird und eine filterung noch vorhanden ist wird wieder ungefiltert dargestellt.



Antwort 4 von nighty

hi enibas :)

ein wenig optimiert und besser anpassbar :)

gruss nighty


Sub makro01()
Dim zaehler As Integer
Dim zaehler1 As Integer
Dim zaehler2
Dim spalte As Integer
Dim lzeile

rem gegebenefalls tabellennamen aendern

With Worksheets("Tabelle1")
lzeile = .UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1

rem hier deine spalte(notfalls abzaehlen)

spalte = 1

If Rows(1 & ":" & lzeile).EntireRow.Hidden = True Then
Rows(1 & ":" & lzeile).EntireRow.Hidden = False
End
Else
Rows(1 & ":" & lzeile).EntireRow.Hidden = False
End If
For zaehler2 = 1 To lzeile
zaehler1 = Len(Cells(zaehler2, spalte))
If zaehler1 = 4 Then
If Asc(Mid$(Cells(zaehler2, spalte), 1, 1)) > 96 And Asc(Mid$(Cells(zaehler2, spalte), 1, 1)) < 123 _
Or Asc(Mid$(Cells(zaehler2, spalte), 1, 1)) > 64 And Asc(Mid$(Cells(zaehler2, spalte), 1, 1)) < 91 Then zaehler = zaehler + 1
If Asc(Mid$(Cells(zaehler2, spalte), 4, 1)) > 96 And Asc(Mid$(Cells(zaehler2, spalte), 4, 1)) < 123 _
Or Asc(Mid$(Cells(zaehler2, spalte), 4, 1)) > 64 And Asc(Mid$(Cells(zaehler2, spalte), 4, 1)) < 91 Then zaehler = zaehler + 1
If Asc(Mid$(Cells(zaehler2, spalte), 2, 1)) > 47 And Asc(Mid$(Cells(zaehler2, spalte), 2, 1)) < 58 Then zaehler = zaehler + 1
If Asc(Mid$(Cells(zaehler2, spalte), 3, 1)) > 47 And Asc(Mid$(Cells(zaehler2, spalte), 3, 1)) < 58 Then zaehler = zaehler + 1
If zaehler <> 4 Then Rows(zaehler2 & ":" & zaehler2).EntireRow.Hidden = True
Else
Rows(zaehler2 & ":" & zaehler2).EntireRow.Hidden = True
End If
zaehler = 0
zaehler1 = 0
Next zaehler2
End With
End Sub


Antwort 5 von Aliba

Hi,

von mir nur eine Lösung mit Hilfsspalte, abgefragt wird:
Länge des Strings: 4
Mitte muss Zahl sein, Anfang und Ende keine Zahl:

=UND(ISTFEHLER(LINKS(A1;1)*1);ISTFEHLER(RECHTS(A1;1)*1);ISTZAHL(TEIL(A1;2;2)*1);LÄNGE(A1)=4)

ergibt WAHR für keine Ziffer-Ziffer-Ziffer-keine Ziffer.

Hilfsspalte nach WAHR filtern.

CU ALiba

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: