Sonderzeichen Excel Object über ActiveX

Einbindung von Office-Komponenten wie Word, Excel usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Sonderzeichen Excel Object über ActiveX

Beitrag von Bertram Hansen »

Hallo,

ich bin gerade dabei einige Bericht über ActiveX als Exceldokumente zu erstellen. Ich übergebe die Daten über die Zwischenablage (Nach einem Tip von Christof =D> http://www.xbaseforum.de/viewtopic.php? ... el+activex)
Dabei habe ich jetzt 2 Probleme, bei denen ich nicht weiterkommen.

1. Wie bekomme ich das Eurosymbol als Text in die Excelzelle. Ich möchte nicht die Zelle über die Formatierung mit dem Währungssymbol haben, sondern nur z.B. in der Spaltenüberschrift statt "Betrag/EURO" "Betrag/€" als Ergebnis haben.
Ich habe mit dem folgendem Code alle Ascii Zeichen von 32 bis 255 (normal, mit ConvToAnsiCP() und mit ConvToOemCP() ) übergeben. Leider ohne Erfolg.

Code: Alles auswählen

::oSheet:Cells(::nRow,i):value := 
2. In die Fußzeile möchte ich gerne die aktuelle Seite und die Gesamtanzahl der Seiten anzeigen. Dazu gibt es unter anderem die folgenden Formatcodes unter Excel:
  • FormatcodeBeschreibung
    &D Druckt das aktuelle Datum.
    &T Druckt die aktuelle Zeit.
    &F Druckt den Namen des Dokuments.
    &A Druckt den Namen des Registers einer Arbeitsmappe.
    &P Druckt die Seitenzahl.
    &P+Zahl Druckt die Seitenzahl zuzüglich der angegebenen Zahl.
    &P+Zahl Druckt die Seitenzahl abzüglich der angegebenen Zahl.
    && Druckt ein einzelnes kaufmännisches Und-Zeichen.
    &"Schriftart" Druckt die nachfolgenden Zeichen in der angegebenen Schriftart. Schriftart muss von Anführungszeichen eingeschlossen sein.
    &nn Druckt die nachfolgenden Zeichen im angegebenen Schriftgrad. Geben Sie eine zweistellige Zahl an, um den Schriftgrad anzugeben.
    &N Druckt die Gesamtanzahl der Seiten eines Dokumentes.
Anhand dieser Formatcodes übergebe ich folgenden Code in der Fußzeile:

Code: Alles auswählen

::oSheet:PageSetup:RightFooter := "Seite &P von &N"
Als Ergebnis habe ich nachher im Exceldokument statt der aktuellen Seitennummer den Verzeichnisnamen des Exceldokumentes und statt der Gesamtanzahl der Seiten habe ich den Dokumentennamen. :(
In der benutzerdefierten Fußzeile steht nachher: Seite &[Pfad] von &[Datei]
Wieso???

Wer hat eine Idee?
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Martin Altmann »

Hallo Bertram,
das mit der Fußzeile hört sich für mich nach einem Sprachenproblem (Deutsch/Englisch) an. Könnte es sein, dass die entsprechenden Kürzel in der Deutschen Version anders heißen, als in der Englischen?
Und könnte es weiterhin sein, dass bei Automation immer die englischen "greifen"?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Bertram Hansen »

Hallo Martin,

die Idee ist mir auch schon gekommen. Aber die Suche unter Google brachte auch nur die bereits erwähnten Formatcodes zum Vorschein. Meine Excel Version ist Excel 2003 SP2 ein. Bin den der Erste der das versucht?
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Martin Altmann »

Hallo Bertram,
in meinem deutschen Excel 2003 heißen die Formatcodes wie folgt:

Code: Alles auswählen

::oSheet:PageSetup:RightFooter := "Seite &[Seite] von &[Seiten]"
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Martin Altmann »

Hallo Betram,
schau mal hier: http://my.opera.com/nudelsieb/blog/2008 ... n-pitfalls
Mußt aber ein wenig nach unten scrollen - da ist eine große Lücke in der Anzeige (bei Opare zumindest)...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 393
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Armin »

Hallo Bertram,
in Excel zeigt sich bei mir das Eurozeichen so:
=ZEICHEN(128)

z.B.
A1=ZEICHEN(128)
B1=BETRAG
C1=VERKETTEN(B1,"/",A1)

hdh, Armin
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Bertram Hansen »

Hallo Martin,

=D> Vielen Dank! Es klappt! :blob8:


Hallo Armin,

ich möchte gerne das Eurosymbol per ActiveX übergeben.

Code: Alles auswählen

::oSheet:Cells(::nRow,i):value := ??????
Leider verstehe ich Deinen Tipp nicht so richtig???
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Martin Altmann »

Hallo Bertram,
Armin meint, wenn in Zelle A1 die Formel =Zeichen( 128 ) und in B1 der Text Betrag stehen würde, dann würde durch die Formel =VERKETTEN(B1,"/",A1) in der Zelle C1 dort dann der von Dir gewünschte Text stehen!
Nun willst Du das ja ohne Zwischenzellen lösen - auch kein Problem! In Excel kann man Bereichen ja auch Namen zuweisen (also z.B. der Zelle A1 den Namen Eurozeichen - dann könnte man die Zelle A1 entweder über A1 oder Eurozeichen in Formeln ansprechen) - das hilft Dir zwar auch noch nicht, aber über den gleichen Weg kann man in Excel auch Variablen innerhalb des Arbeitsblattes definieren! Also einfach eine Variable namens Euro definieren mit dem Inhalt =Zeichen( 128 ) und in der Zielzelle mit der gewünschten Überschrift dann schreiben: =VERKETTEN("Betrag/",Euro)

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 393
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Armin »

Hallo Martin,

danke, so habe ich´s gemeint. Grüsse, Armin
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Sonderzeichen Excel Object über ActiveX

Beitrag von Bertram Hansen »

Hallo,

vielen Dank für Eure Hilfe. Mittlerweile habe ich mit Hilfe meines Kollegen eine Lösung gefunden. Wie schon erwähnt gehe ich den Umweg über die Zwischenablage.

Mein Aufruf:

Code: Alles auswählen

oDatenToExcel:Clipboard("Betrag/"+CHR(128))  // Eurosymbol
Methode Clipboard:

Code: Alles auswählen

/*
 * Zwischenablage 
 */
METHOD ClDatenToExcel:Clipboard(cClipboard)
   LOCAL oClipboard, nCharSet
   
   oClipboard := xbpClipboard():new():create()
   oClipboard:Open()
   // Lösung
   // Die Option aktiviert einen Zeichensatz, der nach dem ANSI Standard codiert ist.
   nCharSet := Set(_SET_CHARSET, CHARSET_ANSI)
   oClipboard:Clear()
   oClipboard:SetBuffer(cClipboard)
   oClipboard:Close()
   // und wieder zurückschalten
   Set(_SET_CHARSET, nCharSet)
   oClipboard:destroy()

   ::oSheet:Cells(::nRow,1):select()
   ::oSheet:Paste()
   
RETURN self
:D
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Antworten