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:
649
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)
 

   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)

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


 

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)
 

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