AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zeile in eine Excel Tabelle einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeile in eine Excel Tabelle einfügen

Ein Thema von Andreas Leix · begonnen am 31. Jul 2008 · letzter Beitrag vom 31. Jul 2008
Antwort Antwort
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#1

Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 07:38
Hallo !
Ich will in eine Excel Tabelle an einer bestimmten Stelle eine Zeile einfügen.
Habe dazu schon die gleich lautende Anfrage in diesem Forum gefunden.
Leider komm ich mit dem Antwort-Hinweis nicht zu recht.

Ich habe ein WorkSheet WS und will in der 25. Zeile eine Zeile einfügen.

"WS.Row(25).insert (...) " läßt sich nicht compilieren.

kann mir jemand mit einem kleinen Code-Schnipsel weiterhelfen ?
Danke !


Gruß
Andreas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 07:42
Lass dir die Aktion als Makro aufzeichnen. Der Zugriff über COM erfolgt synchron
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 07:44
Hallo Andreas Leix,

an welcher Stelle kommst Du denn nicht weiter?

OLE - Grundlagen

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#4

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 08:18
Hey, ihr seid aber schnell !


Wenn ich mir im excel ein Markro aufzeichnen lasse, kommt folgendes raus

Sub Makro1()
'
' Makro1 Makro
'
Rows("25:25").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Das Statement Rows("12:12").Select kann ich so nicht in Delphi übernehmen.

Wenn ich mir ein Worksheet in einem Dokument hole

 WS:= Excel.Sheets[intSheet] as _WorkSheet; dann klappt das. Das Worksheet habe ich also.

Aber eine Programmzeile

  WS.Rows('25:25').select; läßt sich nicht compilieren. ( Fehler : "Operator oder Semikolon fehlt" )

Auch
 WS.Rows[25,25].select; wird nicht compiliert. ( Fehler: "Klasse besitzt keine Standard Eigenschaft" )


Wie kann ich syntaktisch korrekt eine bestimmte Zeile in einem Worksheet selektieren.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 09:00
Was für einen Typ hat WS?
Markus Kinzler
  Mit Zitat antworten Zitat
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#6

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 09:17
Deklaration von WS

var WS: _WorkSheet;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 09:32
S.Rows.Item(25,25).Select;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 10:25
Hallo Andreas Leix,

funktioniert mkinzler´s Lösung?

Sonst könntest Du noch diese Zeile probieren,

WS.Rows.Range['a4','a4'].Insert(2); // An der 4 Zeile eine neue Zeile einfügen. Wobei ich nicht sicher bin, ob die Zahl hinter Insert richtig ist, weil ich auf dem PC zurzeit kein Excel habe.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#9

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 10:49
Hallo !
Erstmal Danke für eure Hilfe!
Die von mkinzler vorgeschlagene Lösung hat nach kleiner Modifikation soweit mal funktioniert.
Eine Zeile läßt sich markieren mit :
WS.Rows.Item[intZeile,emtpyParam].select; Der Witz war der zweite Parameter emptyParam. (Von den eckigen Klammern mal abgesehen )
Man kann sehen,das das funktioniert, wenn man das Dokument danach im Ecxel anschaut, ist genau die richtige Zeile markiert.
Danach ruf ich
WS.Rows.Insert ( xlDown, xlFormatFromLeftOrAbove ); auf.

Da bekomm ich zu Laufzeit aber eine Fehlermeldung:
"Ausgefüllte Zellen können nicht über das Arbeitsblatt hinaus verschoben werden, ...."

Ech komisch !
Der Witz vom Einfügen ist ja gerade, dass alles was danach kommt eine Zeile weiter rutscht und das Blatt größer wird.
Es scheint also so, dass rein syntaktisch/ole-mäßig die insert Funktion schon richtig aufgerufen wird,
aber ... weiß der Geier was !
Liegt´s etwa an den Aufrufparametern von insert, die ich angegeben habe ?
Ich probier´s jetzt mal mit dem Vorschlag vom Chemiker.

Gruß
Andreas
  Mit Zitat antworten Zitat
Andreas Leix

Registriert seit: 28. Apr 2008
31 Beiträge
 
#10

Re: Zeile in eine Excel Tabelle einfügen

  Alt 31. Jul 2008, 11:13
Hallo Chemiker !
Dein Vorschlag hat funktioniert !!!
Klasse Danke !!
So hats geklappt:
WS.Rows.Range['A'+inttoStr(intZeile),'A'+intToStr(intZeile)].Insert( xlDown, xlFormatFromLeftOrAbove ); So werden tatsächlich ohne Murren Zeilen eingefügt!!
Super !
Danke !

So, jetzt mach ich mich dran und versuch mal einen Bereich auch wieder rauszulöschen...


Gruß
Andreas
  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 11:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz