Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Korrekte Schreibweise für Source bei Befehl Charts.SetSourceData, Änderung der Datenquelle

Mitglied: jaydotkay

jaydotkay (Level 1) - Jetzt verbinden

30.06.2014, aktualisiert 03.07.2014, 2220 Aufrufe, 23 Kommentare

Hallo zusammen,

ich habe schon viele Hilfestellungen zu diesem Thema gelesen, aber keine funktioniert bei mir.

Ich möchte jenachdem wie viele Spalten die zugrundegelegten Daten für das Diagramm aufweisen, eine automatisierte Anpassung im Diagramm vornehmen, damit keine Leeren Balken drin sind.

Mein Code(ausschnitt) schaut so aus:

'Diagrammdaten festlegen -> funktioniert soweit, es wird ein Datenbereich über einen String definiert
Diagrammdaten = "=Einzelfahrzeuge!AL4;Einzelfahrzeuge!AN4:BK4;Einzelfahrzeuge!AL6;Einzelfahrzeuge!AN6:BK6;Einzelfahrzeuge!AL11:AL13;Einzelfahrzeuge!AN11:BK13"
ActiveWorkbook.Names.Add Name:="DatenDiagramm", RefersToLocal:=Diagrammdaten

'Diagramm anpassen -> funktioniert nicht (Fehler "Index außerhalb gültigen Bereichs"), d.h. obiger String ist falsch
With ActiveWorkbook.Sheets("Auswertung")
Charts("Diagramm 43").SetSourceData Source:=Range("DatenDiagramm")
End With

Habe schon sehr sehr sehr viele verschiedene Schreibweisen ausprobiert, aber keine hat funktioniert.

Hat jemand eine Idee?

Vielen Dank im Voraus!

VG
Jaydotkay
Mitglied: colinardo
30.06.2014, aktualisiert 01.07.2014
Moin,
muss so lauten:
01.
Charts("Diagramm 43").SetSourceData Source:=Range("Einzelfahrzeuge!AL4,Einzelfahrzeuge!AN4:BK4,Einzelfahrzeuge!AL6,Einzelfahrzeuge!AN6:BK6,Einzelfahrzeuge!AL11:AL13,Einzelfahrzeuge!AN11:BK13")
Via VB müssen die einzelnen Bereiche im Range mit Komma voneinander getrennt werden.

Grüße Uwe
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 10:55 Uhr
Moin Uwe,

danke für Deinen Vorschlag.

Leider funktioniert das bei mir so auch nicht. Hattest Du es laufen?

Wenn ich die Kommas durch Semikolon ersetze, funktioniert zumindest die Range-Methode (bspw. Range.Select). Komischerweise meldet er aber dann trotzdem bei der Source-Definition nach wie vor "Index außerhalb gültigen Bereichs".

Wenn ich nun den Range bzw. String manuell in den "Diagrammdatenbereich" (=Source...) kopiere, funktioniert es.

Anmerkung: Der Range entspricht dem Diagrammdatenbereich. Ich habe diesen aus dem fertigen Diagramm in das Skript kopiert.

Damit liegt es meines Erachtens doch nicht an der Formatierung des Strings. Sondern es funktioniert die SetSourceData-Methode nicht. Obwohl diese beim "Makro aufzeichnen" verwendet wird, ist sie sodann nicht ausführbar! - Ich verstehe die Welt nicht mehr!!

Kann das an den Verweisen bzw. aktivierten Namespaces liegen? Gibt es noch andere Möglichkeiten?

Viele Grüße
Jaydotkay
Bitte warten ..
Mitglied: colinardo
01.07.2014 um 10:59 Uhr
Zitat von jaydotkay:
Leider funktioniert das bei mir so auch nicht. Hattest Du es laufen?
sicher sonst würde ich das hier nicht posten ...
schick mal dein File ... sonst muss ich hier die Kristallkugel bemühen (schicke dir ne PM).

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
LÖSUNG 01.07.2014, aktualisiert 03.07.2014
Hier eine Demo, falls du dein File nicht aus der Hand geben willst:
chart_change_source_242259.xlsm

Grüße Uwe
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 11:16 Uhr
Genau.

Ich mache gerade eine Testdatei fertig (kann Dir leider nicht die eigentliche Datei schicken).

Gegefrage: Was ist eine PM?
Bitte warten ..
Mitglied: colinardo
01.07.2014 um 11:17 Uhr
Zitat von jaydotkay:
Gegefrage: Was ist eine PM?
Persönliche Mitteilung über das Forensystem.
Bitte warten ..
Mitglied: jaydotkay
01.07.2014, aktualisiert um 11:20 Uhr
Hammer! Vielen Dank. Es funktioniert auch bei mir.

Muss mich erstmal damit beschäftigen, vielleicht kann ich meinen Code damit zum Laufen bringen...

Grüße
Jaydotkay

;)...
Bitte warten ..
Mitglied: colinardo
01.07.2014 um 11:25 Uhr
Habe das Demo-Sheet noch angepasst für beide Versionen, also Chart-Objekt in einem Tabellenblatt und als extra Diagrammblatt.
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 11:45 Uhr
Ja, so ist es bei mir auch umgesetzt (Diagramm auf einem Blatt, Daten auf dem andern)

Hab das gerade aber versucht zu umgehen:

Ich habe die Codezeile von Deinem Tool in meinen Code (Modul) übernommen und die Range angepasst. Ebenso die Daten in das gleiche Abeitsblatt gelegt, aber er meckert immernoch dass er Range nicht ausführen kann.

Worksheets("Auswertung").ChartObjects("Diagramm 43").Chart.SetSourceData Source:=Range("AL4,AN4:BK4,AL6,AN6:BK6,AL11:AL13,AN11:BK13")

Deinen Sub als Tabbellencode ausgeführt ergibt einen "Anwendungs- oder Objektdefinierten Fehler".
Bitte warten ..
Mitglied: colinardo
01.07.2014, aktualisiert um 11:59 Uhr
Dann gibt es das Diagramm mit diesem Namen vermutlich nicht mehr.
Lass dir mal mit
01.
Sub EnumCharts() 
02.
    For Each Chart In Worksheets("Auswertung").ChartObjects 
03.
        Debug.Print Chart.Name 
04.
    Next 
05.
End Sub
alle Charts mit deren Namen im Direktbereich des VBA Editors ausgeben.

Oder dein Source-Range passt nicht zum verwendeten Diagrammtyp.

ansonsten schicke mir das Sheet mal, sonst nimmt das hier kein Ende mehr !
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 12:10 Uhr
Bei mir führt er es nicht aus, bei Dir schon. Hab eine Datei fertig gemacht. Wie kann ich die hier hochladen?
Bitte warten ..
Mitglied: colinardo
01.07.2014 um 12:11 Uhr
Hatte dir meine Mailadresse schon via PM geschickt, schau im Forum in deine persönlichen Nachrichten ...
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 12:19 Uhr
ist draußen
Bitte warten ..
Mitglied: colinardo
01.07.2014, aktualisiert um 12:23 Uhr
und welchen Bereich möchtest du jetzt final drin haben ? Hier läuft es mit deinem eingetragenen Bereich .."B2:AA2,B4:AA5"
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 12:25 Uhr
es ist ein sehr vereinfachtes Beispiel, aber im Wesentlichen geht es darum, dass eine variierende Menge an Fahrzeugen vorhanden sein können (im Beispiel hier sind es 19 von maximal 25). Das Diagramm soll dann auch nur 19 Fahrzeuge bzw. Spalten beinhalten und eben nicht noch 6 leere Balken am Ende bspw.
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 12:28 Uhr
Bei Dir läuft es?? Verdammt...

Habe die Verweise gecheckt und es sind alle Verweise gesetzt wie in Deinem Dokument auch inklusive zusätzlicher. Weiß nicht ob es daran liegen kann?
Bitte warten ..
Mitglied: jaydotkay
01.07.2014, aktualisiert um 12:33 Uhr
Gute Neuigkeiten. Es läuft bei mir nun wenn ich nur "B2:AF5" oder "B2:AA5 verwende. Denke er kann bei mir irgendwie die Kommas nicht verarbeiten oder nicht mehrere Datenreihen getrennt behandeln (?)
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 12:35 Uhr
Wie müsste es aussehen, wenn die Daten auf einem anderen lägen? Könnstest du mir bitte noch Deine zweite Version schicken?
Bitte warten ..
Mitglied: colinardo
01.07.2014 um 12:39 Uhr
ist oben in dem ersten verlinkten File enthalten ... jetzt wart halt mal ab bin gerade anderweitig beschäftigt ...
Bitte warten ..
Mitglied: colinardo
LÖSUNG 01.07.2014, aktualisiert 03.07.2014
Sheet ist per Mail raus, Der Code findet nun selbständig die leeren Spalten und passt das Diagramm entsprechend an.
Viel Erfolg noch...
Ciao
Bitte warten ..
Mitglied: jaydotkay
01.07.2014 um 13:12 Uhr
Habe es gerade auch hinbekommen. Merkwürdig ist, dass exakt der gleiche Code vorher nicht ging...

Wie auch immer.

Großes Dankeschön an Dich und lass Dich nicht stressen! ;)

Gruß
Jaydotkay
Bitte warten ..
Mitglied: colinardo
02.07.2014 um 14:59 Uhr
Wenns das dann war, den Beitrag bitte noch auf gelöst setzen. Merci.
Grüße Uwe
Bitte warten ..
Mitglied: jaydotkay
03.07.2014 um 09:37 Uhr
Der Clou war, den Datenbereich (="strChartSource43", s.u.) als Variant zu deklarieren. Hier wollte mein VBA keinen String sehen. Ebenso muss ich Semikolon statt Kommas verwenden.

Mein Diagramm beinhaltet mehrere Datenreihen mit unterschiedlichen Diagrammtypen. Dies stellt also kein Problem dar.

Unten habe ich nochmal den funktionierenden Sub gepostet. Er ist sicherlich nicht so elegant wie Uwes Tool, ich hoffe aber er hilft anderen mit ähnlichen Problemen.

Grüße
Jaydotkay

"
Public Sub DiagrammAnpassung()

Dim strChartSource43 As Variant
Dim i As Integer
Dim intRow As Integer
Dim intColumnAnfang, intColumnEnde As Variant

i = 0

ActiveWorkbook.Activate

'Ermittle Anzahl Fahrzeuge
For Each strChartSource43 In Sheets("Einzelfahrzeuge").Range("FahrzeugeGeladen")
If strChartSource43 <> "" Or strChartSource43 <> 0 Then
i = i + 1
End If
Next

'Ermittle Koordinaten
intColumnEnde = Sheets("Einzelfahrzeuge").Range("Fahrzeug1").Column + i - 1
intRow = Sheets("Einzelfahrzeuge").Range("Diagramm43DatenBeginn").Row
intColumnEnde = Sheets("Einzelfahrzeuge").Cells(intRow, intColumnEnde).Value
intColumnAnfang = Sheets("Einzelfahrzeuge").Range("Diagramm43DatenBeginn").Value
intRow = Sheets("Einzelfahrzeuge").Range("Fahrzeug1").Row

strChartSource43 = "Einzelfahrzeuge!" & intColumnAnfang & intRow & ":" & intColumnEnde & intRow & _
";Einzelfahrzeuge!" & intColumnAnfang & intRow + 2 & ":" & intColumnEnde & intRow + 2 & _
";Einzelfahrzeuge!" & intColumnAnfang & intRow + 7 & ":" & intColumnEnde & intRow + 9

Sheets("Auswertung").Activate
Worksheets("Auswertung").ChartObjects("Diagramm 43").Chart.SetSourceData Source:=Range(strChartSource43)

End Sub
"
Bitte warten ..
Ähnliche Inhalte
Windows Tools

Robocopy bei Änderungen im Source path

gelöst Frage von DirmhirnWindows Tools1 Kommentar

Hi, was passiert wenn ich einige tausend Dateien per Robocopy kopiere und im Source path wird eine Datei geändert/erstellt? ...

Verschlüsselung & Zertifikate

OpenVPN - Schreibweise in der ovpn

gelöst Frage von trallerVerschlüsselung & Zertifikate2 Kommentare

Hallo, ich kann in einer OpenVPN-Konfigurationsdatei ja direkt über <ca></ca> bspw. die CA einbinden, oder das Zertifikat mit <cert></cert>, ...

VB for Applications

Mehrzeilige Datenquelle in eine Zeile Zusammenfassen

gelöst Frage von aivilonVB for Applications7 Kommentare

Guten Tag Admins Ich stehe wieder mal mit Excel an. Und zwar habe ich folgende Ausgangslage: Ausgangslage In einem ...

Datenschutz

Korrekte Formatierung?!

gelöst Frage von JohnMcClaneDatenschutz10 Kommentare

Hallo Leuts, eine Frage welche viele Menschen anders beurteilen, deshalb möchhte ich mal wissen wie Ihr darüber denkt. Normale ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 2 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 14 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 17 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 17 StundenMicrosoft10 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server17 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...