Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Warum neu erstellte Datei nicht aktiv ?

Forumthread: Warum neu erstellte Datei nicht aktiv ?

Warum neu erstellte Datei nicht aktiv ?
21.01.2025 12:54:05
sigrid
Guten Morgen,
mein Kollege hatte mir das Makro erstellt, welches einwandfrei funktioniert.
Das einzige Problem, wenn das Makro durchgelaufen ist, wird nicht die neuerstellte Datei
an der Oberfläche angezeigt.
Lasse ich das Makro im VBA Modus mit F8 Schritt für Schritt laufen, kommt keine Fehlermeldung
und die neu erstellte Datei ist zur weiteren Bearbeitung an der Oberfläche.
Vielleicht hat jemand eine Lösung ?

Public Sub Ins_aktuellen_Laufwerk_speichern()

Dim DateiNam As String
Dim aDatei As String
Dim strPath$
Dim akt, p As String
Dim strpathp

With Application
.EnableEvents = False
.DisplayAlerts = False
End With
Application.Calculation = xlCalculationManual
' Application.Calculation = xlCalculationAutomatic

If Tabelle1.Range("O24") = "" Then
MsgBox "Sie müssen die MAIL-Adresse einsetzen !" _
& Chr(13) & "", _
48, " Hinweis für " & Application.Username
UF_Adresseingabe.Show
Exit Sub
End If

Dim tan
tan = Tabelle1.Range("P32") & ".xlsm" 'Name der Datei

ActiveSheet.Unprotect (getStrPassWort)
Dim WBName As String, varAntwortMsg
ActiveSheet.Range("D1") = WBName

If WBName = "" Then Exit Sub

'--- so jetzt noch ins Verzeichnis speichern -------------
Dim Fs As Object, OrdNam As Variant, Ord As Byte, Pfad As String

DateiNam = WBName & " " & "Rg.-Nr. " & ActiveSheet.Range("H24") & " " & ActiveSheet.Range("E23") & ".xlsm"
strPath = "D:\__Büro\"

With ActiveSheet
If IsDate(.Range("H29")) Then
If .Range("H29") > 0 Then
'Pfad Jahr
strPath = strPath & Year(.Range("H29").value) & "\"
'Pfad Monat
strPath = strPath & Format(.Range("H29").value, "MM MMMM") & "\"
'Ordner erstellen sollte dieser nicht vorhanden sein
apiCreateFullPath strPath
'Pfad Dateiname
strPath = strPath & DateiNam '''''''ActiveWorkbook.Name

'Prüfung ob vorhanden
If Dir(strPath, vbNormal) > "" Then
MsgBox "Kunden-Name " & DateiNam & Chr(13) & Chr(13) & _
"mit der Rg. - Nr. ist vorhanden !" & vbLf & vbLf & "Bitte ändern !"
' strPath = ActiveWorkbook.FullName
' On Error Resume Next
Application.DisplayAlerts = False
'' ActiveWorkbook.Close ''True
' Kill strPath
' ActiveWindow.Close
Exit Sub ' ich eingesetzt
'-----------------------------------------------------------
Else
End If

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPassWort 'schützen

ActiveSheet.Application.ScreenUpdating = False
Application.EnableEvents = False
ActiveWorkbook.SaveCopyAs Filename:=strPath

Application.EnableEvents = False
Workbooks.Open Filename:=strPath 'jetzt wird die gespeicherte nochmal

ActiveSheet.Name = Cells(32, 16).value 'namen als Tabellenname hinterlegen

' ActiveSheet.Application.ScreenUpdating = True
'' Call Sheets_löschen 'geöffnet um die restlichen Sheets zu löschen
Dim strFolder As String
If Dir$(strFolder, vbDirectory) = vbNullString Then
' MsgBox "Die ausgewählte Datei existiert nicht"
' MsgBox strFolder
MkDir strFolder
Else
' MsgBox "Die ausgewählte Datei existiert"
End If
'-------------------------------------------------------
Dim strPathPD
strPathPD = strFolder & strPath & DateiNam

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=strPath


'--- hier pdf speichern rein ----------
strPath = Left(strPath, Len(strPath) - 5)

'hier Änderung in PDF/A format
' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath
ActiveSheet.Application.ScreenUpdating = False

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

ActiveSheet.Range("P35") = ""
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios _
:=True, Password:=getStrPassWort 'schützen
End If
End If
End With
With Application
.EnableEvents = True
.DisplayAlerts = True
.Calculation = xlCalculationAutomatic
End With
End Sub


gruß sigrid
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warum neu erstellte Datei nicht aktiv ?
21.01.2025 13:58:58
MCO
Hallo Sigrid!

Das Problem ist, dass der Code mit "activeworkbook" geschrieben wurde. Wenn der Code automatisch läuft, ist Activeworkbook immer das gerade aktive, kann also wechseln. Bei der Durchsicht mit F8 ist es immer das Projektführende.

Daher kann ich dir nur raten, zu Beginn des Projektes die Objekte zuzuweisen und darauf zu verweisen. Da weiß man, was man hat.

Dim WB_quelle as workbook

set WB_quelle = thisworkbook

wb_quelle.sheets(1).range("B4").value = "Tralala"

Dim WB_wasanderes as workbook
set WB_wasanderes = workbooks("zweite Tabelle")

WB_wasanderes.sheets(1).range("C8").value = "auch ein Tralala"

Gruß, MCO
Anzeige
AW: Warum neu erstellte Datei nicht aktiv ?
21.01.2025 20:13:26
U
Hallo,
das ist ein einziges Chaos
If Tabelle1.Range("O24") = "" Then

Was ist Tabelle1? Das aktive Blatt?
weiter:
Dim WBName As String, varAntwortMsg

ActiveSheet.Range("D1") = WBName

If WBName = "" Then Exit Sub

WBName ist auf jeden Fall = ""

Dimensionierungen gehören an den Anfang des Codes und nicht irgendwo zwischendrin.

Lade die Mappe hoch.

Gruß aus'm Pott
Udo
Anzeige
Tabelle1 ist die
21.01.2025 20:30:17
Sigrid
Guten Abend Udo,
ja Tabelle1 ist das aktive Blatt.
Leider darf ich die Tabelle nicht rausgeben.
Ich werde aber die Dimensionierungen alle nach oben setzen.

Wie schon erwähnt, das Makro läuft einwandfrei nur das Problem das die neu erstellte
Datei nicht aktive ist aber beim Makro durchlauf mit F8 bleibt die neue Datei
an der Oberfläche, beim Start durch den Button nicht.

Gruß Sigrid
Anzeige
AW: Tabelle1 ist die
22.01.2025 00:19:11
Uduuh
Hallo,
warum es mit F8 klappt, hat dir MCO schon geschrieben.

Leider darf ich die Tabelle nicht rausgeben.
Ich bau das nicht nach. Du kannst ja die Daten anonymisieren.


Gruß aus'm Pott
Udo
Hier Muster
22.01.2025 12:19:37
sigrid
Guten Morgen zusammen,
ich habe eine Mustertabelle erstellt.
Eigenartigerweise bleibt die neu erstellte Datei an der Oberfläche.
Warum auch immer...
https://www.herber.de/bbs/user/175032.xlsm


gruß sigrid
Anzeige
AW: Hier Muster
22.01.2025 13:23:50
Piet
Hallo Sigird

mir ist in deinem Code etwas aufgefallen, was du bitte selbst prüfen musst. Ich weiss nicht ob das so richtig ist???
Du findest diesen Codeteil am Ende des Codes. strPath wird oft gesetzt, hier steht aber extra strPathPD
strPathPD = strFolder & strPath & DateiNam

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=strPath --> 'wo ist hier das PD -- Gehört da kein PD hin???

'--- hier pdf speichern rein ----------
strPath = Left(strPath, Len(strPath) - 5)

Wenn du sicherstellen willst dass ein bestimmtes Workbook aktiv ist benutzte zum Schluß diesen Befehl:
Workbooks("Deine Datei").Activate --> ich weiss nur nicht welche Datei das ist?? Finde es bitte selbst raus.

mfg Piet
Anzeige
Hallo Piet, muss ich Kollegen fragen --))
22.01.2025 15:18:43
sigrid
Hallo Piet und die anderen Unterstützer,

herzlichen Dank für die Hilfe.
Seltsamerweise ist das etwas überaarbeitet Makro von mir, Variablen Dim Anweisungen, alle nach oben.
Jetzt ist die Datei, die erstellt wurde, auf der Oberfläche.

gruß sigrid
AW: Warum neu erstellte Datei nicht aktiv ?
21.01.2025 14:51:54
sigrid
Hallo MCO,
könntest Du mir das bei mir einsetzen, ist für mich zu verwirrend.

Würde mich freuen !

gruß sigrid
Anzeige
Verwirrend? Zu Recht!
22.01.2025 08:14:18
MCO
Moin, Sigrid!

Wir (Forum) können Dir kein gesichertes Ergebnis geben ohne Tabelle.

Versuch bitte mal mit ChatGPT zu arbeiten. Schreib rein: "ordne den Code" und dann fügst du den Code komplett ein.
Du erhälst immer noch nicht dass, was du willst, aber kommst der Sache besser auf die Spur. Und erklären lassen kannst du es auch. Ganz ohne Wartezeit.

Das Symbol ist auf dieser Seite im Kopf, ganz rechts.
Gruß, MCO
Anzeige

Forumthreads zu verwandten Themen

Anzeige