Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1000to1004
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
Inhaltsverzeichnis

Makros: Ein Teil nur ein Mal ausführen

Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:11:54
wowa
Hallo an Alle!
Kann man ein Teil eines Makros nur ein Mal ausführen lassen und den Rest ständig, sodass der "unnötige Abschnitt eines Makros" ab dem 2ten Mal übersprungen wird?
Vielen Dank im Voraus!!!!
Wowa

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:16:17
Tobias
Hallo Wowa!
Ja kann man. Was meinst Du mit "ständig"? Irgendwann sollte es schon aufhören, oder?
Poste doch einfach mal Dein Makro und füge Kommentare ein welcher Teil einmal und welcher Teil "ständig" wiederholt werden soll.
Schönen Gruß, Tobias
http://www.vba-blog.de/

AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:22:25
wowa
Hallo Tobias!
Das ist mein Makro:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Application.ScreenUpdating = False
ActiveChart.Shapes("Rectangle 2").Select
Selection.Delete
ActiveChart.SeriesCollection(3).Select
ActiveChart.ChartGroups(1).SeriesCollection(3).PlotOrder = 4
ActiveChart.SeriesCollection(4).DataLabels.Select
Selection.Font.ColorIndex = 16
ActiveChart.SeriesCollection(3).Select
ActiveChart.SeriesCollection(3).ChartType = xlLine
ActiveChart.SeriesCollection(3).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
ActiveChart.SeriesCollection(3).DataLabels.Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
.ReadingOrder = xlContext
.Position = xlLabelPositionAbove
.Orientation = xlHorizontal
End With
ActiveChart.SeriesCollection(4).Select
ActiveChart.SeriesCollection(4).Points(4).Select
ActiveChart.SeriesCollection(4).ChartType = xlLine
ActiveChart.SeriesCollection(4).Select
With Selection.Border
.Weight = xlThin
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
ActiveChart.SeriesCollection(4).DataLabels.Select
ActiveChart.SeriesCollection(4).Points(1).DataLabel.Select
Selection.Left = 66
Selection.Top = 22
ActiveChart.SeriesCollection(4).Points(2).DataLabel.Select
Selection.Left = 145
Selection.Top = 22
ActiveChart.SeriesCollection(4).Points(3).DataLabel.Select
Selection.Left = 227
Selection.Top = 22
ActiveChart.SeriesCollection(4).Points(4).DataLabel.Select
Selection.Left = 308
Selection.Top = 22
ActiveChart.SeriesCollection(4).Points(5).DataLabel.Select
Selection.Left = 389
Selection.Top = 22
ActiveChart.SeriesCollection(4).Points(6).DataLabel.Select
Selection.Left = 472
Selection.Top = 22
ActiveChart.SeriesCollection(4).Points(7).DataLabel.Select
Selection.Left = 553
Selection.Top = 22
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.Font.ColorIndex = 2
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.Font.ColorIndex = 2
End Sub


und zeile 3 und 4 sollen nur ein Mal abgespielt werden. Das ist ein Makro für ein PivotChart und in Zeilen 3-4 wird ein Rechteck der das Diagramm verdeckt gelöscht... Danach ist der Rechteck ja nicht mehr da und es kommt ein Fehler....
Danke!
Gruß, Wowa

Anzeige
AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:38:26
Tobias
Hallo Wowa!
Quick and Dirty - Lösung:
On Error Resume next
ActiveChart.Shapes("Rectangle 2").Select
Selection.Delete
on error goto 0
Viel Spaß, Tobias
http://www.vba-blog.de/

AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:45:00
wowa
Hallo Tobias,
Danke ertsmal für deine Hilfe, aber ich kriege nen 1004 Fehler in der letzten ActiveChart.-Zeile und wenn ich die 2 letzten Zeilen löschen, rückt der Fehler einfach 2 Zeilen anch oben.....?
Gruß, Wowa

AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:52:00
Tobias
Hallo Wowa!
Die ganzen Selects sind natürlich der Wahnsinn. Ein Tipp für die Zukunft: http://www.online-excel.de/excel/singsel_vba.php?f=78
Lösch einfach mal die Zeile
On Error Goto 0
und schau was passiert.
Gruß, Tobias
http://www.vba-blog.de

Anzeige
AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:59:39
wowa
Hallo Tobias,
es hat geklappt!!! Vielen Dank für deine Hilfe und deinen Tipp!!!!
Gruß, Wowa

AW: fragwürdiger Tipp
19.08.2008 12:07:00
Daniel
Hi
also einfach mal ein On Error Resume Next pauschal über den Code zu setzen, ist schon etwas fragwürdig.
wenn du schon die Seiten von Online-Excel als Referenz empfiehlst, dann solltest du dir auch das hier mal durchlesen:
http://www.online-excel.de/excel/singsel_vba.php?f=147
Gruß, Daniel

AW: fragwürdiger Tipp
19.08.2008 12:16:00
Tobias
Hallo Daniel!
Das ist richtig. Aber es war die schnellste Lösung. Da die Funktion nur das Diagramm bearbeitet (was wahrscheinlich eh alles unnötig ist) sollten aber keine größeren Probleme entstehen.
Gruß, Tobias
http://www.vba-blog.de

Anzeige
AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:42:00
Daniel
Hi
in diesem Fall ist es das einfachste, du teilst Excel mit, daß in diesem Fall bei einem Fehler das Makro nicht gestoppt werden, sondern einfach weiterlaufen soll:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Application.ScreenUpdating = False
On Error Resume Next
ActiveChart.Shapes("Rectangle 2").Select
Selection.Delete
On Error Goto 0
ActiveChart.SeriesCollection(3).Select
ActiveChart.ChartGroups(1).SeriesCollection(3).PlotOrder = 4
End Sub


Bitte für weitere Informationen zum Thema bitte auch mal das hier lesen:
http://www.online-excel.de/excel/singsel_vba.php?f=147
Gruß, Daniel

Anzeige
AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:48:48
wowa
Danke Daniel!
Aber wie gesagt, wenn ich das machen, kriege ich einen 1004 Fehler in der letzten ActiveChart-Zeile......
Gruß, Wowa

AW: Makros: Ein Teil nur ein Mal ausführen
19.08.2008 11:20:07
Daniel
Hi
es kommt darauf an, ob du an irgendwass erkennen kannst, ob das Makro schon einmal gelaufen ist oder nicht.
wenn beispielsweise das Makro in die Zelle A1 ein "x" setzen würde, dann könnte man das so machen, Teil 1 würde nur dann ausgeführt werden, wenn in Zelle A1 kein "x" steht.

Sub Test
If Range("A1")  "x" then
' --- Hier Teil 1 des Makros
end if
'--- Hier Teil 2 des Makro
End Sub


Gruß, Daniel

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige