Clever-Excel-Forum

Normale Version: WVERWEIS mit Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute.

Ist es möglich anhand eines WVERWEISES(Suchkriterium,Matrix,Zeilenindex,Bereich) ein Makro zu starten welches mir die Matrix bestimmt?
Damit ist gemeint, statt den Matrix Bereich zu Definieren ein Makro zu starten so wie es auch bei einer WENN Funktion möglich ist.

Randnotitz: Das Makro startet in einer gewissen Zelle und markiert die Zeile bis sie die Zelle mit dem Inhalt "tofind" findet. (Zeilenlänge ist variable)

Oder gibt es vl. eine andere Möglichkeit dies zu realisieren außer den ganzen Verweis in VBA zu programmieren, was bei dem was ich vorhabe sehr viel Aufwand wird.

Danke für die Hilfe!


Lg Kash
Hallo,

Zitat:Ist es möglich anhand eines WVERWEISES(Suchkriterium,Matrix,Zeilenindex,Bereich) ein Makro zu starten welches mir
die Matrix bestimmt? 
Damit ist gemeint, statt den Matrix Bereich zu Definieren ein Makro zu starten so wie es auch bei
einer WENN Funktion möglich ist.


Randnotitz: Das Makro startet in einer gewissen Zelle und markiert die Zeile bis sie die Zelle mit dem Inhalt "tofind" findet.
(Zeilenlänge ist variable)


Oder gibt es vl. eine andere Möglichkeit dies zu realisieren außer den ganzen Verweis in VBA zu programmieren, was bei dem
was ich vorhabe sehr viel Aufwand wird.

... mit diesen Angaben läßt sich mal wieder gar nichts programmieren.
Ich verweise einmal mehr auf die oben im Forum als Wichtig bezeichneten Beiträge
und bitte um Beachtung dieser Inhalte.
Code:
   Dim auswahl As Range
   Set auswahl = Rows(11).Find("tofind", LookIn:=xlValues, lookat:=xlWhole)
   If Not auswahl Is Nothing Then
       Range(Cells(11, 8), Cells(11, auswahl.Column - 1)).Select
   Else
       MsgBox "nix gefunden"
   End If
Das is mein Makro für den Bereich den ich beim wverweis bei der Matrixauswahl aufrufen möchte. Anstatt eines manuell definerten Bereiches.
Im Klartext soll das Makro statt dem Platzhalter aufgerufen werden.
[
Bild bitte so als Datei hochladen: Klick mich!
]
Hi,

probier es mal so:


Code:
 If Not auswahl Is Nothing Then
       auswahl.Offset(0,1).Select
   Else
       MsgBox "nix gefunden"
   End If

Gruß
Ich

Ich sehe gerade, Du willst vermutlich eine Spalte links von der Fundstelle selektieren.
Dann mus dass so heißen:
auswahl.Offset(0,-1).Select
Nein funktioniert leider nicht.

Beim "Platzhalter" setzt er mir immer "tofind" hinein und nicht den ausgewählten bereich
Achso...
Du willst den durchsuchten Bereich ohne die Fundstelle selektieren?

Also von Spalte "H" bis eine Spalte vor der Fundstelle.
Ich will eigentlich einen Wverweis machen.

Allerdings ist der Bereich in dem er suchen soll sehr variabel (verschiebt sich immer nach rechts und links)

Jetzt versuche ich diesen "Bereich" abzuspeichern auf eine Variable um ihn dann mittels WVERWEIS Makro zuzuordnen

Code:
Set rng1 = Range("F15")
   
   Range("K40").Select
   
  ActiveCell.FormulaR1C1 = "=HLOOKUP(" & rng1 & "," & auswahl & ",1,TRUE)"
   Range("K40").Select

Allerdings liegt mein Fehler wahrscheinlich darin, das ich den Bereich nicht richtig "abegspeichert" bekomme um ihn dann im Wverweis Makro wiederzugeben

wie bekomme ich den Bereich denn ich suche von H11 bis Zelle vor "tofind" nenen wirs mal abgespeichert um ihn dann aufzurufen:
Code:
  Dim auswahl As Range
  Set auswahl = Rows(11).Find("tofind", LookIn:=xlValues, lookat:=xlWhole)
  If Not auswahl Is Nothing Then
      Range(Cells(11, 8), Cells(11, auswahl.Column - 1)).Select
  Else
      MsgBox "nix gefunden"
  End If

Ich muss hier whs :
Code:
Range(Cells(11, 8), Cells(11, auswahl.Column - 1)).Select

abspeichern. Nur wie??


LG
Also das was Du übergeben willst ist nicht die Auswahl.

Du willst nur den selektierten Bereich übergeben also die Selection.

Der BEreich ist also die Selection.Address.

Schau mal hier:

Code:
Sub test()

Dim auswahl As Range
  Set auswahl = Rows(11).Find(what:="tofind", LookIn:=xlValues, lookat:=xlWhole)
  If Not auswahl Is Nothing Then
      Range(Cells(11, 8), auswahl.Offset(0, -1)).Select
      Debug.Print Selection.Address
  Else
      MsgBox "nix gefunden"
  End If
End Sub



Gruß
Ich
Wie übergebe ich das dann in den Wverweis weil folgendes funktioniert nicht


Code:
   Set rng1 = Range("F15")
   
   Range("K40").Select
   
  ActiveCell.FormulaR1C1 = "=HLOOKUP(" & rng1 & "," & auswahl & ",1,TRUE)"



er gibt mir immer das i nder Zelle aus: =WVERWEIS(1;tofind;1;WAHR)


immer dieses "tofind" als Bereich und nicht die Auswahl bis "tofind"

LG
Hallo,
  Dim auswahl As Range
  Set auswahl = Rows(11).Find("tofind", LookIn:=xlValues, lookat:=xlWhole)
  If Not auswahl Is Nothing Then
      Set auswahl = Range(Cells(11, 8), Cells(11, auswahl.Column - 1))
  Else
      MsgBox "nix gefunden"
  End If
Gruß Uwe
Seiten: 1 2