Registriert seit: 11.10.2016
Version(en): 2007
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
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
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.
Registriert seit: 11.10.2016
Version(en): 2007
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!]
Registriert seit: 21.07.2016
Version(en): 2007
11.10.2016, 12:05
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2016, 12:05 von IchBinIch.
Bearbeitungsgrund: Korrektur
)
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
Registriert seit: 11.10.2016
Version(en): 2007
Nein funktioniert leider nicht.
Beim "Platzhalter" setzt er mir immer "tofind" hinein und nicht den ausgewählten bereich
Registriert seit: 21.07.2016
Version(en): 2007
11.10.2016, 12:35
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2016, 12:36 von IchBinIch.)
Achso... Du willst den durchsuchten Bereich ohne die Fundstelle selektieren?
Also von Spalte "H" bis eine Spalte vor der Fundstelle.
Registriert seit: 11.10.2016
Version(en): 2007
11.10.2016, 12:55
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2016, 12:55 von Kash.)
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
Registriert seit: 21.07.2016
Version(en): 2007
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
Registriert seit: 11.10.2016
Version(en): 2007
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
|