Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

WVERWEIS mit Makro
#1
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
Antworten Top
#2
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.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
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!
]
Antworten Top
#4
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
Antworten Top
#5
Nein funktioniert leider nicht.

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

Also von Spalte "H" bis eine Spalte vor der Fundstelle.
Antworten Top
#7
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
Antworten Top
#8
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
Antworten Top
#9
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
Antworten Top
#10
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste