Aktuell kann es Probleme bei der Anmeldung mit dem Chrome oder Edge Browser geben. Ihr müsstet in die Einstellungen des Browsers gehen und Cache, Cookies und sofern vorhanden, gespeicherte Passwörter vom CEF löschen oder alternativ auf einen anderen Browser ausweichen. Ursache sind vermutlich kürzliche Browserupdates. x

Office 365: Excel vba: Zellwert aus geschlossener Arbeitsmappe
#1
Guten morgen zusammen,

habe schon wieder eine Frage an dieses kompetente Forum.

Aus einer geschlossenen Arbeitsmappe möchte ich einen Zellwert auslesen.
Mitfolgender Codezeile funktioniert das auch super:
Code: [Auswählen]
 
Code:
 Cells(6, colTarget2).Value = ExecuteExcel4Macro(quelle & Cells(rowQuell, colQuell).Address(ReferenceStyle:=x1R1C1))
Um variabler zu sein möchte ich die Zelle aber mit einem definierten Namen ansprechen zB. so:
Code: [Auswählen]
Code:
Cells(6, colTarget2).Value = ExecuteExcel4Macro(quelle & Range("Testname").Address(ReferenceStyle:=x1R1C1))
Das funktioniert aber leider nicht - da bekomme ich die Fehlermeldung: Die Methode Range für das Objekt_Global ist fehlgeschlagen!
Was mach ich da falsch bzw. wie müsste die Codezeile abgeändert werden?

Für einen Lösungsvorschlag wäre ich dankbar!

Wünsche noch einen schönen Tag
Erich
Top
#2
Hallo Erich, :19:

persönlich arbeite ich nicht mehr mit "ExecuteExcel4Macro" - macht zuviel Probleme und ist nicht flexibel genug. Probiere es mal so: :21:

Code:
Option Explicit
Const strSheetQ As String = "Tabelle1" ' DIE Tabelle wird ausgelesen"
Const strSheetZ As String = "Tabelle1" ' Die Tabelle in DIESER Datei
Const strQuelle As String = "TestName" ' Der Bereich mit definiertem Namen
Const strZiel As String = "E7" ' Die Zielzelle in DIESER Datei
Const strFile As String = "C:\Temp\08_Datei.xlsx" ' Pfad und Datei
Public Sub Main()
    With ThisWorkbook.Worksheets(strSheetZ)
        .Range(strZiel).Formula = "='" & Mid(strFile, 1, _
            InStrRev(strFile, "\")) & "[" & _
            Mid(strFile, InStrRev(strFile, _
            "\") + 1) & "]" & _
            strSheetQ & "'!" & strQuelle
            .Range(strZiel).Formula = .Range(strZiel).Value
    End With
End Sub
Public Sub Main_1()
    Dim strQuellSheet As String
    Dim strZielSheet As String
    Dim strDefName As String
    Dim strZielZelle As String
    Dim strDatei As String
    With Tabelle1
        strQuellSheet = .Range("A10").Text
        strZielSheet = .Range("A11").Text
        strDefName = .Range("A12").Text
        strZielZelle = .Range("A13").Text
        strDatei = .Range("A14").Text
    End With
    With ThisWorkbook.Worksheets(strZielSheet)
        .Range(strZielZelle).Formula = "='" & Mid(strDatei, 1, _
            InStrRev(strDatei, "\")) & "[" & _
            Mid(strDatei, InStrRev(strDatei, _
            "\") + 1) & "]" & _
            strQuellSheet & "'!" & strDefName
            .Range(strZielZelle).Formula = .Range(strZielZelle).Value
    End With
End Sub

Du arbeitest entweder mit der Sub "Main" und den dazugehörigen Konstanten, oder mit der Sub "Main_1" - da werden die Daten wie definierter Name, Quelltabellenblatt usw. aus bestimmten Zellen geholt.
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • sharky51
Top
#3
Hallo und vielen Dank für die Lösungsvorschläge.

Habe mich mal mit der Main-Version beschäftigt - leider ohne Erfolg.
Es kommt die Fehlermeldung: Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler.

Die Angaben die ich gemacht habe sind folgende:
Code:
Option Explicit

Const strSheetQ As String = "BMS-Vergleich" ' DIE Tabelle wird ausgelesen"
Const strSheetZ As String = "Checkliste Home All" ' Die Tabelle in DIESER Datei
Const strQuelle As String = "BMS_2018" ' Der Bereich mit definiertem Namen
Const strZiel As String = "BMS_Test" ' Die Zielzelle in DIESER Datei
Const strFile As String = "D:\xyz\Office\Excel\Aktuell\1.1_XYZ1_V2018.xlsm" ' Pfad und Datei

Hast Du ev. noch ne Idee an was es hapern könnte?
Top
#4
Hallo Erich, :19:

hab es mal mit allen Konstanten von Dir getestet - es geht. :21:

Den 1004er bekomme ich z. B. wenn einer der definierten Namen nicht stimmt.
[-] Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:
  • sharky51
Top
#5
Ups, dann muss ich nochmals testen.

Geht aber erst morgen.

Vielen Dank für die Rückmeldung, melde mich wenn ich nicht weiterkomme.
Top


Gehe zu:


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