18.07.2022, 16:28
(Dieser Beitrag wurde zuletzt bearbeitet: 18.07.2022, 16:33 von Suprasod.
Bearbeitungsgrund: Schriftgröße zu klein, Schreibfehler behoben
)
Hallo liebes Forum,
ich verzweifle aktuell daran, dass wir bei uns in der Firma nun von der 32Bit auf die 64Bit Version von Excel wechseln.
Ergo tauchte plötzlich die Problematik mit dem Kompilierungsfehler auf. Ich hab schon diverse Seiten dazu gelesen, aber ich finde nicht das Problem im Makro.
Die überall zu findende Declare-Theamtik, ist es meiner Meinung nach auch nicht. Die Benutze ich ja gar nicht.
Vielleicht hat von euch jemand Erfahrung damit und findet das Problem.
Hier die einzelnen Bausteine aus dem gemeldeten Modul.
Die folgenden beiden Makros wurden über die Makroaufzeichnung erstellt. Ich glaube nicht, dass dort was dabei ist, aber sicher ist sicher.
Das ist noch in Tabelle 1, würde ich aber auch ausschließen.
Wie eingehens erwähnt, währe ich echt dankbar wenn jemand in dem Thema Erfahrung hat und mal schauen könnte ob was zu erkennen ist.
Immer wieder neue Probleme...
ich verzweifle aktuell daran, dass wir bei uns in der Firma nun von der 32Bit auf die 64Bit Version von Excel wechseln.
Ergo tauchte plötzlich die Problematik mit dem Kompilierungsfehler auf. Ich hab schon diverse Seiten dazu gelesen, aber ich finde nicht das Problem im Makro.
Die überall zu findende Declare-Theamtik, ist es meiner Meinung nach auch nicht. Die Benutze ich ja gar nicht.
Vielleicht hat von euch jemand Erfahrung damit und findet das Problem.
Hier die einzelnen Bausteine aus dem gemeldeten Modul.
Code:
Option Private Module
Private Sub DoPDF()
Dim sName$
Dim Path$
sName = ActiveSheet.Name
Path = CreateObject("WScript.Shell").specialfolders("Desktop")
On Error Resume Next
If Range("D10") = "X" Then
ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Path & "\" & Sheets("Tabelle1").Range("G10") & " - " & Cells.Range("P10") & ".pdf", _
OpenAfterPublish:=True
If Err.Number > 0 Then MsgBox "Error saving pdf."
Else
ThisWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Path & "\" & "KW" & Sheets("Tabelle2").Range("C1") & " - " & Cells.Range("P10") & ".pdf", _
OpenAfterPublish:=True
If Err.Number > 0 Then MsgBox "Error saving pdf."
End If
Code:
Sub Vorprüfung_Tabelle_leeren()
Application.ScreenUpdating = False
If Range("H33").FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-6],'DropDown Auswahl'!C1:C2,2,FALSE),"""")" Then
Tabelle_leeren_drop1
Range("D8").Select
Else
Tabelle_leeren_drop0
Range("D8").Select
End If
Application.ScreenUpdating = True
End Sub
Code:
Sub Tabelle_leeren_drop0()
Range( _
"P8:U8,P10:U10,P12:U12,P14:U14,D8,G8,D17,D10,G10,D12,G12,I12,I14,G14,D14,D19,D21,B26:U29,B33:G63,H33:J63,K33:L63,N33:Q63,R33:S63,T33:U63" _
).Select
Selection.ClearContents
Range("D8").Activate
End Sub
Code:
Sub Tabelle_leeren_drop1()
Range( _
"P8:U8,P10:U10,P12:U12,P14:U14,D8,G8,D17,D10,G10,D12,G12,I12,I14,G14,D14,D19,D21,B26:U29,B33:G63,K33:L63,N33:Q63,T33:U63" _
).Select
Selection.ClearContents
Range("D8").Activate
End Sub
(Ja, man kann smarter Löschen, aber die Variante zum Checken ob eine Zelle gesperrt ist oder nicht, dauert knapp 5-7 Sekunden. Die eigentlichen Zellen ansprechen, wird quasi sofort erledigt.)
Code:
Sub Dateiname()
Worksheets("Tabelle2").Range("H1").FormulaLocal = ActiveWorkbook.Name
End Sub
Sub S_Meldung()
ActiveWorkbook.FollowHyperlink Address:="https://www.****.*******.com/api-****/file?id=433eb79b-0006-46ef-9a6f-1f360630e1de", _
NewWindow:=True
End Sub
Code:
Sub Schutz_aus()
ThisWorkbook.Unprotect "*********"
End Sub
Code:
Sub Schutz_an()
ThisWorkbook.Protect Password:="*********", Structure:=True
End Sub
Die folgenden beiden Makros wurden über die Makroaufzeichnung erstellt. Ich glaube nicht, dass dort was dabei ist, aber sicher ist sicher.
Code:
Sub DropdownAktivieren()
Application.ScreenUpdating = False
Schutz_aus
Worksheets("Tabelle1").Unprotect "*********"
Range("B33:G63,N33:Q63").Select
Range("N63").Activate
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DROPDOWN"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = False
.ShowError = False
End With
Range("H33:J33").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-6],'DropDown Auswahl'!C1:C2,2,FALSE),"""")"
Range("H33:J33").Select
Selection.AutoFill Destination:=Range("H33:J63"), Type:=xlFillDefault
Range("H33:J63").Select
ActiveWindow.SmallScroll Down:=8
Range("H63:J63").Select
ActiveWindow.SmallScroll Down:=-28
Range("R33:S33").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-4],'DropDown Auswahl'!C1:C2,2,FALSE),"""")"
Range("R33:S33").Select
Selection.AutoFill Destination:=Range("R33:S63"), Type:=xlFillDefault
Range("R33:S63").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
Range("B33:G33").Select
Sheets("Tabelle1").Select
Sheets("DropDown Auswahl").Visible = True
Sheets("Tabelle1").Select
ActiveSheet.Shapes.Range(Array("Rectangle 15")).Select
Selection.ShapeRange.TextFrame2.MarginLeft = 0
Selection.ShapeRange.TextFrame2.MarginRight = 0
Range("Z38").Select
ActiveSheet.Shapes.Range(Array("Rectangle 15")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"Dropdown aktiv" & Chr(13) & "(zum deaktivieren erneut drücken)"
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 15). _
ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(16, 33).Font
.BaselineOffset = 0
.Bold = msoTrue
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 6
.Name = "+mn-lt"
End With
ActiveSheet.Shapes.Range(Array("Rectangle 15")).Select
Selection.ShapeRange.ShapeStyle = msoShapeStylePreset42
Selection.OnAction = "Dropdown_entfernen"
Range("B33").Select
Schutz_an
Worksheets("Tabelle1").Protect "*********"
Application.ScreenUpdating = True
End Sub
Code:
Sub Dropdown_entfernen()
Application.ScreenUpdating = False
Schutz_aus
Worksheets("Tabelle1").Unprotect "*********"
ActiveSheet.Unprotect
ActiveWorkbook.Unprotect
Range("B33:G63,N33:Q63").Select
Range("N63").Activate
ActiveCell.SpecialCells(xlCellTypeSameValidation).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = False
.ShowError = False
End With
Range("H33:J63").Select
Selection.ClearContents
Range("R33:S63").Select
Selection.ClearContents
Range("B33:G33").Select
Sheets("DropDown Auswahl").Visible = False
ActiveSheet.Shapes.Range(Array("Rectangle 15")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"Dropdown aktivieren"
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 19). _
ParagraphFormat
.FirstLineIndent = 0
.Alignment = msoAlignCenter
End With
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 19).Font
.Bold = msoTrue
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.ObjectThemeColor = msoThemeColorDark1
.Fill.ForeColor.TintAndShade = 0
.Fill.ForeColor.Brightness = 0
.Fill.Transparency = 0
.Fill.Solid
.Size = 11
.Name = "+mn-lt"
End With
ActiveSheet.Shapes.Range(Array("Rectangle 15")).Select
Selection.ShapeRange.TextFrame2.MarginLeft = 5.6692913386
Selection.ShapeRange.TextFrame2.MarginRight = 5.6692913386
Selection.ShapeRange.ShapeStyle = msoShapeStylePreset25
Selection.OnAction = "DropdownAktivieren"
Sheets("Tabelle1").Select
Range("B33").Activate
Schutz_an
Worksheets("Tabelle1").Protect "*********"
Application.ScreenUpdating = True
End Sub
Das ist noch in Tabelle 1, würde ich aber auch ausschließen.
Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
If Not Intersect(Target, Range("D8:D21")) Is Nothing Then
Target = IIf(Target = "X", "", "X")
Cancel = True
End If
End Sub
Wie eingehens erwähnt, währe ich echt dankbar wenn jemand in dem Thema Erfahrung hat und mal schauen könnte ob was zu erkennen ist.
Immer wieder neue Probleme...