Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
316to320
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
316to320
316to320
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchfeld in Symbolleiste

Suchfeld in Symbolleiste
05.10.2003 15:23:55
Thorsten
Hallo Ihr Könner!
den ganzen Tag versuche ich nun schon, meiner Symbolleiste ein Suchfeld hinzuzufügen.
Nach Eingabe in dieses Suchfeld soll mit "Enter" der eingegebene Begriff oder Felder die diesen Begriff in Teilen beinhalten - im gesamten Tabellenblatt gesucht und gefunden werden - mit Weitersuch-Option.
Für Euch bestimmt keine Hürde, fuer mich ein Meilenstein.
Im Voraus Danke fuer Eure Hilfe

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfeld in Symbolleiste
05.10.2003 16:11:41
Nepumuk
Hallo Thorsten,
ein Beispiel, wie ein Eingabefeld in einer Symbolleiste angelegt wird. Zum Thema suchen wirst du im Archiv ca. 100 Hinweise mit exzellenten Programmbeispielen finden.


Option Explicit
Public Sub anlegen()
Dim myBar As CommandBar, myCtrl As CommandBarControl
Set myBar = CommandBars.Add("suchen", msoBarFloating, False, True)
Set myCtrl = myBar.Controls.Add(Type:=msoControlEdit)
myCtrl.OnAction = "suchen"
myBar.Visible = True
End Sub
Private Sub suchen()
'Hier kommt deine Suchroutine rein
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
AW: Suchfeld in Symbolleiste
05.10.2003 17:06:07
Thorsten
Hallo Nepumuk,
Danke fuer Deine prompte Antwort!
Die Symbolleiste funktioniert, d.h sie wird eingeblendet und es wird auch ein unter suchen() definierte (simple) Aktion ausgeführt on action, z.b. Range("a1").Select.
Wie lautet denn jetzt der Code fuer die Suchroutine, dass naemlich das im Feld eingegebene Wort (oder Wortbestandteil) zu suchen ist??
AW: Suchfeld in Symbolleiste
05.10.2003 16:11:59
Ramses
Hallo Thorsten,

warum das Rad immer neu erfinden ?

"Ctrl" + "f"

Alles andere ist viel zu aufwändig zum programmieren :-)

Gruss Rainer
AW: Suchfeld in Symbolleiste
05.10.2003 18:35:58
GraFri
Hallo

Bei Unklarheiten melden.



'————————————————————————————————
'   05/10/2003
'©  Ing.Friedrich Grath
'@  grath.fritz@aon.at
'————————————————————————————————

'***********************************************************************
'In ein MODUL (Name: Modul1)

Option Explicit
Option Base 1
Option Compare Text

Dim n%, x%, c
Dim Adresse()                    As String
Dim indexAnzeige                 As Integer
Dim Meldung                      As Byte

'------------------------------------------------------------------------

' Neue Symbolleiste erstellen und mit Schaltbutton versehen
Sub Neue_Symbolleiste()
' Falls Symbollsite schon existiert löschen und neu anlegen
On Error Resume Next
CommandBars("Suchen").Delete
CommandBars.Add Name:="Suchen"
  
' Symbolleiste oben links anzeigen und mit Schaltflächen versehen
With CommandBars("Suchen")
    .Position = msoBarTop
    .Visible = True
    .Controls.Add Type:=msoControlEdit      'Textbox f. Suchtext
    .Controls.Add Type:=msoControlButton    'Button für Weitersuchen
End With

With CommandBars("Suchen").Controls(1)
    .Width = 100
    .TooltipText = "Suchbegriff eingeben und mit ENTER bestättigen"
    .Text = ""
    .OnAction = "Suche_starten"
End With

With CommandBars("Suchen").Controls(2)
    .Caption = " Suche fortsetzen    "
    .FaceId = 345
    .Style = msoButtonIconAndCaption
    .OnAction = "Anzeige_fortsetzen"
    .Enabled = False
End With
End Sub
'------------------------------------------------------------------------
Sub Symbolleiste_löschen()
    On Error Resume Next
    CommandBars("Suchen").Delete
End Sub
'------------------------------------------------------------------------
Sub Suche_starten()
Dim objList As CommandBarControl

Dim ersteAdresse                 As String
Dim Text                         As String
Dim Suchen                       As String

'Suchbegriff aus Textbox
Set objList = CommandBars.ActionControl
Suchen = objList.Text

If Suchen = "" Then Exit Sub

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

x = 1: indexAnzeige = 0
With ActiveSheet.UsedRange
    Set c = .Find(Suchen, After:=Cells(.Rows.Count, .Columns.Count), LookIn:=xlValues)
    If Not Is Nothing Then
        ersteAdresse = c.Address
        Do
            ReDim Preserve Adresse(x)
            Adresse(x) = c.Address(RowAbsolute:=False, ColumnAbsolute:=False)
            Set c = .FindNext(c)
            x = x + 1
        Loop While Not Is Nothing And c.Address <> ersteAdresse
    End If
End With

'Anzeige der ersten gefundenen Übereinstimmung
Select Case x
Case 1
    CommandBars("Suchen").Controls(2).Enabled = False
    Meldung = MsgBox("Es wurde kein übereinstimmender Wert gefunden", _
    vbOKOnly, "G E F U N D E N E   W E R T E")
    Exit Sub
Case 2
    CommandBars("Suchen").Controls(2).Enabled = False
Case Else
    CommandBars("Suchen").Controls(2).Enabled = True
End Select
    
    ActiveSheet.Range(Adresse(1)).Select

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
'------------------------------------------------------------------------
Sub Anzeige_fortsetzen()

    indexAnzeige = indexAnzeige + 1

    If indexAnzeige = x - 1 Then
        CommandBars("Suchen").Controls(2).Enabled = False
        Meldung = MsgBox("Es wurde der letzte übereinstimmender Wert angezeigt", _
        vbOKOnly, "G E F U N D E N E   W E R T E")
        Exit Sub
    Else
        ActiveSheet.Range(Adresse(indexAnzeige + 1)).Select
    End If

End Sub
'***********************************************************************


'***********************************************************************
'In DieseArbeitsmappe
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call Modul1.Symbolleiste_löschen
End Sub

Private Sub Workbook_Open()
    Call Modul1.Neue_Symbolleiste
End Sub
'***********************************************************************



     Code eingefügt mit Syntaxhighlighter 2.4


mfg, GraFri
Anzeige
AW: Suchfeld in Symbolleiste
05.10.2003 19:32:56
Thorsten
Hallo GraFri,

danke fuer Deine prompte Hilfe. die Suche funktioniert jetzt prima, nur bei der Fortsetzung der Suche hapert es noch:

in deinem Sub:
Sub Anzeige_fortsetzen()
kommt leider bei:
Else
ActiveSheet.Range(Adresse(indexAnzeige + 1)).Select
immer die Meldung:
"laufzeitfehler '9'; Index ausserhalb des Gültigen Bereichs"

Wie ist das zu beheben???

Gruss und nochmals Danke

Thorsten
AW: Suchfeld in Symbolleiste
06.10.2003 15:57:37
GraFri
Hallo

Bei mir Unter Excel 2000 funktioniert es ohne Fehler. Zu beachten ist. Dieser Code gehört in ein Modul!

mfg, GraFri
Anzeige
AW: Suchfeld in Symbolleiste
06.10.2003 19:13:56
Thorsten
Hallo GraFri,

Danke nochmals fuer die Antwort, ich habe die "+1" geloescht und schon lief die Sache.
M.f.G.
Thorsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige