Ansicht:   

#417571

Mike_R zur Homepage von Mike_R

Rosenheim,
12.11.2017, 16:30:09

VBA-Problem mit "Activate" (pc.sw.office)

Hi,

hab mich nach längerer Pause mal wieder mit VBA (Office 2007) beschäftigt und stehe nun gleich vor einem (ich denke nicht schwierigen, aber momentan für mich undurchschaubaren) Problem, bei dem ich wieder auf Eure Hilfe hoffe.

Ich habe eine Datei "test1.xlsm" geöffnet und möchte nun von einem darin enthaltenen Makro im selben Ordner die Datei "text2.xlsm" öffnen und dort einen Wert eintragen.
Bei der Zeile
Workbooks("test2.xlsm").Activate
kommt aber schon die Fehlermeldung
"Fehler beim Kompilieren Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft"
(obwohl natürlich die Datei in diesem Ordner vorhanden ist)

so dass die weiteren Anweisungen
Worksheets("Seite2").Select Cells(7, 10).Value = 444
gar nicht mehr abgearbeitet werden.
Hat ein Experte Ahnung, was da schief läuft?

Mike_R

#417576

AND

Leipzig,
12.11.2017, 18:01:32

@ Mike_R

VBA-Problem mit "Activate"

Hallo,

mußt Du die nicht öffnen mit:
workbooks.open "Deine Datei"

Activate ist für die einzelnen Tabellenblätter in einer Datei

--
Gruß aus Leipzig
Andreas

#417585

Mike_R zur Homepage von Mike_R

Rosenheim,
12.11.2017, 21:24:04

@ AND

VBA-Problem mit "Activate"

Hallo,

vielen Dank für die schnelle Antwort. In einem VBA-Tutorial war folgender Vorschlag aufgelistet:

....in einer nicht aktiven Arbeitsmappe:
Workbooks("DATEN2.XLS").Activate Worksheets("Sommer99").Select Cells(5,3).Select

Das mit "Workbooks.open...." hatte ich auch schon versucht, aber auch damit ernte ich nur Fehlermeldungen.
Es half auch nichts, dass ich versuchsweise zum Öffnen mal den kompletten Pfad (D:\Users\... usw.) angegeben habe.

Na ja, vielleicht kommt ja noch ein Tipp, der das Problem behebt.

Mike_R

#417586

manes zur Homepage von manes

Köln,
12.11.2017, 23:45:15

@ Mike_R

VBA-Problem mit "Activate"

Hallo

Grundsätzlich muss für die Aufgabenstellung die Zieldatei geöffnet werden.
Hier die in Betracht kommenden beiden Varianten. Bei der ersten wird sicherheitshalber mit DIR geprüft, ob die Datei auch tatsächlich gefunden werden kann.

Option Explicit
Const cStr_Datei As String = "C:PfadZiel.xlsm"

Sub Version1()
Dim wb1 As Workbook
Dim wb2 As Workbook
If Dir(cStr_Datei, vbNormal) <> "" Then
Set wb2 = Workbooks.Open(cStr_Datei)
wb2.Worksheets("Sommer99").Cells(7, 10) = 444
wb2.Close savechanges:=True
Else
MsgBox "Datei " & cStr_Datei & "nicht gefunden"
End If
End Sub

Sub Version2()
Dim obj As Object
Set obj = GetObject(cStr_Datei)
obj.Worksheets("Sommer99").Cells(8, 10) = 444
obj.Close savechanges:=True
End Sub

Viel Erfolg
Manes

--
Also wenn ich ehrlich sein sollte, müsste ich lügen!

#417611

neanderix

13.11.2017, 20:01:56

@ AND

VBA-Problem mit "Activate"

> Hallo,
>
> mußt Du die nicht öffnen mit:
> workbooks.open "Deine Datei"
>
> Activate ist für die einzelnen Tabellenblätter in einer Datei

Nö, mit "Activate" aktiviert man auch geladene Workbooks. Jedoch: ich arbeite grundsätzlich NICHT mit "Activate" und "Select" - stattdessen arbeite ich direkt auf dem Objekt.

--
Im übrigen bin ich der Meinung, dass der Gender-Neusprech bekämpft und eliminiert werden muss.

Probleme mit Windows? Reboot
Probleme mit Unix? Be root

#417612

neanderix

13.11.2017, 20:05:42

@ manes

VBA-Problem mit "Activate"

> Sub Version2()
> Dim obj As Object
> Set obj = GetObject(cStr_Datei)
> obj.Worksheets("Sommer99").Cells(8, 10) = 444

Hmmm... Streng genommen müsstest du hier vor obj.Worksheets....
doch erst mal prüfen, ob die Variable obj ein Objekt vom Typ "Workbook" enthält?!

Volker

--
Im übrigen bin ich der Meinung, dass der Gender-Neusprech bekämpft und eliminiert werden muss.

Probleme mit Windows? Reboot
Probleme mit Unix? Be root

#417613

Mike_R zur Homepage von Mike_R

Rosenheim,
13.11.2017, 22:13:12

@ manes

VBA-Problem mit "Activate"

Herzl. Dank für die weiteren Antworten, vor allem den ausführlichen Code von manes.
Mike_R

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz