Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1668to1672
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

Zellposition bei zusammengesetztem Inhalt suchen

Zellposition bei zusammengesetztem Inhalt suchen
26.01.2019 08:41:18
Ecki
Liebe Excel-Spezialisten
Falls mir jemand bei meinem kleinen Problem helfen könnte, wäre ich sehr dankbar.
Ich möchte die Position einer Zelle in einer Spalte bestimmen, welche zusammengesetzt ist (z.B. =A25&", Tel.: +"&B25). Hierfür suche ich nicht nach dem eben genannten Code sondern eben dem jeweiligen Text der sich daraus zusammensetzt, z.B. "Name, Tel.: +49 151 123456".
Folgenden Ansatz habe ich:
Private Sub CommandButton3_Click() 'das ist der Knopf, der die Suche auf Form 4 auslöst
Dim aktueller_Belegarzt As String 'nach diesem Wert suche ich (Name u. Tel.Nr.), kommt aus ComboBox, die in Spalte D gefüllt wird
Dim E_Mail_Belegarzt As String 'steht in der Reihe eine Zelle davor (Spalte C)
Dim Listenanzeige_Liste_Aerzte As Range 'das ist die Spalte in der ich suche (D)
aktueller_Belegarzt = ComboBox1.Value 'hier kommt der zu suchende Wert her - und bis dahin geht es auch
Sheets("Liste_Aerzte").Activate 'in diesem Tabellenblatt findet sich die zu durchsuchende Liste in der Spalte D
Range("D:D").Find (aktueller_Belegarzt), LookIn:=xlValues, LookAt:=xlWhole 'hier kommt der Laufzeitfehler '424'
E_Mail_Belegarzt = ActiveCell.Offset(0, -1).Value 'da will ich die Mail hin schicken
Anrede_Belegarzt = ActiveCell.Offset(0, 3).Value 'steht drei Zellen dahinter in der Zeile (Spalte G)
With objMail
.To = E_Mail_Belegarzt 'HIER BLEIBT ER STEHEN mit dem o.g. Laufzeitfehler 424
.Subject = "Pat_Name_GebDat"
.Body = Anrede_Belegarzt & vbCrLf & vbCrLf & "Herzliche Grüsse vom ORTHO-NOTFALL-Team"
.Display 'Nachricht zur Kontrolle anzeigen
End With
Unload UserForm4
Mein Problem ist, dass Die Prozedur nur Werte ausgibt, wenn ich vorher eine Zelle in Spalte D angewählt habe, dann aber trotzdem den Laufzeitfehler ausgibt.
Kann mir da jemand helfen?
Liebe Wochenendgrüße von Ecki

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellposition bei zusammengesetztem Inhalt suchen
26.01.2019 08:43:45
Hajo_Zi
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
ich würde vermuten
Range("D:D").Find (aktueller_Belegarzt, LookIn:=xlValues, LookAt:=xlWhole )

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Zellposition bei zusammengesetztem Inhalt suchen
26.01.2019 09:02:13
Werner
Hallo Ecki,
bescheidene Frage: Warum suchst du nicht in Spalte A, dort stehen ja wohl nur die Namen der Ärzte?
Und wenn du in Spalte D suchst, dann kannst du nicht mit dem Parameter xlWhole suchen, weil in dieser Spalte ja nicht nur der Name alleine steht. Wenn du in Spalte D suchst, dann mußt du mit xlPart suchen.
Zudem mußt du deine Suche ja auch irgendeiner Variablen zuweisen. Hier bietet sich eine Range-Variable an, dann kann man auch abfangen, wenn der Suchbegriff mal nicht gefunden wird.
Private Sub CommandButton3_Click()
Dim aktueller_Belegarzt As String, E_Mail_Belegarzt As String
Dim Listenanzeige_Liste_Aerzte As Range, raFund As Range
aktueller_Belegarzt = ComboBox1.Value
With Worksheets("Liste_Aerzte").Range("D:D")
Set raFund = .Find(what:=aktueller_Belegarzt, LookIn:=xlValues, LookAt:=xlPart)
If Not raFund Is Nothing Then
MsgBox aktueller_Belegarzt & " ist in Zeile: " & raFund.Row
'statt MessageBox hier dein weiterer Code
Else
MsgBox "Suchbegriff nicht gefunden."
End If
End With
Set raFund = Nothing
End Sub
Gruß Werner
Anzeige
AW: Zellposition bei zusammengesetztem Inhalt suchen
26.01.2019 09:40:55
Ecki
Vielen Dank, bin gerade vom Frühstück zurück und bin überwältigt, wie schnell Ihr seid.
@ Werner: Ich suche daher nicht in Spalte A, weil in der Form 4 nur der zusammengesetzte Wert (Name und Telefonnummer) angezeigt wird. Und aus dieser Form heraus will ich die Mail versenden. Habe Deinen Code mal eingesetzt. Jetzt findet er die Zeile. Werde es nachher weiter ausprobieren.
Erst einmal nochmals herzlichen Dank
LG von Ecki
AW: Zellposition bei zusammengesetztem Inhalt suchen
26.01.2019 09:21:57
Luschi
Hallo Ecki,
beim Suchen von werten per 'Find' muß man mit Objektvariablen arbeiten, damit man überprüfen _ kann, ob der Wert auch gefunden wurde:

Dim ws As Worksheet, rgSuchen As Range
Set ws = Worksheets("Liste_Aerzte")
Set rgSuchen = ws.Range("D:D").Find(What:= aktueller_Belegarzt, LookIn:=xlValues, LookAt:= _
xlWhole)
If rgSuchen Is Nothing Then
MsgBox "Suchbegriff '" & aktueller_Belegarzt & "' nicht gefunden!", 16, "Schade..."
Set ws = Nothing
Exit Sub
End If
'wenn gefunden geht's hier weiter
Ohne eine kleine Beispieldatei von Dir schreibe ich zu diesem Problem nichts weiter.
Gruß von Luschi
aus klein-Paris
PS: Da 'Find' die aktive Zellposition nicht verändert, nützt dies hier gar nichts:
ActiveCell.Offset(0, -1).Value
sondern: rgSuchen.Offset(0, -1).Value
Anzeige
Unsinn. o.w.T.
26.01.2019 11:59:38
Werner
AW: Zellposition bei zusammengesetztem Inhalt suchen
26.01.2019 09:23:11
Werner
Hallo Ecki,
hier jetzt nochmal der komplette Code:
Private Sub CommandButton3_Click()
Dim aktueller_Belegarzt As String, E_Mail_Belegarzt As String
Dim Listenanzeige_Liste_Aerzte As Range, raFund As Range
Dim oApp As Object
aktueller_Belegarzt = ComboBox1.Value
With Worksheets("Liste_Aerzte").Range("D:D")
Set raFund = .Find(what:=aktueller_Belegarzt, LookIn:=xlValues, LookAt:=xlPart)
If Not raFund Is Nothing Then
'statt MessageBox hier dein weiterer Code
MsgBox aktueller_Belegarzt & " ist in Zeile: " & raFund.Row
E_Mail_Belegarzt = raFund.Offset(0, -1)
Anrede_Belegarzt = raFund.Offset(0, 3)
Set oApp = CreateObject("Outlook.Application")
With oApp.CreateItem(0)
.To = E_Mail_Belegarzt
.Subject = Pat_Name_GebDat
.Body = Anrede_Belegarzt & vbCrLf & vbCrLf & "Herzliche Grüsse vom ORTHO-NOTFALL- _
Team"
.Display 'Nachricht zur Kontrolle anzeigen
End With
Else
MsgBox "Suchbegriff nicht gefunden."
End If
End With
Set raFund = Nothing:  Set oApp = Nothing
End Sub
Allerdings wird nirgendwo im Code die Variable Pat_Name_GebDat befüllt.
Gruß Werner
Anzeige
AW: Zellposition bei zusammengesetztem Inhalt suchen
26.01.2019 16:28:36
Ecki
Lieber Werner,
herzlichsten Dank - Du bist echt klasse. Dein Code hat prima funktioniert und ich kann jetzt endlich ruhig schlafen. Zwanghaft wie ich bin, habe ich natürlich jeden einzelnen Schritt überwacht und mich gefreut, wie sich die Variablen gefüllt haben und die E-Mail korrekt angezeigt wurde.
Die Variable Pat_Name_GebDat fülle ich aus der Form 4, wollte aber den Code für die Anfrage nicht zu lang gestalten, daher habe ich diesen Teil raus gelassen.
Also Danke nochmals und ein schönes Wochenende allen!
LG von Ecki Schöll
Gerne u. Danke für die Rückmeldung. o.w.T.
26.01.2019 19:38:41
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige