Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Wert suchen, Bereich markieren

Forumthread: VBA Wert suchen, Bereich markieren

VBA Wert suchen, Bereich markieren
Milan
Hallo Excel Freunde,
Ich brauche folgendes Makro:
Kopiere den Formel-Wert aus Active Celle (Tabelle1)
Gehe in Tabelle 2
Bereich: J7:J40000
Suche den kopierten Wert
Zeige den Bereich von A:L in dem sich der gesuchte Wert befindet
z.B. der Wert befindet sich in J40, markiere den Bereich von A40:L40
Danke für eure Hilfe!
Gruss
Milan
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Wert suchen, Bereich markieren
23.12.2010 21:07:51
Josef

Hallo Milan,
mir scheint, du liebst es, den Cursor wie einen Hund über deine Tabellen zu hetzen.

Sub milan()
  Dim vntRet As Variant
  
  With Sheets("Tabelle2")
    vntRet = Application.Match(ActiveCell, .Range("J7:J40000"), 0)
    
    If IsNumeric(vntRet) Then
      Application.Goto .Range(.Cells(vntRet + 6, 1), .Cells(vntRet + 6, 12)).Select
    Else
      MsgBox "Nada!"
    End If
  End With
End Sub

Gruß Sepp

Anzeige
AW: VBA Wert suchen, Bereich markieren
23.12.2010 21:31:37
Milan
Hallo Sepp,
besser er als ich :)
Ich habe den Code geringfügig geändert, er läuft nicht.
Sub milan()
Dim vntRet As Variant
With Sheets("Artikelstamm")
vntRet = Application.Match(ActiveCell, .Range("J7:J40000"), 0)
If IsNumeric(vntRet) Then
Application.Goto .Range(.Cells(vntRet + 6, 1), .Cells(vntRet + 6, 12)).Select
Else
MsgBox "Nada!"
End If
End With
End Sub

in diese Zeile bleibt er stecken: Application.Goto .Range(.Cells(vntRet + 6, 1), .Cells(vntRet + 6, 12)).Select
Folgende Fehlermedung erscheint:
Laufzeitfehler 1004
Die Select-Eigenschaft des Range Objektes kann nicht zugeordnet werden
Anzeige
AW: VBA Wert suchen, Bereich markieren
23.12.2010 21:35:12
Josef

sorry, my fault;-))

Sub milan()
  Dim vntRet As Variant
  
  With Sheets("Tabelle2")
    vntRet = Application.Match(ActiveCell, .Range("J7:J40000"), 0)
    
    If IsNumeric(vntRet) Then
      Application.Goto .Range(.Cells(vntRet + 6, 1), .Cells(vntRet + 6, 12))
    Else
      MsgBox "Nada!"
    End If
  End With
End Sub

Gruß Sepp

Anzeige
AW: VBA Wert suchen, Bereich markieren
23.12.2010 21:43:37
Milan
Hallo Sepp,
einfach geil, es funktioniert, DANKE.
Ich wünsche Dir und allen Excel Helfern,
ein frohes Weihnachtsfest und ein glückliches,
gesundes und erfolgreiches neues Jahr.
Gruss
Milan
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Wert suchen und Bereich markieren in Excel


Schritt-für-Schritt-Anleitung

Um ein VBA-Makro zu erstellen, das einen Wert in einem bestimmten Bereich sucht und den entsprechenden Bereich markiert, folge diesen Schritten:

  1. Öffne Excel und gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf VBAProject (DeineDatei.xlsx) > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub milan()
       Dim vntRet As Variant
       With Sheets("Tabelle2")
           vntRet = Application.Match(ActiveCell, .Range("J7:J40000"), 0)
           If IsNumeric(vntRet) Then
               Application.Goto .Range(.Cells(vntRet + 6, 1), .Cells(vntRet + 6, 12))
           Else
               MsgBox "Nada!"
           End If
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Wähle die Zelle aus, deren Wert Du suchen möchtest, und führe das Makro mit Alt + F8 aus.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn die Select-Eigenschaft des Range-Objekts nicht zugeordnet werden kann. Stelle sicher, dass der Range korrekt ist. Du kannst die Zeile Application.Goto .Range(.Cells(vntRet + 6, 1), .Cells(vntRet + 6, 12)).Select in Application.Goto .Range(.Cells(vntRet + 6, 1), .Cells(vntRet + 6, 12)) ändern, um den Fehler zu vermeiden.

  • Wert nicht gefunden: Wenn der gesuchte Wert nicht im Bereich vorhanden ist, wird die Nachricht "Nada!" angezeigt. Überprüfe, ob der Wert in der aktiven Zelle tatsächlich im Range J7:J40000 vorhanden ist.


Alternative Methoden

Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du auch die Excel-Funktion SVERWEIS oder FILTER nutzen, um Werte zu suchen und anzuzeigen. Diese Funktionen sind einfacher, jedoch weniger flexibel als ein VBA-Makro.

Beispiel für SVERWEIS:

=SVERWEIS(A1;Tabelle2!J7:L40000;2;FALSCH)

Praktische Beispiele

Angenommen, Du hast in Tabelle1 den Wert "Test" in Zelle A1. Der VBA-Code sucht in Tabelle2 im Bereich J7:J40000 nach diesem Wert. Wenn er in Zelle J40 gefunden wird, wird der Bereich von A40 bis L40 markiert.


Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler zu vermeiden.
  • Du kannst das Makro erweitern, um auch mehrere Werte zu suchen oder die Ergebnisse in einer Liste darzustellen.
  • Speichere Deine Datei als .xlsm, um die Makros zu aktivieren.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehrere Werte zu suchen?
Du kannst eine Schleife (z. B. For Each) verwenden, um durch eine Liste von Werten zu iterieren und das Suchmakro für jeden Wert auszuführen.

2. Wo finde ich die Entwicklertools in Excel?
Wenn die Entwicklertools nicht sichtbar sind, kannst Du sie aktivieren, indem Du zu Datei > Optionen > Menüband anpassen gehst und das Kontrollkästchen „Entwicklertools“ aktivierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige