Thema Datum  Von Nutzer Rating
Antwort
03.05.2017 13:42:39 Felix
NotSolved
03.05.2017 17:15:31 Mackie
NotSolved
Rot Laufzeitfehler 438: Startmakro Commandbutton Eigenschaften ändern
04.05.2017 08:42:02 Gast78357
NotSolved
10.05.2017 11:34:35 Felix
Solved

Ansicht des Beitrags:
Von:
Gast78357
Datum:
04.05.2017 08:42:02
Views:
851
Rating: Antwort:
  Ja
Thema:
Laufzeitfehler 438: Startmakro Commandbutton Eigenschaften ändern

Hi Mackie,
bringt leider auch den gleichen Fehler...
Außerdem: habe den Fehler auch, wenn ich nur 1 Mappe B mit der Mappe A verknüpfe; und wäre keine optimale Lösung, da die Dateinamen variabel sind.

hier mal die Details:

Der Code zum Verknüpfen von mehreren Arbeitsmappen B in die Arbeitsmappe A: (Code ist in der Arbeitsmappe A, wird über Userform gestartet)
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
   Sub Verknüpfen()
     ThisWorkbook.Unprotect Password:=""
   
    Dim i               As Long
    Dim j               As Long
    Dim k               As Long
    Dim l               As Long
    Dim sPfad           As String
    Dim sDatei          As String
    Dim sDateipfad      As String
    Dim oTargetBook     As Object
    Dim oSourceBook     As Object
 
     
    Set oTargetBook = ThisWorkbook
   
Application.ScreenUpdating = False 'Das "Flackern" ausstellen
 
    k = Projekte_Verknüpfen.ComboBox1.Value
 
    If Not k = "0" Then
     
     
    l = k
     
     
    Else
     
    l = 1
    k = 20
     
     
    End If
     
     
        
    For i = l To k
 
         
        sDatei = oTargetBook.Worksheets("Programmdeckblatt").Cells(54 + i, 2)
        sPfad = oTargetBook.Worksheets("Programmdeckblatt").Cells(54 + i, 1)
 
    sDateipfad = sPfad & sDatei
     
    If Not sDateipfad = "" Then
 
'XXXX HIER STOPPT DAS MAKRO / FEHLER / DEBUGGER BLEIBT HÄNGEN XXXX
    Set oSourceBook = Workbooks.Open(sDateipfad, False, False)
'XXXX HIER STOPPT DAS MAKRO / FEHLER / DEBUGGER BLEIBT HÄNGEN XXXX
     
    oSourceBook.Worksheets("Transfer").Rows("1:1").Copy
     
    oTargetBook.Worksheets("Verknuepfung").Activate
    oTargetBook.Worksheets("Verknuepfung").Cells(i, 1).Select
    ActiveSheet.Paste Link:=True
     
    
    oTargetBook.Worksheets("Programmdeckblatt").Range("G16").Copy
     
    With oSourceBook.Worksheets("Projektdeckblatt").Activate
    oSourceBook.Worksheets("Projektdeckblatt").Range("Y9").Select
    ActiveSheet.Paste Link:=True
    End With
     
     
    oTargetBook.Worksheets("Programmdeckblatt").Range("AQ23:AQ28").Copy
     
    With oSourceBook.Worksheets("Projektdeckblatt").Activate
    oSourceBook.Worksheets("Projektdeckblatt").Range("AP23:AP28").PasteSpecial xlPasteValues
    End With
     
    oTargetBook.Worksheets("Programmdeckblatt").Range("AQ30").Copy
     
    With oSourceBook.Worksheets("Projektdeckblatt").Activate
    oSourceBook.Worksheets("Projektdeckblatt").Range("AP30").PasteSpecial xlPasteValues
    End With
     
     
    oSourceBook.Worksheets("Projektdeckblatt").Range("A80").Value = ThisWorkbook.FullName
    oSourceBook.Worksheets("Projektdeckblatt").Range("A81").Value = ThisWorkbook.Name
    oSourceBook.Worksheets("Projektdeckblatt").Range("AA80").Value = oTargetBook.Worksheets("Programmdeckblatt").Range("AA80").Value
    oSourceBook.Worksheets("Projektdeckblatt").Range("AA81").Value = oTargetBook.Worksheets("Programmdeckblatt").Range("AA81").Value
     
     
    Application.CutCopyMode = False
 
    Workbooks(sDatei).Close True
    End If
     
    Next
    
    
    
    For j = 1 To 20
     
    If oTargetBook.Worksheets("Kalkulationen").Cells(149 + j, 2).Value > 0 Then
    oTargetBook.Worksheets("Kalkulationen").Rows(149 + j).Hidden = False
    Else
    oTargetBook.Worksheets("Kalkulationen").Rows(149 + j).Hidden = True
    End If
     
    Next
   
    
     oTargetBook.Worksheets("Programmdeckblatt").Activate
      
 
    If Err Then MsgBox Err.Description, , "Fehler: " & Err
     
Application.ScreenUpdating = True
ThisWorkbook.Protect Structure:=True, Windows:=False
      
End Sub

 

Da ich die eine Zeile oben, bei der der Fehler auftritt, nicht verändert habe, muss es an der dort aufgerufenen Datei liegen.
Also an der jeweiligen Arbeitsmappe B
Und durch auskommentieren, Haltepunkte und Msgbox habe ich den Fehler gefunden. Nur eben noch keine Lösung:

Hier das Startmakro und Closemakro von Arbeitsmappe B: (Code logischerweise in der Arbeitsmappe B)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub Workbook_Open()
Application.ScreenUpdating = False
   
  ThisWorkbook.Unprotect Password:=""
 
    Dim myWorksheet As Worksheet
    For Each myWorksheet In ThisWorkbook.Worksheets
        myWorksheet.Protect Password:="", UserInterFaceOnly:=True
    Next
  
Call VerknüpfenMS_Start
 
Call Check_CMDButton
 
    ThisWorkbook.Protect Structure:=True, Windows:=False
 Application.ScreenUpdating = True
  
 Application.DisplayAlerts = False
  
End Sub


 

1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  ThisWorkbook.Unprotect Password:=""
 
 Application.ScreenUpdating = False
  
Call VerknüpfenMS_Start
Call Check_CMDButton
 
  ThisWorkbook.Protect Password:=""
 Application.ScreenUpdating = True
End Sub

Das hat davor schon problemlos funktioniert. Ich habe bloß die Zeile "Call Check_CMDButton" eingefügt.

Also hier noch das Makro "Check_CMDButton" (Code ebenfalls nur in der Arbeitsmappe B enthalten)
 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub Check_CMDButton()
    Dim wb As Object
    Set wb = ThisWorkbook
     
  wb.Unprotect Password:=""
   
'Commandbuttons färben
        If wb.Sheets("Projektdeckblatt").Range("A62").Value > 0 Then
            wb.Sheets("Projektdeckblatt").CommandButton2.BackColor = &HFF00&
        Else
            wb.Sheets("Projektdeckblatt").CommandButton2.BackColor = &H80FF&
        End If
     
         
        If wb.Sheets("Projektdeckblatt").Range("A80").Value > 0 Then
            wb.Sheets("Projektdeckblatt").CommandButton7.BackColor = &HFF00&
        Else
            wb.Sheets("Projektdeckblatt").CommandButton7.BackColor = &H80FF&
        End If
         
  
       If wb.Sheets("Projektdeckblatt").Range("AA80").Value > 0 Then
            wb.Sheets("Projektdeckblatt").CommandButton8.BackColor = &H80FFFF
        Else
            wb.Sheets("Projektdeckblatt").CommandButton8.BackColor = &H80FF&
        End If
         
        wb.Protect Structure:=True, Windows:=False
End Sub

Vorher hatte ich noch "Thisworkbook" überall statt "wb" stehen. das brachte auch keinen Unterschied.
Mit dem richtigen Namen der Arbeitsmappe habe ich es auch schon  versucht -> gleiches Ergebnis.
Starte ich manuell Arbeitsmappe B, funktioniert es ; Verknüpfe ich Arbeitsmappe B mit Arbeitsmappe A kommt der Laufzeitfehler

Keine Ahnung was hier schief geht und warum es zu einem Fehler kommt, wenn ich Arbeitsmappe B über eine andere Exceldatei aufrufe.
Vor allem die Fehlermeldung "Laufzeitfehler 438 . Das Objekt unterstützt diese Eigenschaft oder Methode nicht"
Warum sollte es beim Verknüpfen die Eigenschaft nicht mehr unterstützen, wo es doch im Standalone funktioniert? (Also wenn die Datei manuell aufgerufen wird.

Ich schätze mir fehlen hier einfach die tieferen Kenntnisse... Habe mir das meiste selbst beigebracht ^^

Danke schonmal

LG


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
03.05.2017 13:42:39 Felix
NotSolved
03.05.2017 17:15:31 Mackie
NotSolved
Rot Laufzeitfehler 438: Startmakro Commandbutton Eigenschaften ändern
04.05.2017 08:42:02 Gast78357
NotSolved
10.05.2017 11:34:35 Felix
Solved