Hallo zusammen,
ich habe ein Makro geschrieben, dass auch tadellos funktioniert. Wenn die das Makro allerdings über einen Button ausführe geht es nicht - wie kann das sein?
Weiß jemand was?
Dank Euch
Stefan
Hallo,
ich würde mal sagen, da stimmt was nicht. ;D
Im Ernst, was erwartest Du mit diesen Angaben für eine Antwort.
Wie sieht das Makro aus?
Ist es wirklich ein Makro oder VBA?
Wie willst Du das Makro mit dem Button starten (Code?)
Hi,
hat das denn etwas miteinander zu tun? Das Makro funktioniert als solches ja wunderbar. Ich hab dann nur die Ausführung des Makros mit einem Button verbunden -> also CommandButton und dann das Makro damit ausgelöst.
Aber anscheinend hängs daran :).
Mein Makro activiert eine andere geöffnete Excel-Datei und führt dann da Formatierungen aus. Wenn ich über den Button starte, dann gibt er mir einen Fehler, dass diese Datei nicht da bzw. nicht geöffnet ist - ohne Button gehts.... ???
Hallo,
und die anderen Fragen?
ZitatIst es wirklich ein Makro oder VBA?
Wie willst Du das Makro mit dem Button starten (Code?)
OKOK :)
Private Sub CommandButton1_Click()
' On Error GoTo Fehlerhandling
Windows("FAM_Ereignisse 1 .xls").Activate
Range("A6:O6").Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 15
End With
Cells.Select
With Selection.Font
.Name = "Arial"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Rows("2:4").Select
With Selection.Font
.Name = "Arial"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range("A1").Select
With ActiveSheet.PageSetup
.PrintTitleRows = "$6:$6"
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = "&D - &T"
.CenterFooter = ""
.RightFooter = "&P von &N"
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.393700787401575)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.393700787401575)
.HeaderMargin = Application.InchesToPoints(0.47244094488189)
.FooterMargin = Application.InchesToPoints(0.47244094488189)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
Columns("A:A").ColumnWidth = 8.14
ActiveWindow.SmallScroll Down:=9
Columns("B:B").ColumnWidth = 13.29
Columns("C:C").ColumnWidth = 31.71
Columns("D:D").ColumnWidth = 31.71
ActiveWindow.SmallScroll Down:=3
Columns("D:D").ColumnWidth = 33.57
Columns("C:C").ColumnWidth = 33.71
Columns("E:E").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Columns("G:G").EntireColumn.AutoFit
Columns("H:H").EntireColumn.AutoFit
ActiveWindow.SmallScroll Down:=-27
Columns("I:I").EntireColumn.AutoFit
Columns("J:J").EntireColumn.AutoFit
Columns("K:K").EntireColumn.AutoFit
Columns("L:L").ColumnWidth = 14.29
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
Columns("M:M").ColumnWidth = 17.57
Columns("N:N").ColumnWidth = 8.14
Columns("O:O").ColumnWidth = 8.29
Cells.Select
Range("D1").Activate
Cells.EntireRow.AutoFit
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A1").Select
ActiveWindow.View = xlPageBreakPreview
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveWorkbook.Save
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWindow.Close
ActiveWindow.SmallScroll Down:=-6
Range("A1").Select
Exit Sub
Fehlerhandling:
MsgBox "Keine oder zu viele CS-Ereignislisten geöffnet"
Windows("Ereignisse CS - Formatierungsmakro.xls").Activate
End Sub
Ich habe es mit dem Makro-Generator aufgezeichnet und etwas angepasst in VBA. Der Button wurde eingebunden indem ich mir einen Button erzeugt habe und das Makro/VBA in die Sub kopiert habe (wie sonst auch immer ....)
Gruß
Stefan
Hallo,
sorry, ich war da zu sehr auf Access fixiert und übersehen, dass es um Excel geht.
Da muss jemand anders ran.
OK, Danke :-)
Hallo,
sprichst du hier denn nicht eine andere Datei an??
Windows("FAM_Ereignisse 1 .xls").Activate
Wenn die Datei in der sich der Button mit dem Makro befindet so heißt, brauchst du die eigene Datei ja nicht aktivieren, in der hast ja geklickt - maximal dann das betroffene also zu formatierende Arbeitsblatt.
Der gesamte Code scheint auf den ersten Blick das erste Arbeitsblatt der aktuellen Datei zu betreffen - daher fällt mir auch nur die Erste Zeile in deinem Code als nicht ganz verständlich auf.
Grüße
Peter
Hallo database,
erstmal Danke. Aber es ist schon richtig so. Das Makro ist in einer Excel-Liste die jeder auf seinem Rechner hat. Nachdem starten eines Reportings aus dem Intranet (was ebenfalls lokal passiert) soll dieses Makro dann die andere Excel-Liste für einen anständigen Druck vorbereiten.
Ich habe noch etwas festgestellt. Das Problem tritt nämlich nun auch beim Makro auf, wenn es zwischenzeitlich mal geschlossen war.
Ich denke das liegt an dem Dateinamen, da der aus dem Intranet immer mit xxx[1].xls exportiert wird und dann im Makro als xxx 1 .xls erscheint. Der "*" als Platzhalter (also: xxx*.xls) hat bei mir nicht funktioniert - gibts da ne andere Möglichkeit die offene Excel-Liste die mit dem Dateinamen xxx anfängt zu öffenen und bearbeiten zu lassen?
Danke und Gruß
Stefan
Hallo Stefan,
kann durchaus sein, dass durch den Stern Excel sich weigert die Dateinamen zu akzeptieren.
Ich bin mit Excel-VBA nicht sattelfest und müsste daher selbst recherchieren, wie Dateinamen zusammengestzt werden - gehe aber davon aus, dass man eine Stringvariable dazu verwenden könnte und diese dann an den Öffnen-Dialog oder die Prozedur zum Öffnen der Datei übergeben wird.
Die Makro-Sicherheit ist auf allen betroffenen Rechnern richtig konfiguriert.
Grüße
Peter
Vielen Dank,
ich habe in einem Forum erfahren, dass ich mit einer Schleife durch alle offenen Tasks durch muss. Bin gerade daran am basteln!
Danke nochmal und Gruß
Stefan