Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Makro nach bedingung ausführen

Forumthread: 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

Anzeige

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
Anzeige
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"
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige