196 Aufrufe
Gefragt in Tabellenkalkulation von jelena Mitglied (737 Punkte)
Hallo Karin guten Tag, bitte wieder um Hilfe.

Ich möchte in Excel eine Formel oder ein vba einfügen.

Es soll aus der Spalte E2:E100 nach einer Filterung der erste sichtbare Text in die Zelle E105 kopiert werden. Danke

8 Antworten

0 Punkte
Beantwortet von
Guten Morgen,

Du könntest Dir diese Funktion in vba einfügen und dann in E105

=FirstFilterdValue(E2:E100)  eingeben

Public Function FirstFilterdValue(myrange As Range)
Dim Found As Boolean
Dim myCells
Dim i As Long, j As Long, k As Long

i = myrange.Rows.Count + myrange.Row - 1
j = myrange.Row
k = myrange.Column
Found = False

Do Until Found = True Or j = i
    If Cells(j, k).RowHeight > 0 Then
        Found = True
    Else
        j = j + 1
    End If
Loop
If Found = True Then
    FirstFilterdValue = Cells(j, k).Value
Else
    FirstFilterdValue = ""
End If

End Function
0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)
Guten Morgen Anonym, habe es probiert aber es kommt in der Zelle E105 die Meldung #NAME?
0 Punkte
Beantwortet von
Moin

Erste Zeilennummer bei einer Filterung in Spalte A

ErsteZeile als Integer zu definieren sollte ausreichen anderenfalls als Long

Oder ohne Variable direkt einzusetzen

ErsteZeile=ActiveSheet.AutoFilter.Range.Offset(1).Resize(ActiveSheet.AutoFilter.Range.Count - 1).Columns(1).SpecialCells(xlVisible).Row

Eine Zeile oder Zelle zu kopieren sollte wohl kein Problem darstellen

MfG
0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)
Hallo bräuchte das komplette vba. Danke
0 Punkte
Beantwortet von
Bearbeitet
Moin

Sub Beispiel()
 With ActiveSheet
  .Range("E1:E100").AutoFilter Field:=1, Criteria1:="Suchbegriff" 'Parameter nach Bedarf
  .Range("E105") = .Cells(.AutoFilter.Range.Offset(1).Resize(.AutoFilter.Range.Count - 1).Columns(5).SpecialCells(xlVisible).Row, 5)
  .Range("E1").AutoFilter
 End With
End Sub

MfG
0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)

Hallo habe mich wohl falsch ausgedrückt, wenn z.B. in der gefilterten Spalte von E2:E100 der erste Text z.B. Mustermann in Zelle E15 erscheint dann soll in der Zelle E105 der Text Mustermann erscheinen.

Sollte z.B. der erste Text Musterfrau in Zelle E20 erscheinen so soll in der Zelle E105 der Text Musterfrau erscheinen. Bitte um den ganzen vba. Danke

0 Punkte
Beantwortet von

Guten Morgen,

hast Du als du #NAME als Ergebnis bekommen hast, die Funktion komplett von 

Public Function

bis

End Function

in ein Modul der  gleichen Arbeitsmappe kopiert, denn bei mir funktioniert es (habe es gerade nochmals getestet

0 Punkte
Beantwortet von jelena Mitglied (737 Punkte)

Guten Morgen, habe ein Beispiel gemacht. Ohne Filterung

Nach Filterung soll der erste Text der in der Spalte E nach Verein erscheint z.B. Moos eingefügt werden.

Danke

...