MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 12.02.2018, 13:05   #1
dw.katze
Neuer Benutzer
Neuer Benutzer
Verwirrt Excel2010 - Anwendungs- oder Objektdefinierter Fehler aus aufgenommenen Maktro Oo

Hallo zusammen,

für die Profils wohl kein großes Ding aber ich verzweifle hier an einem für mich komischen Problem..

Ich zeichne ein Makro auf:
Code:

Sub BereichMarkierenUndDiagramm()
'
' BereichMarkierenUndDiagramm Makro
'

'
   Sheets("Eingabe tägliches reporting").Select
    Range("A29:A70,AH29:AO70").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Range( _
        "'Eingabe tägliches reporting'!$A$29:$A$70;'Eingabe tägliches reporting'!$AH$29:$AO$70" _
        )
    Sheets.Add After:=Sheets(Sheets.Count)
    Sheets("Eingabe tägliches reporting").Select
'    ActiveChart.Parent.Cut
'    Sheets("Tabelle2").Select
'    ActiveSheet.Paste
'    Range("I18").Select
'    ActiveSheet.ChartObjects("Diagramm 1").Activate
'    ActiveSheet.ChartObjects("Diagramm 1").Activate
'    ActiveSheet.Shapes("Diagramm 1").ScaleWidth 2.1883333333, msoFalse, _
'        msoScaleFromTopLeft
'    ActiveSheet.Shapes("Diagramm 1").ScaleHeight 1.825, msoFalse, _
'        msoScaleFromTopLeft
End Sub
und sobald ich dieses Makro (ohne Veränderung) wieder abspielen will bleibt es in der Zeile
Code:

ActiveSheet.Shapes.AddChart.Select
mit folgender Fehlermeldung stehen:

Anwendungs- oder Objektdefinierter Fehler..

wie kommt das?

Ein ähnliches Problem habe ich auch, wenn ich ein Makro für eine Farbänderung in einem Diagramm aufzeichne
Code:

Sub Makro12()
'
' Makro12 Makro
'

'
    ActiveSheet.ChartObjects("Diagramm 1").Activate
    ActiveChart.Legend.Select
    ActiveChart.Legend.LegendEntries(1).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(239, 57, 74)
        .Solid
    End With
End Sub
und das wieder abspiele mit der Fehlermeldung:
Die Methode Fill für das Objekt ChartFormat ist fehlgeschlagen

hängt dann in folgender Zeile:
Code:

With Selection.Format.Fill
dw.katze ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2018, 14:43   #2
Muller2
MOF User
MOF User
Standard

Hallo,

mal zu 1), Du müsstest Deinen Bereich nur nach Einfügen des Charts zuweisen, ohne vorheriges Selektieren...
Code:

'...
With Worksheets(""Eingabe tägliches reporting"")
     Call .Shapes.AddChart.Chart.SetSourceData(Source:=.Range("A29:A70,AH29:AO70"))
End With
'...
Gruß, Muller2
Muller2 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2018, 15:10   #3
Beverly
MOF Guru
MOF Guru
Standard

Hi,

zu Frage 1: weise den Range anders zu

Code:

    ActiveChart.SetSourceData Source:=Worksheets("Eingabe tägliches reporting").Range( _
        "$A$29:$A$70, $AH$29:$AO$70")
Beachte das "," zwischen den Bereichen!
Trotzdem solltest du das ganze Select weglassen:

Code:

    With Sheets("Eingabe tägliches reporting").Shapes.AddChart.Chart
        .ChartType = xlColumnClustered
        .SetSourceData Source:=Worksheets("Eingabe tägliches reporting").Range( _
            "$A$29:$A$70, $AH$29:$AO$70")
    End With

zu Frage 2: der Code läuft er bei mir (Excel2016) fehlerfrei - trotzdem auch hier das Select weglassen

Code:

    With ActiveSheet.ChartObjects("Diagramm 1").Chart.Legend
        With .LegendEntries(1).Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(239, 57, 74)
            .Solid
        End With
    End With
Aber - was soll der Code denn überhaupt bezwecken? Bei mir macht er nämlich gar nichts.


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2018, 15:31   #4
Luschi
MOF Koryphäe
MOF Koryphäe
Standard

Hallo dw.katze,

da ich lieber mit Objekt-Varaiablen arbeite, sieht das bei mir so aus:
Code:

Sub Machmal()
    'Objekt für das Diagramm definieren
    Dim shp As Chart
    With Worksheets("Eingabe tägliches reporting")
       'Diagramm erstellen
       Set shp = .Shapes.AddChart.Chart
       'Wertebereich zuordnen
       Call shp.SetSourceData(Source:=.Range("A29:A70,AH29:AO70"))
       'Diagramm passenden Namen geben
       shp.Parent.Name = "Report_" & Format(Now, "yyyy_MM_dd")
    End With
    With shp
        'mit den soben erstellen Diagramm weiterarbeiten
    End With
    
    Set shp = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Luschi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2018, 14:23   #5
dw.katze
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Konfus

Hallo zusammen und danke für die Antworten und Lösungsvorschläge!

Kam gerade dazu alle zu testen..

@ Muller2
klappt gut, danke.
Keine Ahnung, warum ich das vom Makroeditor nicht einfach übernehmen konnte.. Da ich aber auch sauber programmieren will muss ich eh vom selektieren weg..

@Beverly
zu 1
sehr gut, das ermöglicht es mir auch das Diagramm auf einem anderen Blatt zu erstellen (wo ich eigentlich hin wollte) hatte die falsche source Syntax (vom Makroeditor!! )

zu 2

Zitat:

Aber - was soll der Code denn überhaupt bezwecken? Bei mir macht er nämlich gar nichts.

es soll die Farben im Diagramm ändern.. wenn ich 6 Balken habe, die aber aufgrund der Häufigkeit recht schmal sind dann sind die vorgewählten Farben nicht so prickelnd.

Wie gesagt Fehler taucht bei Excel 2010 auf.. ich werde heute Abend noch einmal zu Hause testen, da habe ich auch irgendwas höheres an Excel.. bringt mir nur nix..

@Luschi

Dieser Stil gefällt mir am besten! Leider auch hier die Fehlermeldung bei folgendem Code:

Code:

 Dim shp As Chart
    With Worksheets("Diagramm")
       'Diagramm erstellen
       Set shp = .Shapes.AddChart.Chart
       'Wertebereich zuordnen
       Call shp.SetSourceData(Source:=Worksheets("Eingabe tägliches reporting").Range("A29:A70,AH29:AO70"))
       'Diagramm passenden Namen geben
       shp.Parent.Name = "Report1"
    End With
    With shp
      .Legend.LegendEntries(1).Format.Fill.ForeColor.RGB = RGB(239, 57, 74)
        
        'mit den soben erstellen Diagramm weiterarbeiten
    End With
    
    Set shp = Nothing

Die Methode Fill für das Objekt ChartFormat ist fehlgeschlagen


Mal ne Frage nebenbei wenn ich etwas tippe (z.b. ActiveChart. ) dann geht ein Fenster auf und ich bekomme eine Liste mit Auswahlmöglichkeiten leider passiert das nicht immer.. ist das eine Einstellungssache oder Willkür oder was anderes?
Bei With z.b. funktioniert das Popup-Fenster nicht mehr (alles was dann in der zweiten, dritten, n-Reihe folgt)
oder
ActiveChart.ChartObjects("Report1").
nach ActiveChart. kommt noch das Fenster nach ChartObjects("Report1"). kommt nix mehr..
dw.katze ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2018, 14:37   #6
Beverly
MOF Guru
MOF Guru
Standard

Zitat: von dw.katze Beitrag anzeigen


@Beverly

zu 2

es soll die Farben im Diagramm ändern.. wenn ich 6 Balken habe, die aber aufgrund der Häufigkeit recht schmal sind dann sind die vorgewählten Farben nicht so prickelnd.

Wie gesagt Fehler taucht bei Excel 2010 auf.. ich werde heute Abend noch einmal zu Hause testen, da habe ich auch irgendwas höheres an Excel.. bringt mir nur nix..


meine Frage zielte insbesondere auch darauf ab, weshalb du den Legendeneintrag ändern willst und nicht die Datenreihe selbst

Code:

    With ActiveSheet.ChartObjects("Diagramm 1").Chart
        With .SeriesCollection(1).Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(239, 57, 74)
            .Solid
        End With
    End With


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2018, 15:03   #7
dw.katze
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Wenn ich den Legendeneintrag ändere, dann ändert Excel auch automatisch die Reihe.. anders herum glaube ich macht Excel das nicht ( ich glaube das habe ich gestern oder vorgestern getestet)..

wie auch immer.. es sollte auch möglich sein den Legendeneintrag zu ändern ob sinnig oder nicht..
dw.katze ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.02.2018, 15:11   #8
Beverly
MOF Guru
MOF Guru
Standard

Zitat: von dw.katze Beitrag anzeigen

Wenn ich den Legendeneintrag ändere, dann ändert Excel auch automatisch die Reihe..

Mit deinem Code in Excel2016 eben nicht - wie ich schon geschrieben hatte.

Zitat: von dw.katze Beitrag anzeigen

wie auch immer.. es sollte auch möglich sein den Legendeneintrag zu ändern ob sinnig oder nicht..

Siehe oben und außerderm ist das doch "von hinten durch die linke Brust ins rechte Auge"...


Zitat: von dw.katze Beitrag anzeigen

anders herum glaube ich macht Excel das nicht ( ich glaube das habe ich gestern oder vorgestern getestet)..


Natürlich macht Excel das, denn wie könntest du denn sonst die Farbe der Datenreihe ändern, wenn das Diagramm keine Legende hat...?


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.02.2018, 14:28   #9
dw.katze
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Cool

Hallo Beverly,

danke für Deine Geduld.
Kam heute erst wieder dazu alles zu testen.
Ja, Du hattest Recht, ich kann die Punkte im Diagramm anwählen und dann klappt das auch mit VBA..
____________________________________________

Für alle die durch die Suche hier her gefunden haben:

Code:

Dim i As Integer
For i = 1 To ActiveChart.SeriesCollection.Count
    Select Case i
        Case 1: ActiveChart.SeriesCollection(i).Interior.Color = RGB(255, 255, 0)
        Case 2: ActiveChart.SeriesCollection(i).Interior.Color = RGB(255, 0, 0)
        Case 3: ActiveChart.SeriesCollection(i).Interior.Color = RGB(255, 0, 255)
        Case 4: ActiveChart.SeriesCollection(i).Interior.Color = RGB(0, 0, 255)
        Case Else:
        ActiveChart.SeriesCollection(i).Interior.Color = RGB(0, 0, 0)
    End Select
Next
Wenn der Chart bereits aktiv ist ansonsten:
Code:

Worksheets("Name").ChartObjects("Name").Chart.SeriesCollection(i).Interior.Color = RGB(0, 0, 0)
Ich weiß, ich könnte den Code noch verkleinern mit with und/oder dim und set aber das mache ich später..

Aber noch einmal meine bis jetzt unbeantwortete Frage :

Mal ne Frage nebenbei wenn ich etwas tippe (z.b. ActiveChart. ) dann geht ein Fenster auf und ich bekomme eine Liste mit Auswahlmöglichkeiten leider passiert das nicht immer.. ist das eine Einstellungssache oder Willkür oder was anderes?
Bei With z.b. funktioniert das Popup-Fenster nicht mehr (alles was dann in der zweiten, dritten, n-Reihe folgt)
oder
ActiveChart.ChartObjects("Report1").
nach ActiveChart. kommt noch das Fenster nach ChartObjects("Report1"). kommt nix mehr..
dw.katze ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.02.2018, 15:09   #10
Beverly
MOF Guru
MOF Guru
Standard

Hi,

bei mir funktioniert Intellisense auch nicht immer. Es kann z.B. aussetzen, wenn es Syntaxfehler im Code gibt, wenn Teile eines Code noch nicht fertig sind und man zu einer vorhergehenden Zeile zurückgeht, auch wenn ein Objekt mehrere Bedeutungen haben kann - es gibt also viele Möglichkeiten.


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.