Anzeige
Archiv - Navigation
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Makro nach bedingung ausführen

VBA Makro nach bedingung ausführen
18.07.2006 20:04:31
Alexandra
Hallo zusammen
und danke für Hilfe die ich hier schon erfahren habe
Nun habe ich ein neues Problem ich möchte u.g. Makro nur Ausführen lassen wenn die geöffnete *xls Datei "Statistik 2006 v.2.01" heist.
d.h. wenn die Datei unter einem anderen Namen geöffnet wird soll das Makro inaktiv sein.

Sub Löschen()
ActiveSheet.Unprotect
Range("S5:S16").Copy
Range("T5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Statistik").Select
ActiveSheet.Unprotect
Sheets("Eingabefeld").Select
Range("M2").Copy
Range("L1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Dim freieZ As Long
With Sheets("Statistik")
freieZ = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets("Eingabefeld").[c5:k5].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c6:k6].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c7:k7].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c8:k8].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c9:k9].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c10:k10].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c11:k11].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c12:k12].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c13:k13].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c14:k14].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c15:k15].Copy Destination:=.Cells(freieZ, 1)
freieZ = freieZ + 1
Sheets("Eingabefeld").[c16:k16].Copy Destination:=.Cells(freieZ, 1)
End With
Sheets("Statistik").Select
Columns("J:J").Copy
Columns("K:K").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = False
Columns("F:K").Select
Range("K1").Activate
Selection.ColumnWidth = 0
Columns("B:C").Select
Range("C1").Activate
Selection.ColumnWidth = 0
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("Eingabefeld").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWorkbook.SaveAs "D:\users\" & Month(Now) & "." & (Year(Now) & "  Statistikdat" & _
Range("I2").Value & ".XLS")
Application.DisplayAlerts = True
Sheets("Übergabebogen").Select
Range("Q14:Q25").ClearContents
Range("Q14").Select
Sheets("Eingabefeld").Select
Range("I1").Copy
Range("I2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C5:L5").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("C6:L16").ClearContents
Range("P5:P16").Copy
Range("I5").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("Q5:Q16").Copy
Range("F5").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("B5").ClearContents
Range("B5").Select
ActiveWindow.ScrollColumn = 1
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "D:\users\" & "Statistik 2006 v.2.01" & ".XLS"
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro nach bedingung ausführen
18.07.2006 20:29:09
Nepumuk
Hallo Alexandra,
Als erste Zeile in deiner Prozedur:
If LCase$(Thisworkbook.Name) <> "statistik 2006 v.2.01.xls" Then Exit Sub
Gruß
Nepumuk
AW: VBA Makro nach bedingung ausführen
18.07.2006 20:39:07
Alexandra
Muß ich da noch etwas ändern ?
Ich habe es jetzt so eingefügt
Sub Löschen()
'
If LCase$(Thisworkbook.Name) <> "statistik 2006 v.2.01.xls" Then Exit Sub
ActiveSheet.Unprotect
u.s.w.
Leider tut sich jetzt gar nichts mehr auch nicht wenn die Datei "statistik 2006 v.2.01.xls"
heist
AW: VBA Makro nach bedingung ausführen
18.07.2006 20:49:02
Nepumuk
Hallo Alexandra,
lass dir den Namen der richtigen Mappe im Direktbereich ausgeben und kopiere in von dor in dein Makro.
Einfach in den Direktbereich:
?LCase$(Thisworkbook.Name)
kopieren und Enter drücken. Den ausgegebenen Namen kopierst du in die Zeile von mir.
Gruß
Nepumuk
Anzeige
Danke vielmals
18.07.2006 21:03:38
Alexandra
Vielen Dank Nepomuk
Nun hab ich auch den Direktbereich kennengelernt !
Grüße aus Eningen u.A.
Noch etwas
18.07.2006 21:20:21
Alexandra
Ich will ja nicht unverschämt erscheinen aber
If LCase$(ThisWorkbook.Name) <> "statistik 2006 v.2.01.xls" Then Exit Sub
Kann ich dort noch ne Msgbox einbauen (OK)
Text z.b. "Makro nicht ausführbar"
AW: Noch etwas
18.07.2006 21:26:37
Nepumuk
Ach Alexandra,
dafür sind doch Foren da.
If LCase$(ThisWorkbook.Name) <> "statistik 2006 v.2.01.xls" Then
    MsgBox "Wrong workbook", vbCritical, "Take your fucking fingers of"
    Exit Sub
End If

Gruß
Nepumuk
Anzeige

180 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige