Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Arni,
zeig doch mal, wie Du Dir diese Anzeige in einer ListBox vorstellst.
Ich würde da eventuell 3 zusätzliche TextBoxen für diese Anzeige verwenden.
Gruß Uwe
Registriert seit: 16.12.2016
Version(en): 2013
Hallo Uwe,
habe Dir ein Bild angehangen.
Gruß Arni
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Arni,
das sollte ja schon in der ListBox stehen, wenn man sie so füllt:
Private Sub CommandButton1_Click()
Dim myLookAt As XlLookAt, strFirstAddress As String, rngFound As Range 'Suchart, Erste Adresse als Zeichenfolge, Bereich
If Len(TextBox1.Text) = 0 Then 'Textbox leer ??
MsgBox "Suchtext eingeben"
Exit Sub
End If
myLookAt = IIf(CheckBox1.Value, xlPart, xlWhole) 'Suchart XLPART Teilergebnis, XLWhole Exakte Suche
With ActiveSheet.UsedRange 'Benutzer Bereich in der Aktiven Tabelle
Set rngFound = .Find(What:=TextBox1.Text, LookIn:=xlValues, LookAt:=myLookAt)
If rngFound Is Nothing Then
MsgBox "Keine Termine vorhanden"
Exit Sub
End If
ListBox1.Clear
strFirstAddress = rngFound.Address(0, 0)
Do
ListBox1.AddItem rngFound.Text
ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(rngFound.Row, 1).Text
ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(rngFound.Row, 2).Text
ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(8, rngFound.Column).Text
ListBox1.List(ListBox1.ListCount - 1, 4) = Cells(rngFound.Row - 1, rngFound.Column).Text
Set rngFound = .FindNext(rngFound)
Loop Until rngFound.Address(0, 0) = strFirstAddress
End With
End Sub
Gruß Uwe
Registriert seit: 16.12.2016
Version(en): 2013
Hallo Uwe,
Funktioniert nicht ! siehe Anhang.
hier nochmal der gesamte Code:
Code: Option Explicit
Private Sub CommandButton1_Click()
Dim myLookAt As XlLookAt, strFirstAddress As String, rngFound As Range 'Suchart, Erste Adresse als Zeichenfolge, Bereich
If Len(TextBox1.Text) = 0 Then 'Textbox leer ??
MsgBox "Suchtext eingeben"
Exit Sub
End If
myLookAt = IIf(CheckBox1.Value, xlPart, xlWhole) 'Suchart XLPART Teilergebnis, XLWhole Exakte Suche
With ActiveSheet.UsedRange 'Benutzer Bereich in der Aktiven Tabelle
Set rngFound = .Find(What:=TextBox1.Text, LookIn:=xlValues, LookAt:=myLookAt)
If rngFound Is Nothing Then
MsgBox "Keine Termine vorhanden"
Exit Sub
End If
ListBox1.Clear
strFirstAddress = rngFound.Address(0, 0)
Do
ListBox1.AddItem rngFound.Text
ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(rngFound.Row, 1).Text
ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(rngFound.Row, 2).Text
ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(8, rngFound.Column).Text
ListBox1.List(ListBox1.ListCount - 1, 4) = Cells(rngFound.Row - 1, rngFound.Column).Text
'ListBox1.AddItem rngFound.Address(2, 2)
'ListBox1.AddItem rngFound.Address(-1, 0)
'ListBox1.List(ListBox1.ListCount - 1, 1) = rngFound.Text
Set rngFound = .FindNext(rngFound)
Loop Until rngFound.Address(0, 0) = strFirstAddress
End With
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox1.ListIndex > -1 Then
If ListBox1.Tag <> "" Then
Range(ListBox1.Tag).Interior.ColorIndex = 0
Cells(8, Range(ListBox1.Tag).Column).Interior.ColorIndex = 0
Cells(Range(ListBox1.Tag).Row, 1).Interior.ColorIndex = 43
Cells(Range(ListBox1.Tag).Row, 2).Interior.ColorIndex = 19
End If
Range(ListBox1.Value).Select
ActiveCell.Interior.ColorIndex = 4
Cells(8, ActiveCell.Column).Interior.ColorIndex = 4
Cells(ActiveCell.Row, 1).Interior.ColorIndex = 4
Cells(ActiveCell.Row, 2).Interior.ColorIndex = 4
ListBox1.Tag = ActiveCell.Address
Cancel = True
End If
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub UserForm_Click()
End Sub
'Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
' If ListBox1.ListIndex > -1 Then
' If ListBox1.Tag <> "" Then Range(ListBox1.Tag).Interior.ColorIndex = 0
' Range(ListBox1.Value).Select
' ActiveCell.Interior.ColorIndex = 4
'ListBox1.Tag = ActiveCell.Address
' Cancel = True
'End If
'End Sub
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 2
ListBox1.BoundColumn = 1
ListBox1.ColumnWidths = "0,150"
End Sub
Private Sub CommandButton2_Click()
If ListBox1.Tag <> "" Then
Range(ListBox1.Tag).Interior.ColorIndex = 0
Cells(8, Range(ListBox1.Tag).Column).Interior.ColorIndex = 0
Cells(Range(ListBox1.Tag).Row, 1).Interior.ColorIndex = 43
Cells(Range(ListBox1.Tag).Row, 2).Interior.ColorIndex = 19
End If
UserForm2.Hide
End Sub
Siehe Anhang:
Gruß Arni
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Arni,
dann vielleicht so?
Private Sub CommandButton1_Click()
Dim myLookAt As XlLookAt, strFirstAddress As String, rngFound As Range 'Suchart, Erste Adresse als Zeichenfolge, Bereich
If Len(TextBox1.Text) = 0 Then 'Textbox leer ??
MsgBox "Suchtext eingeben"
Exit Sub
End If
myLookAt = IIf(CheckBox1.Value, xlPart, xlWhole) 'Suchart XLPART Teilergebnis, XLWhole Exakte Suche
With ActiveSheet.UsedRange 'Benutzer Bereich in der Aktiven Tabelle
Set rngFound = .Find(What:=TextBox1.Text, LookIn:=xlValues, LookAt:=myLookAt)
If rngFound Is Nothing Then
MsgBox "Keine Termine vorhanden"
Exit Sub
End If
ListBox1.Clear
strFirstAddress = rngFound.Address(0, 0)
Do
ListBox1.AddItem rngFound.Address(0, 0)
ListBox1.List(ListBox1.ListCount - 1, 1) = rngFound.Text
ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(rngFound.Row, 1).Text
ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(rngFound.Row, 2).Text
ListBox1.List(ListBox1.ListCount - 1, 4) = Cells(8, rngFound.Column).Text
ListBox1.List(ListBox1.ListCount - 1, 5) = Cells(rngFound.Row - 1, rngFound.Column).Text
Set rngFound = .FindNext(rngFound)
Loop Until rngFound.Address(0, 0) = strFirstAddress
End With
End Sub
Gruß Uwe
Registriert seit: 16.12.2016
Version(en): 2013
Hallo Uwe,
leider noch nicht.
Jetzt läuft der Code wieder wie zuvor ohne die anderen Einträge.
siehe Anhang
Gruß Arni
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Arni,
schade. Aber jetzt hab ich keine Lust mehr mit Bilderrätseln.
Gruß Uwe
Registriert seit: 16.12.2016
Version(en): 2013
Hallo Uwe,
Sorry soll ich etwas anders machen ??
Gruß Arni
Registriert seit: 16.12.2016
Version(en): 2013
Hallo Uwe,
habe es hinbekommen, siehe Bild :17:
Code: ListBox1.Clear
strFirstAddress = rngFound.Address(0, 0)
Do
ListBox1.ColumnCount = 6
ListBox1.AddItem rngFound.Address(0, 0)
ListBox1.List(ListBox1.ListCount - 1, 1) = rngFound.Text
ListBox1.AddItem rngFound.Address(-1, 0)
ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(rngFound.Row, 1).Text
ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(rngFound.Row, 2).Text
ListBox1.List(ListBox1.ListCount - 1, 4) = Cells(8, rngFound.Column).Text
ListBox1.List(ListBox1.ListCount - 1, 5) = Cells(rngFound.Row - 1, rngFound.Column).Text
'ListBox1.AddItem rngFound.Address(2, 2)
'ListBox1.AddItem rngFound.Address(-1, 0)
'ListBox1.List(ListBox1.ListCount - 1, 1) = rngFound.Text
Set rngFound = .FindNext(rngFound)
Loop Until rngFound.Address(0, 0) = strFirstAddress
End With
End Sub
Danke für deine Hilfe
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Arni,
dass ColumnCount richtig eingestellt war, setzte ich nach Deinem Bild voraus. So etwas stelle ich im Editor fest ein.
Wozu Du 2 Zeilen für einen Treffer benötigst, verstehe ich nicht.
ListBox1.AddItem rngFound.Address(0, 0)
ListBox1.List(ListBox1.ListCount - 1, 1) = rngFound.Text
ListBox1.AddItem rngFound.Address(-1, 0)
Schau Dir auch mal die Range.Address-Eigenschaft in der Hilfe an!
Gruß Uwe
|