Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makroprobleme

Makroprobleme
23.01.2004 14:22:32
Dominik
Hallo zusammen,
ich habe ein Makro zur Diagrammerstellung per Hand aufgenommen. Wenn ich das Makro aber erneut starten möchte kommt eine Fehlermeldung, in der 5.Spalte.
Excel fügt mir trotz der Fehlermeldung das Diagramm ein.
Was ist falsch im Code?

Sub Makro4()
Columns("B:B").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Planschlagmessung ****.**.** - "). _
Range("B6:B366"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="AX025_aussen"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "AX025_aussen"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Winkel [°]"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Planschlag [µm]"
End With
ActiveChart.HasLegend = False
ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
Selection.Interior.ColorIndex = xlNone
End Sub

CU
Dominik

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroprobleme
23.01.2004 14:28:22
Yal
Hallo Dominik,
startet, mal das Makro in Schritt-Modus, und schaue, wo diese Fehler auftritt. Wichtig ist auch zu wissen, welche Fehler da gemeldet wird.
Gruß
Yal
AW: Makroprobleme
23.01.2004 14:39:59
Dominik
Hallo Yal.
VB stoppt in der Zeile:
ActiveChart.SetSourceData Source:=Sheets("Planschlagmessung ****.**.** - "). _
Range("B6:B366"), PlotBy:=xlColumns
und es kommt die Fehlermeldung: Laufzeitfehler´9´: INdex außerhalb des gültigen Bereichs
Dominik
AW: Makroprobleme
23.01.2004 14:53:34
Yal
"index ausserhalb des gültigen Bereichs" tritt ein, wenn man auf einem Auflistung mit einem nicht vorhandene Referenz zugreift.
In dein Beispiel ist die einzige Auflistung "Sheets". Der dazugehörende Referenz ist der Name "Planschlagmessung ...".
Probiere mal diese Tabelle eine einfache Name zu verpassen und ändere dementsprechend das Makro, oder schaue im Explorer-Fenster im Visualbasic-Editor, wie diese Tabelle bezeichnet wird, am Beispiel:
Tabelle5(Planschlagmessung...)
Du kannst dann im Makro "Sheets("Plan..").Range..." durch "Tabelle5.Range..."
Gruß
Yal
Anzeige
AW: Makroprobleme
23.01.2004 15:12:12
Dominik
Habe die Datei umbenannt in Messung 1 und das Makro erneut aufgenommen. Dann hat es auch ohne Fehler funktioniert.
Jetzt ist nur das Problem dass nicht alles Datein Messung 1 heißen. Wenn ich in den Code rein schreibe ..."Messung ***" kommt auch wieder ne Fehlermeldung.
Aber das ist eigentlch eine andere Frage, aber evtl. weißt du ja auch da Rat.
Dominik
AW: Makroprobleme
23.01.2004 15:31:42
Yal
Hallo Dom,
ALARM: im Code werden Stern "*" NIE als Platzhalter ausgewertet! Du muss da ganz genau der Name eingeben.
Ausserden, es ist nicht die Arbeitsmappe (=Datei, = Workbook), die Du umbenennen soll, sondern die Tabelle (=Arbeitsblatt, = Worksheet), d.h. doppel klick auf dem kleinen Reiter unten und da Name ändern. Dann kannst Du mehrere Dateien mit verschiedene Namen, die alle eine Blatt mit einem Standardname haben.
Solltest Du nur einem Datei haben, aber drin mehrere Blätter, die jede ein Grafik haben sollen, mach dann wie folgend:

Sub AlleMachen()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets
if LCase(Left(sh.name,17))="planschlagmessung" then MachGrafikMit sh.Name
Next sh
End Sub


Sub MachGrafikMit(ByVal BlattName As String)
'ehemalige "Makro5"
ActiveChart.SetSourceData Source:=Sheets("BlattName"). _
Range("B6:B366"), PlotBy:=xlColumns
End Sub


Gruß
Yal
Anzeige
AW: Makroprobleme
23.01.2004 16:24:17
Dominik
Hallo Yal,
wenn ich die Datei umbennene wird auch automatisch die Tabelle umbenannt. Ich habe mehrer Datein mit nur einer Tabelle. Die Dateien haben verschiedene Name, wobei aber nur die Endung sich ändert Planschlagmessung2004.10.01.csv ( also Name+Datum).
Wie kann ich eine Variable deklarieren, die sich auf den Dateinamen bezieht und diese anstatt des Names einfügen?
Dominik
AW: Makroprobleme
23.01.2004 16:36:51
Yal
Na, jetzt kommen wir dem Problem näher.
Denk aber daran: eine CSV-Datei speicher weder Makro, noch Grafik
d.h. diese CSV wird einschliessend als xls zu speichern.
1_ Du muss diese Makro in einer separate Datei speichern
2_ Du muss die CSV-Datei als neue Arbeitsmappe öffnen
3_ das Marko soll gestartet werden, um der Grafik zu aktualisieren und die Daten + Grafik als xls zu speichern (weil soweit ich mich erinnern kann, kann man nicht eine externe Verknüpfung auf einer CSV haben).
Punkte 2 und 3 können Teil des Makro sein. Aber lieber nicht zuviel auf einmal.
Dann: da eine CSV immer nur eine Arbeitsblatt beinhaltet, hat dieses Blatt immer den Index "1"! d.h. Du brauchst nicht seine Name zu kennen ("Sheets("Plan...").Range..."), sondern seine Index: Sheets(1).Range...
Also probiere das mal zuerst.
Gruß
Yal
Anzeige
AW: Makroprobleme
23.01.2004 16:49:41
Dominik
Langsam ernährt sich das Eichhörnchen
Wenn ich das mache wie du vorschläst also so:
ActiveChart.SetSourceData Source:=Sheets(1).Range ("C6:C366"), PlotBy:=xlColumns
kommt die Fehlermeldung: "Objekt unterstützt diese Eigenschaften oder MEthode nicht", in der oberen Zeile.
Dominik
Ach so das Makro speicher ich in Personal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige