Microsoft Excel

Herbers Excel/VBA-Archiv

Set Range scheitert auf anderem Tabellenblatt | Herbers Excel-Forum


Betrifft: Set Range scheitert auf anderem Tabellenblatt von: Osito Frank
Geschrieben am: 24.02.2010 01:53:53

Hallo, könnte mir vielleicht jemand weiterhelfen?
Ich verzweifle gerade an einer scheinbar trivialen Sache, bekomme ständig Fehlermeldung wenn er in den gekennzeichneten Block läuft (ich habe da alle Varianten ausprobiert, die mir einfielen. Natürlich einzeln nacheinander).
Ich möchte hier einfach nur eine Zelle auf einem anderen Tabellenblatt als Ziel festlegen, wo ich dann vom aktiven Blatt aus Formeln hinkopiere.

Was mache ich bloß falsch?
Die Zeile (Set ZelleQuelle ...) oberhalb des Blocks funktioniert einwandfrei und hat ja die gleiche Struktur wie Set ZelleZiel.

Sub Nachgefragt()
    'Ich möchte Formeln aus dem aktiven Tabellenblatt als String in ein anderes _
    Tabellenblatt "FormelListe" kopieren
    
    Dim ZelleQuelle As Range, ZelleZiel As Range
    '...
    
    Set wbMappe = Application.ActiveWorkbook
    Set wsBlattQuelle = wbMappe.ActiveSheet
    Set wsBlattZiel = wbMappe.Worksheets("FormelListe")
    wsBlattQuelle.Activate      'Wir arbeiten auf dem Quellen-Worksheet
    
    Set ZelleQuelle = wsBlattQuelle.Range(Cells(z, s), Cells(z, s)) 'funzt OK!
    
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Funzt nicht !!!!!!!!!!!!!!!
    Set ZelleZiel = wsBlattZiel.Range(Cells(ZeileZiel, SpalteZiel), Cells(ZeileZiel, SpalteZiel) _
)
    Set ZelleZiel = wsBlattZiel.Cells(ZeileZiel, SpalteZiel)

    Set ZelleZiel = wbMappe.Worksheets("FormelListe").Range(Cells(ZeileZiel, SpalteZiel), _
          Cells(ZeileZiel, SpalteZiel))
    Set ZelleZiel = Worksheets("FormelListe").Range(Cells(ZeileZiel, SpalteZiel), _
          Cells(ZeileZiel, SpalteZiel))
    Set ZelleZiel = wbMappe.Worksheets("FormelListe").Cells(ZeileZiel, SpalteZiel)
    Set ZelleZiel = Worksheets("FormelListe").Cells(ZeileZiel, SpalteZiel)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Funzt nicht !!!!!!!!!!!!!!!
    
    '...
End Sub     'Nachgefragt

Herzlichen Dank im Voraus.

  

Betrifft: AW: Set Range scheitert auf anderem Tabellenblatt von: Peter
Geschrieben am: 24.02.2010 07:05:06

Hallo Frank

probier mal folgendes:

Set ZelleZiel = wsBlattZiel.Range(wsBlattZiel.Cells(ZeileZiel, SpalteZiel), wsBlattZiel.Cells(ZeileZiel, SpalteZiel) )

Gruß

Peter


  

Betrifft: AW: Set Range scheitert auf anderem Tabellenblatt von: Osito Frank
Geschrieben am: 24.02.2010 11:41:44

Hallo Peter,
danke für den Vorschlag, doch es geht leider auch damit nicht. Ich bekomme immer noch
Anwendungs- oder objektdefinierter Fehler
Gruß, Frank


  

Betrifft: AW: Set Range scheitert auf anderem Tabellenblatt von: Peter
Geschrieben am: 24.02.2010 16:00:11

Hallo Frank

lade doch bitte die Datei hoch...
Ich setzte die Frage auf offen.

Gruß

Peter


  

Betrifft: AW: Set Range scheitert auf anderem Tabellenblatt von: Osito Frank
Geschrieben am: 24.02.2010 16:33:00

Hallo Peter,
Jetzt hab ich es! Ganz ganz dummer Fehler von mir, tut mir leid. Du kannst meine Anfrage auch ganz löschen.
Hatte schlicht ZeileZiel falsch initialisiert, nämlich zu 0. Vor lauter Objekt-Hantieren und der objektbezogenen Fehlermeldung habe ich nur noch an die Ojekthierarchie gedacht, nicht an Integer. Sorry.

Zuletzt habe ich dann noch eine exotische Variante gefunden und probiert, die funktionierte und mich so auf die Integer-Spur geführt hat:
Set ZelleZiel = wsBlattZiel.Range("A1").Offset(ZeileZiel, SpalteZiel)

Gruß, Frank


Beiträge aus den Excel-Beispielen zum Thema "Set Range scheitert auf anderem Tabellenblatt"