AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Excel Series.Value Zuweisung funktioniert mit Office 365 nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

Ein Thema von Nekromus · begonnen am 3. Jun 2019 · letzter Beitrag vom 14. Jun 2019
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#1

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 12. Jun 2019, 13:19
Delphi-Quellcode:
  ser.XValues:= '="DATA1(IGV=0°)"!D3:D62"'; // OLE Fehler
          ser.XValues:= '="DATA1(IGV=0°)"!R[-3]C[-3]:R[-62]C[-3]"'; // OLE Fehler
          ser.XValues:= '="DATA1(IGV=0°)"!R3C3:R62C3"'; // OLE Fehler

          ser.Values:=rng; //Mitglied nicht gefunden
Die drei OLE-Fehler sehen mir nach Syntaxfehlern aus. Kenne keine Excelvariante, die mit 'ner ungeraden Anzahl von ' oder " auskommt.

https://www.delphipraxis.net/110582-...-erzeugen.html
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 12. Jun 2019, 13:27
Die drei OLE-Fehler sehen mir nach Syntaxfehlern aus. Kenne keine Excelvariante, die mit 'ner ungeraden Anzahl von ' oder " auskommt.

https://www.delphipraxis.net/110582-...-erzeugen.html
Das hatten wir schon in #12/#13, angeblich ist es das nicht(?)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#3

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 12. Jun 2019, 13:43
Es ist aber trotzdem falsch.

Bzw. wenn ein OLE-Fehler bleibt, heißt das nicht, dass die ungerade Anzahl von " egal ist oder nicht, sondern nur das es nach der Korrektur eine Fehlerursache weniger gibt, ansonsten aber noch mehr falsch sein dürfte.

Die vollständige Fehlermeldung wäre eventuell auch mal hilfreich. Bei OLE-Fehlern bekommt man oft noch 'ne hexadezmale Zeichenfolge geliefert, die bei der Annäherung an die Fehlerursache durchaus hilfreich sein kann.

Wenn man in Excel in 'ner Zelle sowas sieht 0° heißt das noch lange nicht, dass man es auch so per String an Excel übergeben kann. Eventuell muss da nur 'ne 0 übergeben werden, die Anzeige von 0° macht Excel dann, abhängig von der Formatierung der Zelle, selbst.

Da https://www.delphipraxis.net/200946-...ausrechen.html hatten wir ja auch gerade eine Frage bezüglich dessen, was man in Excel sieht und dessen, was man ausliest.
  Mit Zitat antworten Zitat
Nekromus

Registriert seit: 21. Aug 2017
22 Beiträge
 
#4

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 12. Jun 2019, 13:58
Delphi-Quellcode:
unit TestSpäteBindung;

interface

uses Variants, ComObj,Excel2010,Dialogs,Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms;

procedure ExcelFuellen;

implementation

procedure ExcelFuellen;
var
  Excel : Variant;
  row, column,I: Integer;
  WBk, WS, SheetName: OleVariant;
  Diagramm1: OleVariant;
  serie : OleVariant;
begin
    try
      Excel := GetActiveOleObject('Excel.Application');
    except
      Excel := CreateOleObject('Excel.Application');
    end;

  excel.Application.SheetsInNewWorkBook := 8; //Die 8 is die Anzahl der Sheets
  Excel.Workbooks.Add;

  Excel.Sheets[1].Name := 'DP Sheet'; //Hierbei ist 1 das erste Sheet 2 das zweite usw.
  //von nun an können wir unser Sheet auch über den gegebenen Namen ansprechen! zB:
  Excel.Sheets['DP Sheet'];

  row := 1;
  column := 2;
  Excel.Sheets['DP Sheet'].Cells[row,column].Value := 'Hallo';
  Excel.Sheets['DP Sheet'].Cells[1,3].value := 5.23; //Da Value vom Typ Variant is können wir hier fast alles reinschreiben

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,3].value := I;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,4].value := I+30;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,5].value := I+50;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,6].value := I+80;
  end;

  Excel.Range['A1:B4'].Select; //Den Bereich A1 bis B4 makieren
  Excel.Selection.Font.Bold := true;//und im Makierten Bereich die Schriftdicke ändern

  Excel.Cells[row,column].select;
  Excel.ActiveCell.FormulaR1C1 := '=R2C1+R3C1'; // Rechnet A2 + A3

  //Excel.Sheets['DP Sheet'].Range['A5', 'A5'].Value := 'The meaning of life, the universe, and everything, is';
  //Excel.Sheets['DP Sheet'].Range['B5', 'B5'].Value := 42;

  Excel.Charts.Add;

  Excel.ActiveChart.ChartType:= xlColumnClustered;
  Excel.ActiveChart.Location (Where:= xlLocationAsObject, Name:= 'DP Sheet');
  Excel.ActiveChart.HasTitle := True;
  Excel.ActiveChart.ChartTitle.Characters.Text := 'Reisezeiten';
  Excel.ActiveChart.Axes(xlCategory, xlPrimary).HasTitle := True;
  Excel.ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := 'Uhrzeit';
  Excel.ActiveChart.Axes(xlValue, xlPrimary).HasTitle := True;
  Excel.ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := 'Dauer in sec';

  serie := Excel.ActiveChart.SeriesCollection.NewSeries;
    //serie.XValues := '=''Sued_Ost''!Z3S10:Z3'+'S10';
    //serie.Values := '=''Sued_Ost''!Z4S10:Z4'+'S10';

    serie.XValues := '=''Sued_Ost''!C3:C10';
    serie.Values := '=''Sued_Ost''!D3:D10';

  Excel.Visible := true;
  Excel := unassigned;
end;

end.
Ich versuche es gerade mal in später Bindung:

Komischerweise werden immer alle Datenreihen geplottet. Die Werte in der Serie haben gar keinen Einfluss auf das Diagramm.?

Geändert von Nekromus (12. Jun 2019 um 14:29 Uhr)
  Mit Zitat antworten Zitat
Nekromus

Registriert seit: 21. Aug 2017
22 Beiträge
 
#5

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 13. Jun 2019, 07:53
Bitte entschuldigt den 'Spam'.

Das 'Sued_Ost' musste ich natürlich durch den richtigen Worksheet Namen ersetzen. Jetzt habe ich das Problem, dass das Diagramm trotzdem alle Daten aus

Delphi-Quellcode:
  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,3].value := I;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,4].value := I+30;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,5].value := I+50;
  end;

  for I := 1 to 20 do begin
   Excel.Sheets['DP Sheet'].Cells[I,6].value := I+80;
  end;
automatisch ins Diagramm nimmt. Warum?
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 13. Jun 2019, 08:28
Weil das Chart in Excel einen Bezug auf die Zellen hat (und behält). Änderst du die Zellwerte, ändert sich das Chart.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Nekromus

Registriert seit: 21. Aug 2017
22 Beiträge
 
#7

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 13. Jun 2019, 08:52
Ok. Ich habe eine Excel mit recht vielen Werten. Möchte aber nur ausgewählte Spalten anzeigen lassen. Wie kann ich das dann machen?

Ich dachte den Bezug hätte ich nur durch
Delphi-Quellcode:
serie.XValues := '=''Sued_Ost''!C3:C10';
    serie.Values := '=''Sued_Ost''!D3:D10';
festgelegt.

Geändert von Nekromus (13. Jun 2019 um 08:59 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: Excel Series.Value Zuweisung funktioniert mit Office 365 nicht

  Alt 13. Jun 2019, 08:59
Indem du dem Diagramm nur gewisse Spalten als Datenquelle zuordnest?
Kannst du das nicht mal manuell in Excel machen und das mit dem Makro-Rekorder aufzeichnen, damit du weißt, wie das nachher im Code zu schreiben ist?
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz