Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Makro soll prüfen ob bestimmte Datei geöffnet ist | Herbers Excel-Forum


Betrifft: Makro soll prüfen ob bestimmte Datei geöffnet ist von: Leif
Geschrieben am: 02.01.2012 13:10:56

Hallo und frohes neues Jahr!

Ich möchte gerne in einem Makro, was eine neue Excel-Datei mit dem Namen "Preisliste" generiert, vorab prüfen, ob diese Datei bereits geöffnet ist.
Ist dies der Fall, so soll eine MsgBox geöffnet werden, in der steht das die Datei "Preisliste" vor der Generierung geschlossen werden muss.
Ist die Datei nicht geöffnet so soll das Makro einfach die Datei "Preisliste" generieren.

Kann mir jemand bei dem Code helfen?

Beste Grüße
Leif

  

Betrifft: AW: Makro soll prüfen ob bestimmte Datei geöffnet ist von: Rudi Maintaire
Geschrieben am: 02.01.2012 13:21:43

Hallo,
eine Möglichkeit:

Sub xxx()
  If WBOpen("Preisliste.xls") Then
    MsgBox "Preisliste erst schließen!", , "Hinweis"
    Exit Sub
  Else
    'Liste generieren
  End If
End Sub

Function WBOpen(strWB) As Boolean
  Dim wb As Workbook
  On Error GoTo ErrHandler
  Set wb = Workbooks(strWB)
  WBOpen = True
ErrHandler:
End Function

Gruß
Rudi


  

Betrifft: AW: Makro soll prüfen ob bestimmte Datei geöffnet ist von: Leif
Geschrieben am: 02.01.2012 13:58:49

Hallo Rudi,
Ich bekomm das noch nicht hin. Ich hab dir mal den Quelltext hinzugefügt. Kannst du mir bitte nochmal helfen.
Gruß Leif

Sub Preisliste()


Application.ScreenUpdating = False
 ActiveSheet.Unprotect
  Dim objWbNew As Workbook
  Set objWbNew = Workbooks.Add
  
'Neue Mappe erstellen
  With objWbNew
    With .Sheets(1)
      .Range("A1") = "Position"
      .Range("B1") = "NB Nr."
      .Range("C1") = "Stück"
     End With

'Formatieren Querformat und Skalierung 65%

        Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .Orientation = xlLandscape
        .Draft = False
        .Zoom = 65
    End With
    Application.PrintCommunication = True
    
'kopieren der erforderlichen Werte
'Kopieren der NB-Nummer
ThisWorkbook.Activate
     Sheets("Bearbeitung Pos.").Range("A15").Select
     Range(Selection, Selection.End(xlDown)).Copy
    .Sheets(1).Range("B2").PasteSpecial xlValues
    
'Kopieren von Stückzahl
ThisWorkbook.Activate
     Sheets("Bearbeitung Pos.").Range("C15").Select
     Range(Selection, Selection.End(xlDown)).Copy
    .Sheets(1).Range("C2").PasteSpecial xlValues
    
    
        
   
'Einige Formatierungen
    With .Sheets(1)
    .Range("A2").Value = "1"
    .Range("A3:A" & .Cells(Rows.Count, 4).End(xlUp).Row).Formula = "=1+R[-1]C"
    .Columns("A:A").HorizontalAlignment = xlLeft
    .Columns("C:C").HorizontalAlignment = xlLeft
    .Range("A1:C1").Font.Bold = True
    .Range("A1").AutoFilter
    Application.ScreenUpdating = True
    End With
    Range("A2").Select
    
    
'Fenster fixieren und 80% Zoom.
.Sheets(1).Activate
    With ActiveWindow
   .SplitRow = 1
   .FreezePanes = True
    End With
    ActiveWindow.Zoom = 80
    
'speichern
'.SaveAs Filename:="C:\Dokumente und Einstellungen\" & Environ("Username") & "\Desktop\ _
Preisliste.xlsm"
Application.DisplayAlerts = False 'Warnungen ausschalten
.SaveAs Filename:="C:\Dokumente und Einstellungen\" & Environ("Username") & "\Desktop\ _
Preisliste.xlsx"
Application.DisplayAlerts = True  'Warnungen einschalten
.Close
MsgBox ("Die Datei ""Preisliste"" wurde auf ihrem Desktop gespeichert!")
 End With
 
'Schützt das Tabellenblatt wieder.
    ThisWorkbook.Activate
    ActiveSheet.Protect
    


End Sub




  

Betrifft: AW: Makro soll prüfen ob bestimmte Datei geöffnet ist von: Rudi Maintaire
Geschrieben am: 02.01.2012 14:24:00

Hallo,

Sub PL_erstellen()
   If WBOpen("Preisliste.xls") Then
     MsgBox "Preisliste erst schließen!", , "Hinweis"
     Exit Sub
   Else
     Preisliste
   End If
 End Sub
Function WBOpen(strWB) As Boolean
   Dim wb As Workbook
   On Error GoTo ErrHandler
   Set wb = Workbooks(strWB)
   WBOpen = True
 ErrHandler:
 End Function

Gruß
Rudi


Beiträge aus den Excel-Beispielen zum Thema "Makro soll prüfen ob bestimmte Datei geöffnet ist "