was gibt es schöneres als bei solchem Wetter an einem VBA-Probleme zu grübeln.
Aus diesem Grund möchte ich euch ein Freude machen und euch ein Problem anbieten. ;-)
Mit folgendenm Code möchte ich 2 Tabellenblätter (auf denen im VBAProject Codes hinterlegt sind) in eine neue Exceldatei exportieren ohne, dass in der neuen Datei diese Codes auf den Blättern liegen.
Sub Export()
Dim Pfad As String
Dim ExpNam As String
SendKeys ("%{f11}" & "%xi" & "Passwort" & "{Enter}" & "{Enter}")
Pfad = ThisWorkbook.Path
ExpNam = InputBox("Bitte geben Sie den Namen des Exports an.", "Dateiname Export")
Dim Quelle As Object
Set Quelle = ActiveWorkbook
'kopieren
With Quelle.VBProject.VBComponents("Tabelle1").CodeModule
strCodeT1 = .Lines(1, .CountOfLines)
End With
With Quelle.VBProject.VBComponents("Tabelle2").CodeModule
strCodeT2 = .Lines(1, .CountOfLines)
End With
'löschen
Dim VBA_Code As Object
With ActiveWorkbook.VBProject
For Each VBA_Code In .VBComponents
Select Case VBA_Code.Type
Case 1, 2, 3
'nix
Case 100
If VBA_Code.name = "Tabelle1" Or VBA_Code.name = "Tabelle2" Then
With VBA_Code.CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
End Select
Next
End With
'Sheets Kopieren
Sheets(Array("Tabelle1", "Tabelle2")).Select
Sheets(Array("Tabelle1", "Tabelle2")).Copy
ActiveWorkbook.SaveAs Filename:=Pfad & "\" & ExpNam & ".xls"
ActiveWorkbook.Close
'einfügen
Quelle.VBProject.VBComponents("Tabelle1").CodeModule.AddFromString (strCodeT1)
Quelle.VBProject.VBComponents("Tabelle2").CodeModule.AddFromString (strCodeT2)
End Sub
Mit der Sendkeys-Anweisung möchte ich mein Projekt entsperren um den temporären Zugriff (weiter unten im Code) zu gewährleisten.
Mein Problem ist genau diese Entsperrung des Projektes. Aus irgendeinem Grund wird das zweite "Enter" nicht gesendet und der Code wird nicht weiter verarbeitet.
Über einen Lösungsansatz wäre ich sehr dankbar.
Nasse Grüße,
Ronny.