ExcelFunktionen COMatePlus

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Lord
Beiträge: 313
Registriert: 21.01.2008 19:11

Re: ExcelFunktionen COMatePlus

Beitrag von Lord »

Hallo Falko!

Danke, daß Du den ersten Beitrag überarbeitet hast.

Die jetzige Version der ExcelFunktion.pbi funkioniert jetzt bei mir
soweit fehlerfrei.
Wegen Unicode-Abhängigkeit der neuen Version werde ich aber
bei der alten Version bleiben.
Bild
Benutzeravatar
mueckerich
Beiträge: 220
Registriert: 13.09.2004 11:33
Wohnort: Am schönsten Flecken der Erde, zwischen PC und Motorrad

Re: ExcelFunktionen COMatePlus

Beitrag von mueckerich »

Hallo Falko,

ich hab mir jetzt nicht den ganzen Therad durchgelesen und bin auch nicht auf dem neuesten Stand. Darum weiß ich nicht so genau ob es den folgenden Codeschnipsel schon gibt. Wenn nicht dann kannst du wieder mal eine Klitzekleinigkeit :) von mir einfügen.

Code: Alles auswählen

[/Procedure.s XLSFunc_ColumnNumberToColumnName(ExcelObject.COMateObject, Column.i);Convert Number to Column Name
  Protected.s ReturnValue, sTmp
  Protected.i iPos
  ReturnValue = ExcelObject\GetStringProperty("Cells(1,"+Str(Column)+")\Address")
  ProcedureReturn Mid(ReturnValue,2,FindString(ReturnValue,"$",2)-2)
EndProcedure

Procedure.i XLSFunc_ColumnNameToColumnNumber(ExcelObject.COMateObject, ColumnName.s);Convert Name to Column Number
  Protected ReturnValue.i
  ReturnValue=ExcelObject\GetIntegerProperty("Range('"+ ColumnName + "1')\Column")
  ProcedureReturn ReturnValue
EndProcedure
Nochmals vielen Dank dass Du und das Projekt zur Verfügung stellst. Ich liebe dieses Teil. :allright:
"Wenn Sie glauben, mich verstanden zu haben, dann habe ich mich falsch ausgedrückt" ( Alan Greenspan)
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von Falko »

Hallo mueckerich,

das freut mich. Ich habe deinen Code aufgenommen und die Änderung auf heute datiert, sowie mit der
aktuellen PB 5.42LTS B3 getestet.

Vielen Dank für deine Unterstützung. :allright:

Gruß,
Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Benutzeravatar
mueckerich
Beiträge: 220
Registriert: 13.09.2004 11:33
Wohnort: Am schönsten Flecken der Erde, zwischen PC und Motorrad

Re: ExcelFunktionen COMatePlus

Beitrag von mueckerich »

Ich versuch gerade verzweifelt die bedingte Formatierung einer Zelle in Excel hinzubekommen. Krieg es aber nicht hin, hat jemand eine Idee wo mein Fehler liegt?
Hier der VBA Code:

Code: Alles auswählen

Sub Makro1()
    Range("A1:G1").Select
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 13551615
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("A1").Select
End Sub
und hier mein Scheitern :cry: . Irgendwie seh ich den Wald vor lauter Bäumen nicht, da schon das Hinzufügen einer bedingten Formatierung mit "Selection\FormatConditions\Add" nicht funktioniert.

Code: Alles auswählen

Procedure XLSFunc_SetConditionalFormat(ExcelObject.COMateObject, Range.s, Farbe.l, Typ.i=#xlCellValue, Operator.i=#xlGreater, Formel.s="=0")
  ExcelObject\Invoke("Range('"+Range + "')\Select")
  ExcelObject\SetProperty("Selection\FormatConditions\Add(" + Str(Typ) + ", " + Str(Operator) + ", " + Formel + ")")
  ExcelObject\Invoke("Selection\FormatConditions(Selection\FormatConditions\Count)\SetFirstpriority")
  ExcelObject\SetProperty("Selection\FormatConditions(1)\Interior\PatternColorIndex = " + Str(#xlAutomatic))
  ExcelObject\SetProperty("Selection\FormatConditions(1)\Interior\Color = " + Str(Farbe))
  ExcelObject\SetProperty("Selection\FormatConditions(1)\TintAndShade = 0")
  ExcelObject\SetProperty("Selection\FormatConditions(1)\StopIfTrue = False")
EndProcedure
"Wenn Sie glauben, mich verstanden zu haben, dann habe ich mich falsch ausgedrückt" ( Alan Greenspan)
Hans Dieter Graap
Beiträge: 10
Registriert: 24.03.2016 09:11

Re: ExcelFunktionen COMatePlus

Beitrag von Hans Dieter Graap »

Ich habe versucht ein Programm auszuführen. Bis PB 5.41 klappt alles. Ab aktueller Version 5.42 meckert PB die COMatePlus.pbi in der Zeile 619 excep\pfnDeferredFillin(excep) an mit "unbrauchbarer Code am Ende der Zeile".
Habe es unter Win7 und XP getested.
Zurück nach PB 5.41 geht alles wieder.
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Re: ExcelFunktionen COMatePlus

Beitrag von Falko »

COMatePLUS, welche für PB 5.42 angepasst sein soll.

http://www.purebasic.fr/english/viewtop ... 13&t=65292

MfG,

Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Hans Dieter Graap
Beiträge: 10
Registriert: 24.03.2016 09:11

Re: ExcelFunktionen COMatePlus

Beitrag von Hans Dieter Graap »

Vielen Dank, nun läuft auch PB 5.42 :allright:
Hans Dieter Graap
Beiträge: 10
Registriert: 24.03.2016 09:11

Speichern unter Win7 mit Excel 2010

Beitrag von Hans Dieter Graap »

Gibt es Besonderheiten bei Win7 Excel 2010 , die unter XP und Excel 2000 nicht waren? Es ist nicht mehr möglich, eine Excel Tabelle mit WorkbookSaveAs abzuspeichern. Der Befehl wird einfach ignoriert. Ich starte Purebasic mit Administratorrechten und habe auch in den Einstellungen Admin Rechte holen angeklickt.
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Speichern unter Win7 mit Excel 2010

Beitrag von Kiffi »

füge mal hinter der Zeile:

Code: Alles auswählen

Workbook\Invoke("SaveAs('"+FileName+"', " + Str(FFormat) + ")") ;Save As #xlNormal or #xlCSV or another CSV (MSDOS or Windows)
testweise folgendes ein:

Code: Alles auswählen

Debug COMate_GetLastErrorCode()
Debug COMate_GetLastErrorDescription()
Unter Umständen wird Dir dann angezeigt, was schief gelaufen ist.

Grüße ... Peter
Hygge
Hans Dieter Graap
Beiträge: 10
Registriert: 24.03.2016 09:11

Re: ExcelFunktionen COMatePlus

Beitrag von Hans Dieter Graap »

Vielen Dank für den schnellen Tip.
Hat leider nicht geholfen
Debug Ausgabe
0
OKAY

Speichert aber nicht.
Antworten