Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1332to1336
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

Doppelklick eine suche starten

Doppelklick eine suche starten
17.10.2013 10:04:43
Werner
Leider konnte ich auf meinen Beitrag von gestern nicht antworten. Keine Ahnung warum.
Daher das Ganze noch mal:
Hallo zusammen!
Ich brauche mal wieder Hilfe...
Im Blatt 2 habe ich eine Etage (Büroüberischt) mit Linien "gemalt". Als Zellnamen habe ich jeweils die Raumnummer (z. B. Et_1.260, Et_1.261 usw.) eingegeben.
Im Blatt 1 gibt es eine Liste mit allen Personen im Stockwerk. Dahinter steht dann die Raumnummer (z. B. 1.260, 1.261 usw.). Aber Ohne "Et_".
Beim Doppelklick auf eine Zelle im Blatt 2 mit den gemalten Räumen soll Excel die Raumnummer im Blatt 1 suchen und in eriner Msgbox anzeigen, wer in dem Raum "wohnt".
Es kann vorkommen, dass mehrere Personen in einem Zimmer sitzen.
Ich hoffe das ist einigermaßen verständlich.
Gruß und Danke für eure Hilfe!
Werner

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelklick eine suche starten
17.10.2013 10:21:28
Beverly
Hi Werner,
vielleicht wäre es klug gewesen, hier wenigstens einen Link auf den gestrigen Beitrag zu setzen, wenn du dort (aus was für Gründen auch immer) nicht antworten kannst. Ich hatte ja bereits einige Rückfragen gestellt.
https://www.herber.de/forum/archiv/1332to1336/t1334644.htm#1334649


AW: Doppelklick eine suche starten
17.10.2013 10:22:41
Rudi
Hallo,
teste mal:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim arrTmp, arrOut(), i As Integer, strMatch As String, n As Integer
On Error GoTo ERREXIT
strMatch = Mid(Target.Name.Name, 4)
With Sheets(1)
arrTmp = .Cells(1, 1).CurrentRegion
ReDim arrOut(WorksheetFunction.CountIf(.Columns(1), strMatch) - 1)
End With
For i = 1 To UBound(arrTmp)
If arrTmp(i, 1) = strMatch Then
arrOut(n) = arrTmp(i, 2)
n = n + 1
End If
Next
MsgBox Join(arrOut, "; ")
Cancel = True
ERREXIT:
End Sub

Gruß
Rudi

Anzeige
AW: Doppelklick eine suche starten
18.10.2013 08:43:20
Werner
Hallo Rudi!
Danke für die Antwort.
Leider kommt bei dieser Zeile
strMatch = Mid(Target.Name.Name, 4)
die Fehlermeldung
Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler
Gruß
Werner

AW: Doppelklick eine suche starten
18.10.2013 13:28:41
Rudi
Hallo,
kann ja wegen On Error eigentlich nicht sein.
Der Fehler deutet darauf hin, dass die Zelle keinen Namen hat.
Gruß
Rudi

AW: Doppelklick eine suche starten
21.10.2013 08:20:45
Werner
Hallo!
Es gab tatsächlich ein Problem in den Zellnamen.
Habe sie noch mal gelöscht und neu vergeben.
Also ich habe es jetzt so gelöst:
Sub finden_Plan()
Dim rngZelle As Range
Dim strSuchbegriff As String
Dim bytWeiter As Byte
Dim lngTabellen As Long
strSuchbegriff = Mid(ActiveCell.Name.Name, 4)
If strSuchbegriff  "" Then
For lngTabellen = 4 To 4
With Worksheets(lngTabellen).UsedRange
Set rngZelle = .Find(strSuchbegriff, lookat:=xlWhole, LookIn:=xlValues)
If Not rngZelle Is Nothing Then
firstAddress = rngZelle.Address
Do
MsgBox rngZelle.Offset(0, -2)
bytWeiter = MsgBox("Weiter suchen?", vbOKCancel)
If bytWeiter = 2 Then Exit Do
Set rngZelle = .FindNext(rngZelle)
Loop While Not rngZelle Is Nothing And rngZelle.Address  firstAddress
End If
End With
If bytWeiter = 2 Then Exit For
Next lngTabellen
If rngZelle Is Nothing Then MsgBox "Suchbegriff nicht gefunden"
End If
Set rngZelle = Nothing
End Sub
Den Code habe ich irgendwo im Netz gefunden und etwas abgeändert.
Ist sicher noch einfacher zu machen.
Wenn mehrere Personen in einem Zimmer sitzen wrd das nicht in EINER Msgbox angezeigt.
Damit kann ich aber zur Not leben.
Oder geht das irgendwie, dass ALLE Insassen in der Msgbox auftauchen?
Gruß und Danke
Werner

Anzeige
AW: Doppelklick eine suche starten
21.10.2013 08:44:20
Beverly
Hi Werner,
Sub finden_Plan()
Dim rngZelle As Range
Dim strSuchbegriff As String
Dim bytWeiter As Byte
Dim strMsgBox As String
Dim firstAddress As String
strSuchbegriff = Mid(ActiveCell.Name.Name, 4)
If strSuchbegriff  "" Then
With Worksheets("Tabelle1").UsedRange
Set rngZelle = .Find(strSuchbegriff, lookat:=xlWhole, LookIn:=xlValues)
If Not rngZelle Is Nothing Then
firstAddress = rngZelle.Address
Do
strMsgBox = strMsgBox & vbLf & rngZelle.Offset(0, -2)
bytWeiter = MsgBox("Weiter suchen?", vbOKCancel)
If bytWeiter = 2 Then Exit Do
Set rngZelle = .FindNext(rngZelle)
Loop While Not rngZelle Is Nothing And rngZelle.Address  firstAddress
End If
End With
If strMsgBox  "" Then MsgBox strMsgBox
Else
MsgBox "Suchbegriff nicht gefunden"
End If
Set rngZelle = Nothing
End Sub


Anzeige
AW: Doppelklick eine suche starten
21.10.2013 08:51:48
Werner
Hey Karin!
GENIAL!!! Danke!
Nur die Zeilen
If bytWeiter = 2 Then Exit Do
Set rngZelle = .FindNext(rngZelle)
habe ich rausgenommen.
Eins noch:
Nach dem Doppelklick und der Msgbox befindet man sich mit dem Cursor in der Zelle und kann Daten eingeben.
Wie kriege ich es hin, dass die angeklickte Zelle nicht im Edit-Modus ist?
Also einfach nur selektiert?
Gruß
Werner

AW: Doppelklick eine suche starten
21.10.2013 08:54:34
Beverly
Hi Werner,
ergänze im code noch
Cancel = True


Anzeige
AW: Doppelklick eine suche starten
21.10.2013 09:06:25
Werner
Super!
Vielen Dank für die Hilfe!!!
Gruß aus Koblenz
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige