Autor |
Beitrag |
Xearox
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mo 06.06.11 17:23
Folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| if NeuerKontakt then begin ContactAdd; Excel.Sheets['Kontakte'].Cells[450,1]:=Vorname; Excel.Sheets['Kontakte'].Cells[450,2]:=Nachname; Excel.Sheets['Kontakte'].Cells[450,3]:=Street; Excel.Sheets['Kontakte'].Cells[450,4]:=PLZ; Excel.Sheets['Kontakte'].Cells[450,5]:=Fax; Kundenauswahl:=Vorname; end; |
mit diesem Code füge ich im Tabellen Blatt Kontakte, einen neuen Kontakt hinzu.
Nach geht es direkt weiter, ohne zwischen schritt mit:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Excel.Sheets['Rechnungs-Erfassung'].Cells[10,3] := Kundenauswahl; Excel.Sheets['Rechnungs-Erfassung'].Cells[35,4] := Zahlungsart; if CB_Lieferdatum.Checked then Excel.Sheets['Rechnungs-Erfassung'].Cells[33,1]:=E_Lieferdatum.Text; for I := 0 to 13 - 1 do begin Excel.Sheets['Rechnungs-Erfassung'].Cells[AnzahlZeile,19]:=ArtikelAuswahl[i].Anzahl; Excel.Sheets['Rechnungs-Erfassung'].Cells[ArtikelZeile,1]:=ArtikelAuswahl[i].Name; ArtikelZeile:=ArtikelZeile+1; AnzahlZeile:=AnzahlZeile+1; end; Excel.run('rechnungen_neu.xls!uebertragen'); Excel.Visible:=True; Excel := Unassigned; |
jedoch gibt er mir nach dem Erstencode direkt einen Fehler von VB aus.
Laufzeitfehler 1004 - Ungültiger Sortierbezug
Dies macht er aber nur, wenn ich es aus Delphi heraus mache.
In Excel selber kann ich auch zur Zeile 5000 gehen statt 450 und sortiert ohne Fehler.
Habe nach dem Fehler schon gegoogelt, aber immer wird ein Fehler im VB, aber dies ist nicht der Fall, weil es so funktioniert, aber nicht über Delphi.
Kann mir da jemand weiterhelfen?
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Mo 06.06.11 19:58
Hallo Xearox,
was steht in ArtikelZeile und AnzahlZeile beim 1 Durchlauf der for-Schleife?
Bis bald Chemiker
|
|
Xearox 
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mo 06.06.11 20:14
Das liegt an dem, was du geschrieben hast, nicht...Sobald er von Zeile 8 in 9 springt, kommt der fehler
alles andere funktioniert...also vom oberen code, wo das mit vorname etc drin steht
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Mo 06.06.11 21:03
Hallo,
wenn Du die Zeile 9 auskommentierst kommt dann trotzdem der Fehler?
Bis bald Chemiker
|
|
Xearox 
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mo 06.06.11 21:18
jop...
und wenn ich Zeile 8 auskommentiere, dann kommt er nicht mehr, jedoch braucht man die zeile 8, weil sonst die Sortier Routine nicht greift...
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Mo 06.06.11 21:39
Hallo,
ist Fax ein String oder eine Zahl?
Bis bald Chemiker
|
|
Xearox 
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mo 06.06.11 22:29
alles ist string was da steht
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Mo 06.06.11 23:10
Hallo Xearox,
wie interpretiert Excel den Inhalt von Fax als Zahl oder als String?
Bis bald Chemiker
|
|
Xearox 
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Di 07.06.11 00:00
Schaus dir bitte selber an:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340:
| unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, ComCtrls, ExtCtrls;
type TForm2 = class(TForm) Button1: TButton; LB_Kunde: TListBox; Label1: TLabel; LB_Artikel: TListBox; Label2: TLabel; Button2: TButton; E_Kunde: TEdit; L_Kunde: TLabel; LB_Aus_Artikel: TListBox; Label3: TLabel; B_transfer: TButton; CB_Lieferdatum: TCheckBox; E_Lieferdatum: TEdit; L_DatumLayout: TLabel; B_Vorschau: TButton; LB_aus_ArtikelAnz: TListBox; Label4: TLabel; TB_Artikel_Anzahl: TTrackBar; L_Test: TLabel; B_Confirm: TButton; RB_Z2: TRadioButton; RB_Z1: TRadioButton; RB_Z3: TRadioButton; RB_Z4: TRadioButton; RB_Z5: TRadioButton; RB_Z6: TRadioButton; B_NeueRechnung: TButton; CB_NewKunde: TCheckBox; E_Vorname: TEdit; E_Nachname: TEdit; E_Street: TEdit; E_PLZ: TEdit; L_Vorname: TLabel; L_Nachname: TLabel; L_Street: TLabel; L_PLZ: TLabel; E_Fax: TEdit; L_Fax: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure LB_KundeClick(Sender: TObject); procedure LB_ArtikelDblClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure CB_LieferdatumClick(Sender: TObject); procedure B_VorschauClick(Sender: TObject); procedure LB_Aus_ArtikelDblClick(Sender: TObject); procedure TB_Artikel_AnzahlChange(Sender: TObject); procedure LB_Aus_ArtikelClick(Sender: TObject); procedure B_ConfirmClick(Sender: TObject); procedure B_transferClick(Sender: TObject); procedure L_TestClick(Sender: TObject); procedure B_NeueRechnungClick(Sender: TObject); procedure CB_NewKundeClick(Sender: TObject);
private public var Excel:variant; Kundenauswahl,Zahlungsart:string; ArtikelAnz,ArtikelAnzahl,ArtikelNr:integer; ArtikelZeile,AnzahlZeile:integer; Vorname,Nachname,Street,PLZ,Stadt,Fax:string; NeuerKontakt:boolean;
procedure ArtikelFuellen; procedure Memofüllen; procedure ZahlungsTyp; procedure ContactAdd; end;
type TArtikel = record Ind : string; Anzahl: string; Name: string;
end;
var Form2: TForm2;
implementation
uses Unit3;
const ExcelTablle='rechnungen_neu.xls'; var ArtikelAuswahl: array[0..13] of TArtikel;
{$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin ArtikelFuellen; end; procedure TForm2.Button2Click(Sender: TObject); begin close; end; procedure TForm2.B_transferClick(Sender: TObject); var Excel, ArtikelSheet, ContactsSheet: OleVariant; i: Integer; begin ArtikelZeile:=18; AnzahlZeile:=18; ZahlungsTyp; try try Excel := CreateOleObject('Excel.Application'); except Excel := GetActiveOleObject('Excel.Application'); end; Excel.Workbooks.Open(ExtractFilePath(Paramstr(0))+(ExcelTablle)); ContactsSheet := Excel.Workbooks[ExcelTablle].Worksheets['Rechnungs-Erfassung']; if NeuerKontakt then begin ContactAdd; Excel.Sheets['Kontakte'].Cells[450,1]:=Vorname; Excel.Sheets['Kontakte'].Cells[450,2]:=Nachname; Excel.Sheets['Kontakte'].Cells[450,3]:=Street; Excel.Sheets['Kontakte'].Cells[450,4]:=PLZ; Excel.Sheets['Kontakte'].Cells[450,5]:=Fax; Kundenauswahl:=Vorname; end; Excel.Sheets['Rechnungs-Erfassung'].Cells[10,3] := Kundenauswahl; Excel.Sheets['Rechnungs-Erfassung'].Cells[35,4] := Zahlungsart; if CB_Lieferdatum.Checked then Excel.Sheets['Rechnungs-Erfassung'].Cells[33,1]:=E_Lieferdatum.Text; for I := 0 to 13 - 1 do begin Excel.Sheets['Rechnungs-Erfassung'].Cells[AnzahlZeile,19]:=ArtikelAuswahl[i].Anzahl; Excel.Sheets['Rechnungs-Erfassung'].Cells[ArtikelZeile,1]:=ArtikelAuswahl[i].Name; ArtikelZeile:=ArtikelZeile+1; AnzahlZeile:=AnzahlZeile+1; end; Excel.run('rechnungen_neu.xls!uebertragen'); Excel.Visible:=True; Excel := Unassigned; except exit; Showmessage('Fehler, Exceldaten konnten nicht eingelesen werden'); end; end; procedure TForm2.ContactAdd; begin Vorname:=E_Vorname.Text; Nachname:=E_Nachname.Text; PLZ:=E_PLZ.Text; Street:=E_Street.Text; if E_Fax.Text='' then Fax:='./.' else FAX:=E_Fax.Text; end; procedure TForm2.ZahlungsTyp; begin if RB_Z1.Checked then Zahlungsart:=RB_Z1.Caption; if RB_Z2.Checked then Zahlungsart:=RB_Z2.Caption; if RB_Z3.Checked then Zahlungsart:=RB_Z3.Caption; if RB_Z4.Checked then Zahlungsart:=RB_Z4.Caption; if RB_Z5.Checked then Zahlungsart:=RB_Z5.Caption; if RB_Z6.Checked then Zahlungsart:=RB_Z6.Caption; end; procedure TForm2.B_ConfirmClick(Sender: TObject); begin TB_Artikel_Anzahl.Visible:=false; B_Confirm.Visible:=false; end;
procedure TForm2.B_NeueRechnungClick(Sender: TObject); begin end;
procedure TForm2.B_VorschauClick(Sender: TObject); begin form3.show; MemoFüllen; end; procedure TForm2.CB_LieferdatumClick(Sender: TObject); begin E_Lieferdatum.Visible:=True; L_DatumLayout.Visible:=True; end; procedure TForm2.CB_NewKundeClick(Sender: TObject); begin E_Vorname.Visible:=true; E_Nachname.Visible:=true; E_Street.Visible:=true; E_PLZ.Visible:=true; E_Fax.Visible:=true; L_Vorname.Visible:=true; L_Nachname.Visible:=true; L_Street.Visible:=true; L_PLZ.Visible:=true; L_Fax.Visible:=true; NeuerKontakt:=true; end;
procedure TForm2.FormShow(Sender: TObject); begin ArtikelFuellen; ArtikelAnz:=0; ArtikelAnzahl:=1; end;
procedure TForm2.LB_ArtikelDblClick(Sender: TObject);
begin if ArtikelAnz<= 12 then begin ArtikelNr:=LB_Artikel.ItemIndex; ArtikelAuswahl[ArtikelAnz].Ind:=inttostr(ArtikelAnz); ArtikelAuswahl[ArtikelAnz].Anzahl:=IntToStr(ArtikelAnzahl); ArtikelAuswahl[ArtikelAnz].Name:=LB_Artikel.Items.Strings[ArtikelNR]; LB_Aus_Artikel.Items.Append(ArtikelAuswahl[ArtikelAnz].Name); LB_aus_ArtikelAnz.Items.Append(ArtikelAuswahl[ArtikelAnz].Anzahl); ArtikelAnz:=ArtikelAnz+1; end; end; procedure TForm2.LB_Aus_ArtikelClick(Sender: TObject); begin ArtikelNr:=Lb_Aus_Artikel.ItemIndex; L_Test.Caption:=inttostr(ArtikelNr); TB_Artikel_Anzahl.Visible:=True; B_Confirm.Visible:=True; end; procedure TForm2.LB_Aus_ArtikelDblClick(Sender: TObject); var CurrentIndex: Integer; begin CurrentIndex := LB_Aus_Artikel.ItemIndex; if CurrentIndex >= 0 then begin LB_Aus_ArtikelAnz.Items.Delete(CurrentIndex); LB_Aus_Artikel.Items.Delete(CurrentIndex); end; end; procedure TForm2.LB_KundeClick(Sender: TObject); var KundenNr:integer;
begin KundenNr:=LB_Kunde.ItemIndex; Kundenauswahl:=LB_Kunde.Items.Strings[KundenNr]; E_Kunde.Text:=Kundenauswahl; end; procedure TForm2.L_TestClick(Sender: TObject); begin L_Test.Caption:=ArtikelAuswahl[12].Ind; end;
procedure TForm2.ArtikelFuellen; var Excel, ArtikelSheet, ContactsSheet: OleVariant; i,iMaxZeilen: Integer; begin try try Excel := CreateOleObject('Excel.Application'); except Excel := GetActiveOleObject('Excel.Application'); end; Excel.Workbooks.Open(ExtractFilePath(Paramstr(0))+(ExcelTablle));
ContactsSheet := Excel.Workbooks[ExcelTablle].Worksheets['Kontakte']; iMaxZeilen := ContactsSheet.UsedRange.Rows.Count; for i := 1 to iMaxZeilen do LB_Kunde.Items.Append(ContactsSheet.Cells[i, 1]);
ArtikelSheet := Excel.Workbooks[ExcelTablle].Worksheets['Artikel']; iMaxZeilen := ArtikelSheet.UsedRange.Rows.Count; for i := 1 to iMaxZeilen do LB_Artikel.Items.Append(ArtikelSheet.Cells[i, 1]);
Excel.ActiveWorkBook.Saved := TRUE; Excel.Quit; Excel := Unassigned; except Showmessage('Fehler, Exceldaten konnten nicht eingelesen werden'); close; Excel.ActiveWorkBook.Saved := TRUE; Excel.Quit; end; end; procedure TForm2.Memofüllen; var i:integer;
begin Unit3.Form3.M_Rechnung.Lines.Add(Kundenauswahl); for i := 0 to ArtikelAnz - 1 do begin Unit3.Form3.M_Rechnung.Lines.Add(''); end;
end; procedure TForm2.TB_Artikel_AnzahlChange(Sender: TObject); begin ArtikelAuswahl[ArtikelNr].Anzahl:=inttostr(TB_Artikel_Anzahl.Position); LB_Aus_ArtikelAnz.Items[ArtikelNr]:=inttostr(TB_Artikel_Anzahl.Position); L_Test.Caption:=inttostr(TB_Artikel_Anzahl.Position); end;
end. |
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Di 07.06.11 00:40
Hallo Xearox,
folgenden Vorschlag: Excel soll Fax immer als Text interpretieren, selbst dann wenn eine reine Zahl übertragen wird.
Delphi-Quelltext 1:
| excelFormatString:= '@'; |
..
..
Delphi-Quelltext 1: 2:
| Excel.Sheets['Kontakte'].Cells[450,5]:= excelFormatString; Excel.Sheets['Kontakte'].Cells[450,5]:=Fax; |
Bis bald Chemiker
|
|
Xearox 
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Di 07.06.11 10:17
geht damit immer noch nicht
es liegt wirklich nur an diesem einen Fehler, hab einen Screenshot davon gemacht.
Ich habe ein anderes Programm erstellt, womit man auf Artikel hinzufügen kann, bei dem funktioniert alles einwandfrei.
Bei Kontakte jedoch nicht, der schreibt die Daten zwar in die Tabelle, sortiert aber nicht.
Edit: Habe mal Debuggen geklickt, nun ist dort eine Gelbe Zeile markiert.
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| Private Sub Worksheet_Change(ByVal Target As Range) '************************************************** '* H. Ziplies * '* 04.09.05 * '* erstellt von HajoZiplies@web.de * '* http://Hajo-Excel.de/ * '************************************************** ' automatisch sortieren bei Eingabe im Bereich A2:e9999 Dim RaZelle As Range For Each RaZelle In Range(Target.Address) 'column = 5 bedeuted die spalte in der was geändert werden sollte
If RaZelle.Column = 5 Then ActiveSheet.UsedRange.sort Key1:=Range("A1"), Order1:=xlAscending, _ Header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom Exit For ' Schleife verlasse da schon sortiert End If Next RaZelle End Sub |
Gelb markiert sind die Zeilen 14 und 15
Einloggen, um Attachments anzusehen!
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Mi 08.06.11 01:57
Hallo Xearox,
der Zellbezug liegt außerhalb des zu sortierenden Bereichs, oder ist leer. Ich werde aus deinen Angaben nicht so ganz schlau, aber wenn Du die 5 Spalte sortieren willst, so müsste bei Range nicht „A1“ stehen sondern „E1“. Wenn in der Spalte „A“ nichts steht wird diese Fehlermeldung angezeigt. Rufst Du diese Sub aus Deinem Delphi Programm auf?
Bis bald Chemiker
|
|
Tranx
      
Beiträge: 648
Erhaltene Danke: 85
WIN 2000, WIN XP
D5 Prof
|
Verfasst: Mi 08.06.11 03:32
Frage, warum lässt Du über eine Worksheet_Change-Prozedur in Excel sortieren?
Die sortiert ja jedesmal, wenn sich etwas in dem Excel-Datenblatt ändert. Auch sind oft Bezüge auf Zellen nicht machbar, wenn eine Change-Prozedur sie nutzt. Ich habe in meinen Excel-Makros Change-Prozeduren komplett ungenutzt gelassen und habe alles in Modulen erledigen lassen. Das ist in meinen Augen besser kontrollierbar. Und führt dann auch nicht zu unnötigen Operationen. Z.B. dann, wenn ich in einer Zelle bloß einen Namen korrigiere oder ganz woanders in dem Datenblatt etwas ändere.
Frage 2: Wenn Du die Changeprozedur herausnimmst, gibt es auch dann diesen Fehler?
_________________ Toleranz ist eine Grundvoraussetzung für das Leben.
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Mi 08.06.11 07:58
Hallo Tranx,
oder man führt die Sortierung innerhalb von OLE mit Delphi aus.
Bis bald Chemiker
|
|
Xearox 
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mi 08.06.11 11:10
Das Problem ist, das ich selber diese Excel Tabelle nicht erstellt habe, sondern das war die arbeit von meinem Chef...
Das Nächste ist, ich habe keine Ahnung was der da gemacht hat.
Es gibt in der Arbeitsmappe 9 Tabellen Blätter, die erste ist die Rechnungserfassung, in dieser Tabelle wird alles was mit Rechnung schreiben zu tun hat, rein geschrieben. Zum beispiel der Kunde, man klickt in einem Feld rein, da kommt dann eine Dropdownmenü, oder wie das genau heißt, dort werden alle Kunden aufgelistet. Die Adresse wird durch =SVERWEIS($C$10;Kontakte!$A:$E;2;0) aus dem Tabellen Blatt Kontakte raus geholt. Da ist es wichtig, das alles schön sortiert ist, daher ist dort dieses Makro eingebaut, das sobald ein neuer Kontakt unter der Liste eingefügt wird, das der direkt Sortiert wird und zwar nach spalte A1. Also nach Name.
Das Problem ist nun, das er bei der fünften Spalte, wenn dort die Fax Nummer eingetragen wurde, dieser Laufzeit Fehler kommt, aber nur, wenn ich aus Delphi per OLE dort was einfüge. Wenn ich manuell in der Excel liste was eintrage, dann wird kein Fehler angezeigt und der neue Kontakt wird Automatisch sortiert.
So, ich habe noch ein Extra Programm geschrieben, wo man neue Artikel hinzufügen kann. Mit diesem Programm wird auf dem Tabellen Blatt Artikel, bei Zeile 1000 ein neuer Artikel hinzugefügt, Hier erscheint kein Fehler wieso auch immer, der Code ist hier Identisch, nur das hier statt 5 Column nur 2 Column beim Befehl "If RaZelle.Column = 5 Then" steht.
Auch im Delphi Code ist nichts anders, nur bei dem einem werden 5 Zellen ausgefüllt bei dem anderen nur 2.
Ich hoffe, dass es nun verständlicher ist, was das Problem ist.
So: Ich habe den Fehler gefunden...Mein Chef hat mir eine Tabelle gegeben, wo daten gefehlt haben...
Das Problem ist, das die Fax Zelle immer Belegt sein MUSS. Jedoch hat er bei 3 Kunden die Fax Zelle Leer gelassen, weder eine Nummer noch ein " ./. " ... und dadurch ist die Sortier Routine immer abgeschissen...wehe, der kommt nachher zurück ins Büro, dann gibt es ärger...und wenn der dann noch sagt, das habe er extra gemacht, um mich zu ärgern, dann rappelt es...
|
|
Chemiker
      
Beiträge: 194
Erhaltene Danke: 14
XP, Vista 32 Bit, Vista 64 Bit, Win 7 64 Bit
D7, BDS 2006, RAD Studio 2009+C++, Delphi XE2, XE3, VS 2010 Prof.
|
Verfasst: Mi 08.06.11 19:56
Hallo Xearox,
Das kann aber nicht die Ursache für Deine Fehlermeldung sein. Excel sortiert trotz leerer Zellen.
Bis bald Chemiker
|
|
Xearox 
      
Beiträge: 260
Erhaltene Danke: 3
|
Verfasst: Mi 08.06.11 20:16
es war aber der fall, verstehe ich auch nicht, wieso
|
|
|