Clever-Excel-Forum

Normale Version: Probleme beim speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

wenn ich über den normalen Excel Speicherbutton speichere funktioniert mein Code einwandfrei (BeforeSave), sobald ich aber über den im Menü selbst platzierten Button ("RibbonX") speichere bricht mein Code an grün markierter stelle ab (Im Code ziemlich weit unten) und scheinbar wird auch die "technik.xlsm" auch nicht geöffnet, deswegen bricht er auch da ab, verstehe aber nicht warum.
Woran kann das liegen ? Hat jemand eine Idee ?


Code:
[b]Code für RibbonX (ohne untere Codes funktioniert dieser einwandfrei)[/b]
Sub speichern(Control As IRibbonControl)
ThisWorkbook.Save
End Sub


[b]Codes neu hinzugefügt:[/b]
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Call Technik_go
End Sub

__________________________________________________________________________

Option Explicit
Public Sub Technik_go()

Dim wbStart, wbZiel As Workbook
Dim arrProtect, wks As Worksheet
Dim loLetzte As Long, raFund As Range

Application.ScreenUpdating = False

Application.CutCopyMode = True

Worksheets("Technik").Activate

With Worksheets("Technik")
 
  'KW
  .Range("A2").Resize(21) = Worksheets("Zeiten").Range("A3")
 
  'Montag Frühschicht____________________________________________
 
  'Wochentag
  .Range("B2").Value = Worksheets("Zeiten").Range("C1")
  'Datum
  .Range("C2").Value = Worksheets("Zeiten").Range("E2")
  'Schicht
  .Range("D2").Value = Worksheets("Zeiten").Range("E1")
  'Dauer(min)
  .Range("E2").Value = Worksheets("Zeiten").Range("C142")
  'Anzahl(#)
  .Range("F2").Value = Worksheets("Zeiten").Range("D142")
  'OE-Verlust(%)
  .Range("G2").Value = Worksheets("Zeiten").Range("E142")
  'OE(%)
  .Range("H2").Value = Worksheets("Zeiten").Range("E251")
 
  'Montag Spätschicht____________________________________________
 
  'Wochentag
  .Range("B3").Value = Worksheets("Zeiten").Range("I1")
  'Datum
  .Range("C3").Value = Worksheets("Zeiten").Range("K2")
  'Schicht
  .Range("D3").Value = Worksheets("Zeiten").Range("K1")
  'Dauer(min)
  .Range("E3").Value = Worksheets("Zeiten").Range("I142")
  'Anzahl(#)
  .Range("F3").Value = Worksheets("Zeiten").Range("J142")
  'OE-Verlust(%)
  .Range("G3").Value = Worksheets("Zeiten").Range("K142")
  'OE(%)
  .Range("H3").Value = Worksheets("Zeiten").Range("K251")
 
  'Montag Nachtschicht___________________________________________
 
  'Wochentag
  .Range("B4").Value = Worksheets("Zeiten").Range("O1")
  'Datum
  .Range("C4").Value = Worksheets("Zeiten").Range("Q2")
  'Schicht
  .Range("D4").Value = Worksheets("Zeiten").Range("Q1")
  'Dauer(min)
  .Range("E4").Value = Worksheets("Zeiten").Range("O142")
  'Anzahl(#)
  .Range("F4").Value = Worksheets("Zeiten").Range("P142")
  'OE-Verlust(%)
  .Range("G4").Value = Worksheets("Zeiten").Range("Q142")
  'OE(%)
  .Range("H4").Value = Worksheets("Zeiten").Range("Q251")
 

  'Dienstag Frühschicht____________________________________________
 
  'Wochentag
  .Range("B5").Value = Worksheets("Zeiten").Range("Z1")
  'Datum
  .Range("C5").Value = Worksheets("Zeiten").Range("AB2")
  'Schicht
  .Range("D5").Value = Worksheets("Zeiten").Range("AB1")
  'Dauer(min)
  .Range("E5").Value = Worksheets("Zeiten").Range("Z142")
  'Anzahl(#)
  .Range("F5").Value = Worksheets("Zeiten").Range("AA142")
  'OE-Verlust(%)
  .Range("G5").Value = Worksheets("Zeiten").Range("AB142")
  'OE(%)
  .Range("H5").Value = Worksheets("Zeiten").Range("AB251")
 
  'Dienstag Spätschicht____________________________________________
 
  'Wochentag
  .Range("B6").Value = Worksheets("Zeiten").Range("AF1")
  'Datum
  .Range("C6").Value = Worksheets("Zeiten").Range("AH2")
  'Schicht
  .Range("D6").Value = Worksheets("Zeiten").Range("AH1")
  'Dauer(min)
  .Range("E6").Value = Worksheets("Zeiten").Range("AF142")
  'Anzahl(#)
  .Range("F6").Value = Worksheets("Zeiten").Range("AG142")
  'OE-Verlust(%)
  .Range("G6").Value = Worksheets("Zeiten").Range("AH142")
  'OE(%)
  .Range("H6").Value = Worksheets("Zeiten").Range("AH251")
 
  'Dienstag Nachtschicht___________________________________________
 
  'Wochentag
  .Range("B7").Value = Worksheets("Zeiten").Range("AL1")
  'Datum
  .Range("C7").Value = Worksheets("Zeiten").Range("AN2")
  'Schicht
  .Range("D7").Value = Worksheets("Zeiten").Range("AN1")
  'Dauer(min)
  .Range("E7").Value = Worksheets("Zeiten").Range("AL142")
  'Anzahl(#)
  .Range("F7").Value = Worksheets("Zeiten").Range("AM142")
  'OE-Verlust(%)
  .Range("G7").Value = Worksheets("Zeiten").Range("AN142")
  'OE(%)
  .Range("H7").Value = Worksheets("Zeiten").Range("AN251")
 
  'Mittwoch Frühschicht____________________________________________
 
  'Wochentag
  .Range("B8").Value = Worksheets("Zeiten").Range("AW1")
  'Datum
  .Range("C8").Value = Worksheets("Zeiten").Range("AY2")
  'Schicht
  .Range("D8").Value = Worksheets("Zeiten").Range("AY1")
  'Dauer(min)
  .Range("E8").Value = Worksheets("Zeiten").Range("AW142")
  'Anzahl(#)
  .Range("F8").Value = Worksheets("Zeiten").Range("AX142")
  'OE-Verlust(%)
  .Range("G8").Value = Worksheets("Zeiten").Range("AY142")
  'OE(%)
  .Range("H8").Value = Worksheets("Zeiten").Range("AY251")
 
  'Mittwoch Spätschicht____________________________________________
 
  'Wochentag
  .Range("B9").Value = Worksheets("Zeiten").Range("BC1")
  'Datum
  .Range("C9").Value = Worksheets("Zeiten").Range("BE2")
  'Schicht
  .Range("D9").Value = Worksheets("Zeiten").Range("BE1")
  'Dauer(min)
  .Range("E9").Value = Worksheets("Zeiten").Range("BC142")
  'Anzahl(#)
  .Range("F9").Value = Worksheets("Zeiten").Range("BD142")
  'OE-Verlust(%)
  .Range("G9").Value = Worksheets("Zeiten").Range("BE142")
  'OE(%)
  .Range("H9").Value = Worksheets("Zeiten").Range("BE251")
 
  'Mittwoch Nachtschicht___________________________________________
 
  'Wochentag
  .Range("B10").Value = Worksheets("Zeiten").Range("BI1")
  'Datum
  .Range("C10").Value = Worksheets("Zeiten").Range("BK2")
  'Schicht
  .Range("D10").Value = Worksheets("Zeiten").Range("BK1")
  'Dauer(min)
  .Range("E10").Value = Worksheets("Zeiten").Range("BI142")
  'Anzahl(#)
  .Range("F10").Value = Worksheets("Zeiten").Range("BJ142")
  'OE-Verlust(%)
  .Range("G10").Value = Worksheets("Zeiten").Range("BK142")
  'OE(%)
  .Range("H10").Value = Worksheets("Zeiten").Range("BK251")

  'Donnerstag Frühschicht____________________________________________
 
  'Wochentag
  .Range("B11").Value = Worksheets("Zeiten").Range("BT1")
  'Datum
  .Range("C11").Value = Worksheets("Zeiten").Range("BV2")
  'Schicht
  .Range("D11").Value = Worksheets("Zeiten").Range("BV1")
  'Dauer(min)
  .Range("E11").Value = Worksheets("Zeiten").Range("BT142")
  'Anzahl(#)
  .Range("F11").Value = Worksheets("Zeiten").Range("BU142")
  'OE-Verlust(%)
  .Range("G11").Value = Worksheets("Zeiten").Range("BV142")
  'OE(%)
  .Range("H11").Value = Worksheets("Zeiten").Range("BV251")
 
  'Donnerstag Spätschicht____________________________________________
 
  'Wochentag
  .Range("B12").Value = Worksheets("Zeiten").Range("BZ1")
  'Datum
  .Range("C12").Value = Worksheets("Zeiten").Range("CB2")
  'Schicht
  .Range("D12").Value = Worksheets("Zeiten").Range("CB1")
  'Dauer(min)
  .Range("E12").Value = Worksheets("Zeiten").Range("BZ142")
  'Anzahl(#)
  .Range("F12").Value = Worksheets("Zeiten").Range("CA142")
  'OE-Verlust(%)
  .Range("G12").Value = Worksheets("Zeiten").Range("CB142")
  'OE(%)
  .Range("H12").Value = Worksheets("Zeiten").Range("CB251")
 
  'Donnerstag Nachtschicht___________________________________________
 
  'Wochentag
  .Range("B13").Value = Worksheets("Zeiten").Range("CF1")
  'Datum
  .Range("C13").Value = Worksheets("Zeiten").Range("CH2")
  'Schicht
  .Range("D13").Value = Worksheets("Zeiten").Range("CH1")
  'Dauer(min)
  .Range("E13").Value = Worksheets("Zeiten").Range("CF142")
  'Anzahl(#)
  .Range("F13").Value = Worksheets("Zeiten").Range("CG142")
  'OE-Verlust(%)
  .Range("G13").Value = Worksheets("Zeiten").Range("CH142")
  'OE(%)
  .Range("H13").Value = Worksheets("Zeiten").Range("CH251")

  'Freitag Frühschicht____________________________________________
 
  'Wochentag
  .Range("B14").Value = Worksheets("Zeiten").Range("CQ1")
  'Datum
  .Range("C14").Value = Worksheets("Zeiten").Range("CS2")
  'Schicht
  .Range("D14").Value = Worksheets("Zeiten").Range("CS1")
  'Dauer(min)
  .Range("E14").Value = Worksheets("Zeiten").Range("CQ142")
  'Anzahl(#)
  .Range("F14").Value = Worksheets("Zeiten").Range("CR142")
  'OE-Verlust(%)
  .Range("G14").Value = Worksheets("Zeiten").Range("CS142")
  'OE(%)
  .Range("H14").Value = Worksheets("Zeiten").Range("CS251")
 
  'Freitag Spätschicht____________________________________________
 
  'Wochentag
  .Range("B15").Value = Worksheets("Zeiten").Range("CW1")
  'Datum
  .Range("C15").Value = Worksheets("Zeiten").Range("CY2")
  'Schicht
  .Range("D15").Value = Worksheets("Zeiten").Range("CY1")
  'Dauer(min)
  .Range("E15").Value = Worksheets("Zeiten").Range("CW142")
  'Anzahl(#)
  .Range("F15").Value = Worksheets("Zeiten").Range("CX142")
  'OE-Verlust(%)
  .Range("G15").Value = Worksheets("Zeiten").Range("CY142")
  'OE(%)
  .Range("H15").Value = Worksheets("Zeiten").Range("CY251")
 
  'Freitag Nachtschicht___________________________________________
 
  'Wochentag
  .Range("B16").Value = Worksheets("Zeiten").Range("DC1")
  'Datum
  .Range("C16").Value = Worksheets("Zeiten").Range("DE2")
  'Schicht
  .Range("D16").Value = Worksheets("Zeiten").Range("DE1")
  'Dauer(min)
  .Range("E16").Value = Worksheets("Zeiten").Range("DC142")
  'Anzahl(#)
  .Range("F16").Value = Worksheets("Zeiten").Range("DD142")
  'OE-Verlust(%)
  .Range("G16").Value = Worksheets("Zeiten").Range("DE142")
  'OE(%)
  .Range("H16").Value = Worksheets("Zeiten").Range("DE251")

  'Samstag Frühschicht____________________________________________
 
  'Wochentag
  .Range("B17").Value = Worksheets("Zeiten").Range("DN1")
  'Datum
  .Range("C17").Value = Worksheets("Zeiten").Range("DP2")
  'Schicht
  .Range("D17").Value = Worksheets("Zeiten").Range("DP1")
  'Dauer(min)
  .Range("E17").Value = Worksheets("Zeiten").Range("DN142")
  'Anzahl(#)
  .Range("F17").Value = Worksheets("Zeiten").Range("DO142")
  'OE-Verlust(%)
  .Range("G17").Value = Worksheets("Zeiten").Range("DP142")
  'OE(%)
  .Range("H17").Value = Worksheets("Zeiten").Range("DP251")
 
  'Samstag Spätschicht____________________________________________
 
  'Wochentag
  .Range("B18").Value = Worksheets("Zeiten").Range("DT1")
  'Datum
  .Range("C18").Value = Worksheets("Zeiten").Range("DV2")
  'Schicht
  .Range("D18").Value = Worksheets("Zeiten").Range("DV1")
  'Dauer(min)
  .Range("E18").Value = Worksheets("Zeiten").Range("DT142")
  'Anzahl(#)
  .Range("F18").Value = Worksheets("Zeiten").Range("DU142")
  'OE-Verlust(%)
  .Range("G18").Value = Worksheets("Zeiten").Range("DV142")
  'OE(%)
  .Range("H18").Value = Worksheets("Zeiten").Range("DV251")
 
  'Samstag Nachtschicht___________________________________________
 
  'Wochentag
  .Range("B19").Value = Worksheets("Zeiten").Range("DZ1")
  'Datum
  .Range("C19").Value = Worksheets("Zeiten").Range("EB2")
  'Schicht
  .Range("D19").Value = Worksheets("Zeiten").Range("EB1")
  'Dauer(min)
  .Range("E19").Value = Worksheets("Zeiten").Range("DZ142")
  'Anzahl(#)
  .Range("F19").Value = Worksheets("Zeiten").Range("EA142")
  'OE-Verlust(%)
  .Range("G19").Value = Worksheets("Zeiten").Range("EB142")
  'OE(%)
  .Range("H19").Value = Worksheets("Zeiten").Range("EB251")

  'Sonntag Frühschicht____________________________________________
 
  'Wochentag
  .Range("B20").Value = Worksheets("Zeiten").Range("EK1")
  'Datum
  .Range("C20").Value = Worksheets("Zeiten").Range("EM2")
  'Schicht
  .Range("D20").Value = Worksheets("Zeiten").Range("EM1")
  'Dauer(min)
  .Range("E20").Value = Worksheets("Zeiten").Range("EK142")
  'Anzahl(#)
  .Range("F20").Value = Worksheets("Zeiten").Range("EL142")
  'OE-Verlust(%)
  .Range("G20").Value = Worksheets("Zeiten").Range("EM142")
  'OE(%)
  .Range("H20").Value = Worksheets("Zeiten").Range("EM251")
 
  'Sonntag Spätschicht____________________________________________
 
  'Wochentag
  .Range("B21").Value = Worksheets("Zeiten").Range("EQ1")
  'Datum
  .Range("C21").Value = Worksheets("Zeiten").Range("ES2")
  'Schicht
  .Range("D21").Value = Worksheets("Zeiten").Range("ES1")
  'Dauer(min)
  .Range("E21").Value = Worksheets("Zeiten").Range("EQ142")
  'Anzahl(#)
  .Range("F21").Value = Worksheets("Zeiten").Range("ER142")
  'OE-Verlust(%)
  .Range("G21").Value = Worksheets("Zeiten").Range("ES142")
  'OE(%)
  .Range("H21").Value = Worksheets("Zeiten").Range("ES251")
 
  'Sonntag Nachtschicht___________________________________________
 
  'Wochentag
  .Range("B22").Value = Worksheets("Zeiten").Range("EW1")
  'Datum
  .Range("C22").Value = Worksheets("Zeiten").Range("EY2")
  'Schicht
  .Range("D22").Value = Worksheets("Zeiten").Range("EY1")
  'Dauer(min)
  .Range("E22").Value = Worksheets("Zeiten").Range("EW142")
  'Anzahl(#)
  .Range("F22").Value = Worksheets("Zeiten").Range("EX142")
  'OE-Verlust(%)
  .Range("G22").Value = Worksheets("Zeiten").Range("EY142")
  'OE(%)
  .Range("H22").Value = Worksheets("Zeiten").Range("EY251")

End With

Set wbStart = ActiveWorkbook
Set wbZiel = Workbooks.Open("P:\technik.xlsm")

[color=#2ecc40][b]Workbooks("technik.xlsm").Activate[/b][/color]
With wbZiel.Worksheets("Technik")
    Set raFund = .Columns("A").Find(what:=wbStart.Worksheets("Technik").Range("A2"), LookIn:=xlValues, lookat:=xlWhole)
   
    If Not raFund Is Nothing Then
        wbStart.Worksheets("Technik").Range("A2:H22").Copy
        wbZiel.Worksheets("Technik").Range("A" & raFund.Row).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Else
        wbStart.Worksheets("Technik").Range("A2:H22").Copy
        wbZiel.Worksheets("Technik").Range("A" & .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Row).PasteSpecial _
        Paste:=xlPasteValuesAndNumberFormats
    End If
End With

Application.CutCopyMode = False
Application.ScreenUpdating = True

Workbooks("technik.xlsm").Activate
Workbooks("technik.xlsm").Close True

Set raFund = Nothing

Worksheets("Zeiten").Activate



End Sub
Hallöchen,

wenn die Datei nicht geöffnet wird müsste auch schon beim Open ein Fehler erscheinen.

Bei Deinen Variablendeklarationen gibt es eventuell auch Verbesserungsbedarf. Mit

Dim wbStart, wbZiel As Workbook

wird nur wbZiel als Workbook deklariert, wbStart ist Variant. Soll beides Workbook werden, dann mit

Dim wbStart As Workbook, wbZiel As Workbook