Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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
Suche von Namen in Tabelle mit Initialien
20.10.2017 12:15:37
Namen
Hallo zusammen,
ich habe eine Tabelle, die mir ausschließlich die Initialien der Mitarbeiter und deren Abteilungsnamen anzeigt. Die Anzeige der reinen Initialien ist der täglichen Aktualisierung aus einem Report unserer Systeme geschuldet. (Läuft per VBA)
Nun wurde mir die Frage gestellt, ob es in der Tabelle auch möglich sei, mit dem Namen der Mitarbeiter zu suchen und dennoch die Zeile mit den Initialien des Mitarbeiters angezeigt zu bekommen.
Beispiel:
Ich suche "Max Mustermann" → Excel zeigt mir automatisch Zelle B27 an, in der "MM" enthalten ist.
Funktioniert so etwas?
Danke.
Gruß
Chris

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche von Namen in Tabelle mit Initialien
20.10.2017 12:40:49
Namen
Hi Chris,
das sind zu wenige Informationen bzw. das Aktualisierungsprogramm oder die Exceldatei sind uns nicht bekannt.
Wie willst du nach was suchen, das (möglicherweise) nicht vorhanden ist (oder gibt es irgendwelche Regeln,...)?
Grüße - Erwin
Frage
20.10.2017 12:43:58
Peter(silie)
Hallo,
ein paar kleine Fragen:
- Steht der Name in einer einzigen Zelle oder in zwei?
- In welcher Spalte stehen die Namen
- Befinden sich die Initialien immer in Spalte B?
Hier was zum testen
20.10.2017 12:53:45
Peter(silie)
Hallo,
hier hast du vorab ne kleinigkeit zum testen:
(voraussetzung: Initialen stehen in Spalte B und der Vor- und Nachname ist mit Leerzeichen getrennt)
Sub Find_User()
Dim initialien, nameToFind, tmp() As String
Dim ws As Worksheet
Dim rng As Range
Dim lRow As Long
nameToFind = Application.InputBox("Namen eingeben")
If nameToFind = "" Then Exit Sub
tmp = Split(nameToFind, " ")
initialien = Left(tmp(0), 1) & Left(tmp(1), 1)
Set ws = ActiveSheet
With ws
lRow = .Cells(.Rows.Count, 2).End(xlUp).Row
Set rng = .Range(.Cells(1, 2), .Cells(lRow, 2))
If Not VBA.IsError(Application.Match(initialien, rng, 0)) Then
.Cells(Application.Match(initialien, rng, 0), 2).Select
MsgBox nameToFind & " in Zelle " & ActiveCell.Address & " gefunden."
End If
End With
End Sub

Anzeige
AW: Frage
20.10.2017 12:54:08
Chris
Hallo,
die Initialien befinden sich immer in Spalte B, ab Zeile 3 abwärts.
Der Name des Mitarbeiters ist leider nirgendwo in dem Sheet enthalten. Dazu würde ich allerdings gern eine kleine extra Tabelle bauen, wo sich Excel die Daten ziehen kann. Da würde der Name in einer Zelle stehen.
Danke.
LG
Chris
Ich hätte es ja so verstanden...
20.10.2017 13:18:02
Michael
Chris,
siehe: https://www.herber.de/bbs/user/117121.xlsm
Code
Public Funde$
Sub SucheInitialen(MaName$)
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.ActiveSheet
Dim i$, r As Range, f As Range, ff$
Funde = vbNullString
With Ws
Set r = .Range("B2:B" & .Cells(.Rows.Count, "B").End(xlUp).Row)
i = UCase(Left(MaName, 1) & Mid(MaName, InStr(1, MaName, " ") + 1, 1))
Set f = r.Find(what:=i, LookIn:=xlValues, lookat:=xlWhole)
If Not f Is Nothing Then
ff = f.Address
Do
Funde = Funde & _
"Zelle: " & f.Address & _
", Abteilung: " & f.Offset(, 1) & Chr(10)
Set f = r.FindNext(f)
Loop While Not f Is Nothing And f.Address  ff
End If
End With
Funde = Left(Funde, Len(Funde) - 1)
Set Wb = Nothing: Set Ws = Nothing: Set r = Nothing: Set f = Nothing
End Sub
Sub StarteSuche()
UserForm1.Show
End Sub
Private Sub CommandButton1_Click()
If Me.TextBox1  "" Then
SucheInitialen (Me.TextBox1.Text)
Me.TextBox2.Text = Funde
Else:
MsgBox "Kein Such-Name eingegeben"
Me.TextBox1.SetFocus
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Unload Me
End Sub
LG
Michael
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige