Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Suchen/ Weitersuchen/ Zurück und Zelle markieren

Betrifft: Suchen/ Weitersuchen/ Zurück und Zelle markieren von: Peter
Geschrieben am: 09.11.2012 09:56:12

Hallo Forum,

ich bin relativ neu in der Welt der VBA- Programmierung und hab somit auch meine Probleme. Hoffentlich werdet ihr mir helfen können.

Ich versuche euch jetzt mein Problem zu schildern:

Habe eine Tabelle mit unzähligen Nummern in Spalte B. Diese Spalte B soll über eine Suche (UserForm bereits erstellt) durchsucht werden.
Die Funktion Suchen klappt, Funktion Weitersuchen klappt auch ebenso wie die Suche Zurück.
Wenn ich eine Zahl suche, diese gefunden wird, wird die Zelle mit dem Inhalt der Zahl gelb eingefärbt, der String wird fett gemacht und blau gefärbt.

Wie kriege ich es nun hin, diese Einfärbung (Formatierung der Zelle) weiterzugeben bzw. rückwärts zurückzugeben, wenn ich über die Zahl hinausbin welche ich gesucht habe. Dies kriege ich nicht hin.

Ich hoffe ich konnte mich kurz und knapp ausdrücken, damit es alle verstehen die meinen Beitrag lesen.

Schon mal Danke im Voraus.

Lg Peter

PS: mein VBA- Code der UserForm hänge ich mit an.

Option Explicit

Private Sub TextBox1_Enter()
    With TextBox1
    .SelStart = 0
    .SelLength = Len(.Text)
    End With
End Sub

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 13 Then
    Call fktMarkierungenImTabellenblattZuruecksetzen
  End If
End Sub

Private Sub UserForm_Initialize()
  TextBox1.SetFocus
End Sub

Private Sub cmbSuchen_Click()
  Call fktMarkierungenImTabellenblattZuruecksetzen
End Sub

Private Sub cmbWeiter_Click()

    Cells.FindNext(after:=ActiveCell).Activate
    
End Sub

Private Sub cmbZurueck_Click()

    Cells.FindPrevious(after:=ActiveCell).Activate
    
End Sub

Private Sub fktMarkierungenImTabellenblattZuruecksetzen()
Dim rngEingabe As Range
Dim xlEnd As Integer
Dim wks As Worksheet
Dim strTest As String

  Set wks = ActiveWorkbook.ActiveSheet
  With wks
    xlEnd = .Cells(.Rows.Count, 2).End(xlUp).Row
    strTest = .Name
    
    'Schrift fett rückgängig
    .Range("B4:B" & xlEnd).Font.Bold = False
  
    'Schrift Farbe der Zelle rückgängig
    .Range("B4:B" & xlEnd).Interior.ColorIndex = xlNone
 
    'Eingabe der gewünschten Sachnummer in die TextBox1
    If TextBox1 = "" Then Exit Sub
    Set rngEingabe = .Columns(2).Find(What:=TextBox1, LookAt:=xlPart)
    If Not rngEingabe Is Nothing Then
      
      'Gefundene Sachnummer wird fett markiert
      rngEingabe.Font.Bold = True 'Fett
      
      'Gefundene Sachnummer wird ausgewählt
      rngEingabe.Select
        
      'Zelle mit gefundener Sachnummer wird gelb eingefärbt
      With rngEingabe.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535       'oder hier eine andere Farbe
        '.TintAndShade = 0
        '.PatternTintAndShade = 0
      End With
      
      With TextBox1
        .SetFocus
        .SelStart = 0
        .SelLength = Len(.Text)
      End With
    
    Else
      MsgBox "Eingegebene Sachnummer ist nicht vorhanden", , "Fehler"
    End If
  End With
End Sub

 

Beiträge aus den Excel-Beispielen zum Thema "Suchen/ Weitersuchen/ Zurück und Zelle markieren"