Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
416to420
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
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Union(r1,r2) funzt nicht

Union(r1,r2) funzt nicht
Christoph
Hallo zusammen,
aus Access heraus erstelle ich eine Arbeitsmappe, in welcher ca. 100 Charts auf Basis der in die Mappe kopierten Bereiche erstellt werden sollen.
Nun können für eine Grafik die Spalten A,B,D in Frage kommen. C wird ausgelassen.
Chart.SetSourceDate benötigt einen Bereich als Argument. Daher möchte ich ein Range-Objekt via Union in der Schleife füllen.
Hier kommt der Code.
Union bricht ab mit Fehler 1004? = 'Union' für das Objekt _Global fehlgeschlagen'. Verstehe ich nicht :-(
strTMP hat jeweils etwa den Inhalt: "A4:A6"
Das erste rngChart ist für der Bereich die Befüllung der Kategoriewerte. Die Wertspalten kommen dann in der Schleife dazu.
Wichtig: Sowohl rngChart als auch rngTMP sind gültige Range-Objekte. Das habe ich bereits geprüft. Nur das Union dieser zwei funktioniert nicht.
Danke
Christoph


        '******************************Loop durch Spalten**********************************************************************************
        strSheet = "Diagramme" 'CStr(.Fields("Blatt"))
        strTMP = GetChartDataSourceString(.Fields("Zeile"), 1, intGemeinden)
        Set rngChart = xlWb.Sheets(strSheet).Range(strTMP)
        
        
        Do Until rsSpaltenAW.EOF
            If rsSpaltenAW.Fields("dsZeigen") = "Wahr" Then
                strTMP = GetChartDataSourceString(.Fields("Zeile"), rsSpaltenAW.Fields("Spalte"), intGemeinden)
                Set rngTmp = xlWb.Sheets(strSheet).Range(strTMP)
                Set rngChart = Union(rngChart, rngTmp)
            End If
            rsSpaltenAW.MoveNext
        Loop
        rsSpaltenAW.Close
        '******************************Charteigenschaften zuweisen*************************************************************************
        objChart.Chart.SetSourceData Source:=rngChart, PlotBy:=xlColumns
        objChart.Chart.HasTitle = True
        objChart.Chart.ChartTitle.Characters.Text = .Fields("DiagrammTitel")

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Union(r1,r2) funzt nicht
Ramses
Hallo
Nur mal auf Verdacht
ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range("A1:A4")
erwartet den Namen der Tabelle wie im Beispiel.
Ich weiss nicht, wie du "rngChart" deklariert hast,
aber nach dem Loop hat "rngChart" keine Tabellenbezeichnung mehr
Set rngChart = Union(rngChart, rngTmp)
Ich denke, hier muss die Tabellenbezeichnung noch mit dazu
Gruss Rainer
Leider nicht...
Christoph
Hallo Ramses,
rngChart ist als Range definiert. Daher ist in jedem Schleifenlauf die Variable noch gültig (debug.print rngChart.address liefert das korrekte Ergebnis).
Habe ich Deinen Hinweis richtig verstanden?
Christoph
Anzeige
AW: Leider nicht...
Nike
Hi,
mal so versuchen?
Set rngChart = Union(rngChart, rngTmp)
ActiveChart.SetSourceData Source:=rngChart.address
wobei rngChart ein zusammenhaengender Zellbereich sein muss...
Bye
Nike
Leider nicht...
Christoph
Hallo Nike,
die Steuerung des Makros geschieht von Access aus.
Set rngChart = Union(rngChart, rngTmp) verursacht sonderbarer Weise ja den Fehler!!
Zusammenhängend muss der Bereich nicht sein, da ich in anderen Projekten bereits nicht zusammenhängende Bereiche zugewiesen habe.
Gruß
Christoph
AW: Leider nicht...
Ramses
Hallo
ich glaube, du hast das falsch verstanden.
Set rngChart = Union(rngChart, rngTmp)
rngChart hat NUR DIE ADRESSE aber keinen Tabellenbezug
probier mal
Set rngChart = Union(Worksheets("Tabelle1").Range(rngChart), rngTmp)
"Tabelle1" musst du durch den Namen deiner Tabelle ersetzen
Gruss Rainer
Anzeige
AW: Leider nicht...
Christoph
Hallo Rainer,
so, ich war kurz unterwegs. Und eine Pause ist manchmal hilfreich.
Die Union-Methode war tatsächlich das Problem, weil sie von Access aus nicht richtig zugeordnet werden konnte.
Ich habe nun den Verweis auf die Excel-Applikation gesetzt und da läuft es nun.
... = xlApp.Union(rngChart, rngTMP) is OK.
Danke für Deine Hilfe. Jedes Diskutieren eines Problems bringt weiter.
AW: Leider nicht...
Ramses
Hallo Christoph
auf die einfachsten Sachen kommt man manchmal eben nicht :-)
Danke für's Feedback
Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige