Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makros: Ein Teil nur ein Mal ausführen

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

Anzeige

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/

Anzeige
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

Anzeige
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

Anzeige
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

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