Microsoft Excel

Herbers Excel/VBA-Archiv

Range in anderem Tabellenblatt

Betrifft: Range in anderem Tabellenblatt von: Thomas Weber
Geschrieben am: 16.08.2014 09:04:55

Guten Morgen,

ich habe in einer Prozedur für Tabelle1(Tabelle1) unten stehenden - einfachen - code.
Ich möchte einen dynamischen Bereich (Range) aus Tabelle 2 erstellen. Wo der Laufzeitfehler 1004 auftritt habe ich im code markiert. Der Code ist nur eine vereinfachte Version um zur Problemlösung zu kommen. Ich danke für Ideen, Anregungen und Hilfestellungen.

Private Sub ComboBox1_Change()

Dim wb As Workbook
Dim wks_d As Worksheet, wks_v As Worksheet
Dim rng_bereich As Range
Dim lng_ezeile As Long, lng_lzeile As Long, lng_spalte As Long
Set rng_bereich = Nothing
lng_lzeile = 0
Set wb = Application.ActiveWorkbook
Set wks_d = wb.Sheets("Tabelle2")
Set wks_v = wb.Sheets("Tabelle1")
lng_ezeile = 3
lng_lzeile = 19
lng_spalte = 3
lng_lzeile = wks_d.Cells(Rows.Count, lng_spalte).End(xlUp).Row
'hier tritt der Laufzeitfehler 1004 auf
'offensichtlich kann man kein .Range auf ein anderes Tabellenblatt stellen
'Aktiv ist das Sheet Tabelle1.
'Ich möchte jedoch nicht Sheets(Tabelle2).Activate verwenden
'Da verschiedene Prozeduren mit Workbook_Activate() losgetreten werden
Set rng_bereich = wks_d.Range(Cells(lng_ezeile, lng_spalte), Cells(lng_lzeile, lng_spalte))

End Sub

LG thowe

  

Betrifft: AW: Range in anderem Tabellenblatt von: Hajo_Zi
Geschrieben am: 16.08.2014 09:20:44

cells bezieht sich auf wks_d aber Rows auf die aktuelle Tabelle.

GrußformelHomepage


  

Betrifft: AW: Range in anderem Tabellenblatt von: Thomas Weber
Geschrieben am: 16.08.2014 09:31:11

danke Hajo für die Antwort

Ja, das stimmt: Cells soll/muss sich auf wks_d beziehen.
Woraus schließt du dass sich .Rows auf die aktuelle Tabelle (also aktive Tabelle, das ist .Sheet("Tabelle1")) bezieht...?
Was übersehe ich hier, kapiere ich hier nicht...?

Bitte nochmals um kurze Hilfestellung, Danke....


  

Betrifft: AW: Range in anderem Tabellenblatt von: Hajo_Zi
Geschrieben am: 16.08.2014 09:35:26

da vor Rows keine Tabelle steht oder habe ich das übersehen?

Gruß Hajo


  

Betrifft: AW: Range in anderem Tabellenblatt von: Thomas Weber
Geschrieben am: 16.08.2014 09:43:05

Hallo Hajo,

danke nochmals. Ich kapiere es nicht...!!!!

meinst du hier?

....
Set rng_bereich = wks_d.Range(Cells(lng_ezeile, lng_spalte), Cells(lng_lzeile, lng_spalte))
....

Wenn ja, wie müsste die Zeile aussehen...?
Wenn nein, wo müsste ich was/wie ändern...?

Offensichtlich bist du dem Problem schon sehr nahe...

Bitte um "konkrete" Hilfestellung.

Vielen herzlichen Dank
LG thowe


  

Betrifft: AW: Range in anderem Tabellenblatt von: Hajo_Zi
Geschrieben am: 16.08.2014 09:47:19

mit meinen Antworten beziehe ich mich auf das was im Beitrag steht

lng_lzeile = wks_d.Cells(Rows.Count, lng_spalte).End(xlUp).Row
    'hier tritt der Laufzeitfehler 1004 auf

Ich erstelle die Lösung für das was im Beitrag dargestellt wurde. Wird diese Darstellung geändert, überlasse ich anderen die Lösung, da ich schon eine Lösung erstellt hatte und dafür Zeit investiert habe. Ich arbeite nicht für den Papierkorb.
Gruß Hajo


  

Betrifft: AW: Range in anderem Tabellenblatt von: Thomas Weber
Geschrieben am: 16.08.2014 10:02:59

Hallo Hajo,

dein Hinweis hat schon gereicht.
Nochmals herzlichen Dank.
Konnte mir nicht vorstellen das ich vor Cells(..,..) nocheinmal das Worksheet vorstellen muss.
Nun klappt es. Offensichtlich muss die Lösung so lauten:

Sub ComboBox1_Change()
...
Set rng_bereich = wks_d.Range(wks_d.Cells(lng_ezeile, lng_spalte), wks_d.Cells(lng_lzeile,  _
lng_spalte))
...
End Sub

Recht herzlichen Dank nochmal!
LG thowe


  

Betrifft: AW: Range in anderem Tabellenblatt von: Luschi
Geschrieben am: 16.08.2014 10:37:34

Hallo thowe,

so ist es auch korrekt:

With wks_d
   Set rng_bereich = .Range(.Cells(lng_zeile, lng_spalte), .Cells(lng_lzeile, lng_spalte))
End With
Gruß von Luschi
aus klein-Paris

PS: beachte dabei die Punkte vor Range & Cells


  

Betrifft: AW: Range in anderem Tabellenblatt von: Thomas Weber
Geschrieben am: 16.08.2014 10:46:23

Danke Luschi,

habe inzwischen auf deine Lösung umgestellt gehabt....

Nochmals Danke!

LG thowe


  

Betrifft: AW: Range in anderem Tabellenblatt von: Adis
Geschrieben am: 16.08.2014 18:16:53

Hallo Luschi

Wo ist Klein Paris?

Gruss Adis


  

Betrifft: AW: Range in anderem Tabellenblatt von: Hajo_Zi
Geschrieben am: 16.08.2014 18:30:32

Hallo Adis,

Google
http://de.wikipedia.org/wiki/Klein-Paris

Gruß Hajo


 

Beiträge aus den Excel-Beispielen zum Thema "Range in anderem Tabellenblatt"