Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1508to1512
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Matrix in anderem Blatt als Range speichern
16.08.2016 11:25:23
Denis
Hallo zusammen,
nachdem ich mich seit gestern Mittag damit rumschlage und auch Google mir keine vernünftige Lösung liefert, frage ich doch endlich mal nach... Ich möchte einen Bereich in einem anderen Tabellenblatt einer Ursprungsdatei per Inputbox markieren (Inputbox, weil sich die jeweilige Ursprungsdatei ständig in ihrem Aufbau ändert) und diese Eingabe als Range abspeichern. Soweit, so gut. Aber wenn ich dieses Range-Objekt später ansprechen will, klappt es nicht, geschweige denn, das Range in einer Formel zu verwenden....
bisheriger Code:
Sub MonatZuWoche()
'
' MonatZuWoche Makro
'
Dim FCBereich As Range
...
Dim FCBereich As Range
...
Set FCBereich = Application.InputBox(prompt:="Forecast markieren" & vbCr & "(inkl. Überschriften)", Type:=8)
wird per Maus in Tabellenblatt1 ausgewählt, beispielsweise $J$2:$Q$32
Sheets.Add After:=Sheets(Sheets.Count)
FCBereich.Select
(wird in Tabellenblatt 2 eingegeben) Laufzeitfehler 1004: Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
und wenn ich schon schreibe... wie kann ich so ein Range anschließend in eine Formel einbauen? die folgende scheint auch nicht zu funktionieren (Formel an sich funktioniert, aber wenn ich das aufzeichne, will ich den aufgezeichneten Bereich durch das Range-Objekt ersetzen weil sich das wie gesagt ständig ändert)
ActiveCell.FormulaR1C1 = _
"=HLOOKUP(MONTH(R1C)," & FCBereich & ",ROW(RC[-1])-1,FALSE)/DAY(DATE(YEAR(R1C),MONTH(R1C)+1,1)-1)"
ich hoffe ich konnte einigermaßen ausdrücken wo mein Schuh grade drückt

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 11:38:05
Michael
Hallo!
Wenn Du den aus der Inputbox gewählten Bereich zuweist, weist Du ja einen Bereich auf einem ganz konkreten Blatt zu - d.h. Blatt1!A1:D2 kann natürlich nicht im Blatt2!A1:D2 ausgewählt werden.
Du musst also die reine Zelladresse Deines zugewiesenen Bereichs verwenden, schematisch:
Sub a()
Dim DerBereich As Range
Set DerBereich = Application.InputBox(prompt:="Bereich wählen", Type:=8)
Sheets.Add
With ActiveSheet
.Range(DerBereich.Address).Select
End With
End Sub
Genauso dann in einer Formel:
Cells(7, 1).FormulaLocal = "=Anzahl2(" & DerBereich.Address & ")"
LG
Michael
Anzeige
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 11:59:20
Denis
Hallo Michael,
genau das ist es doch was ich möchte. Wenn ich FCBereich anspreche soll er sich immer auf Blatt1 beziehen. in deinem Beispiel markiert er jetzt die Felder in Blatt2... aber es ist schon mal schön, dass keine Fehlermeldung kommt :-)
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 12:27:29
Michael
Hallo!
Ich lasse jetzt mal dahingestellt, warum Du Bereich auswählen (.select) wilsst - das ist fast nie notwendig.
Aber auf Deine Frage bezogen, wenn Du den per Inputbox gewählten Bereich immer auf Blatt1 wählen willst, muss dieses Blatt natürlich auch aktiv sein:
Sub b()
Dim r As Range
Set r = Application.InputBox(prompt:="Bereich wählen", Type:=8)
r.Select
Sheets.Add
With Worksheets("Tabelle1")
.Activate
.Range(r.Address).Select
End With
End Sub
LG
Michael
Anzeige
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 12:39:17
Denis
ich hab das select der Kontrolle halber eingebaut, damit ich sehen kann ob er überhaupt die richtigen Zellen anspricht. Aber das Aktivieren ist mal wieder vollkommen in meinem Kopf untergegangen....
wie sähe das den dann in der Formel aus? also wenn ich innerhalb einer Formel, die in Blatt 2 steht, den Bereich aus Blatt1 in Form des Range-Objektes auswählen will (als Matrix für einen WVerweis)?
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 12:57:51
Michael
Hallo,
Sub b()
Dim r As Range
Set r = Application.InputBox(prompt:="Bereich wählen", Type:=8)
'Bereich auf Blatt 1 auswählen
With Worksheets("Tabelle1")
.Activate
.Range(r.Address).Select
End With
'Bereich im Blatt 2 in Formel nutzen (hier zB in A5)
With Worksheets("Tabelle2")
.Cells(5, 1).FormulaLocal = "=WVERWEIS(A4;Tabelle1!" & r.Address & ";2;FALSCH)"
'oder alternativ...
.Cells(5, 1).FormulaLocal = "=WVERWEIS(A4;" & Worksheets("Tabelle1").Name & "!" & r. _
Address & ";2;FALSCH)"
End With
End Sub
LG
Michael
Anzeige
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 11:40:04
Matthias
Hallo
Probiers mal die Zelladresse als String-Übergabe
Option Explicit
Sub MonatZuWoche()
' MonatZuWoche Makro
Dim FCBereich$
FCBereich = Application.InputBox(prompt:="Forecast markieren" & vbCr & "(inkl. Überschriften)", _
Type:=8).Address
'wird per Maus in Tabellenblatt1 ausgewählt, beispielsweise $J$2:$Q$32
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Range(FCBereich).Select
End Sub

evtl geht der Druck im linken Schuh damit schon weg ;-)
Gruß Matthias
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 12:20:01
Denis
da markiert er aber die entsprechenden Felder in Blatt2. Er soll sich aber auf die Felder in Blatt1 beziehen....
Anzeige
AW: Matrix in anderem Blatt als Range speichern
16.08.2016 11:43:12
Fennek
Hallo,
hier ein Beispiel, wie String (aus Inputbox) als Range-Adresse übergeben werden.
https://www.herber.de/bbs/user/107646.xlsm
mfg

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige