Fehler bei Funktionsaufruf "Argument nicht optional"
Moderator: Moderatoren
Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo zusammen,
um eine größere importierte Tabelle in der eigenen Struktur konsistent benutzbar zu machen werden etliche Anpassungen (Doppel entfernen, Leerzeilen aus- und einbauen, etc.) Dies ist teils in Basic, teils mit Uno gemacht und funktioniert.
Dabei entstehen Arrays in die Rechenfunktionen eingebaut werden. Soweit kein Problem...
Allerdings werden auch Summenformeln benötigt. Hiebei scheitere ich an den CellNames die für die Formeln notwendig sind. Mit CellAdress kann ich umgehen brauch aber die SpaltenNamen.
Habe das mit .CellAdressConversation (s.U.) probiert, macht aber gar nichts, nicht einmal einen Fehler.
Dann habe ich mir die Function AdressString etwas modifiziert abgeschrieben.
Die Function ist gespeichert. Beim Aufruf kommt allerdings der Fehler "Argument nicht optional", die Zeile s=Chr$((.... ist markiert...
Bitte um verständliche Hilfe, habe nicht wirklich viel Ahnung. Etliche Stunden gebastelt, weiß nicht mehr weiter...
Danke schon mal vorab.
Function AdressString(oCol as long, oRow)
Dim s$
Do
s = Chr$((oCol Mod 26) + 65) & s
oCol = oCol \ 26 - 1
Loop Until oCol = -1
If bWithSheet Then
AdressString = s & CStr(oRow + 1)
End If
End Function
'' Das folgende macht einfach überhaupt nichts
' Dim oConv
' oConv = ThisComponent.createInstance("com.sun.star.table.CellAdressConversation")
' oCelle=mySheet.getCellByPosition(ocolumn + 1,startSum)
' oConv.Adress = oCelle.getCellAdress ()
' startCell = oConv.UserInterfaceRepresentation
'MsgBox startcell
' oCelle=mySheet.getCellByPosition(ocolumn + 1,endSum)
' oConv.Adress = oCelle.getCellAdress ()
' endCell = oConv.UserInterfaceRepresentation
'MsgBox endCell
'......
startRow = oRow
oCelle=mySheet.getCellByPosition(ocolumn,orow)
'MsgBox startRow
myView.Select(oCelle)
dim args13(1) as new com.sun.star.beans.PropertyValue 'Nur zum testen
args13(0).Name = "By"
args13(0).Value = 1
args13(1).Name = "Sel"
args13(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRightToEndOfData", "", 0, args13())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
startSum = oRow
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args1())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
endSum = oRow
oCol = oColumn
AdressString()
MsgBox AdressString
um eine größere importierte Tabelle in der eigenen Struktur konsistent benutzbar zu machen werden etliche Anpassungen (Doppel entfernen, Leerzeilen aus- und einbauen, etc.) Dies ist teils in Basic, teils mit Uno gemacht und funktioniert.
Dabei entstehen Arrays in die Rechenfunktionen eingebaut werden. Soweit kein Problem...
Allerdings werden auch Summenformeln benötigt. Hiebei scheitere ich an den CellNames die für die Formeln notwendig sind. Mit CellAdress kann ich umgehen brauch aber die SpaltenNamen.
Habe das mit .CellAdressConversation (s.U.) probiert, macht aber gar nichts, nicht einmal einen Fehler.
Dann habe ich mir die Function AdressString etwas modifiziert abgeschrieben.
Die Function ist gespeichert. Beim Aufruf kommt allerdings der Fehler "Argument nicht optional", die Zeile s=Chr$((.... ist markiert...
Bitte um verständliche Hilfe, habe nicht wirklich viel Ahnung. Etliche Stunden gebastelt, weiß nicht mehr weiter...
Danke schon mal vorab.
Function AdressString(oCol as long, oRow)
Dim s$
Do
s = Chr$((oCol Mod 26) + 65) & s
oCol = oCol \ 26 - 1
Loop Until oCol = -1
If bWithSheet Then
AdressString = s & CStr(oRow + 1)
End If
End Function
'' Das folgende macht einfach überhaupt nichts
' Dim oConv
' oConv = ThisComponent.createInstance("com.sun.star.table.CellAdressConversation")
' oCelle=mySheet.getCellByPosition(ocolumn + 1,startSum)
' oConv.Adress = oCelle.getCellAdress ()
' startCell = oConv.UserInterfaceRepresentation
'MsgBox startcell
' oCelle=mySheet.getCellByPosition(ocolumn + 1,endSum)
' oConv.Adress = oCelle.getCellAdress ()
' endCell = oConv.UserInterfaceRepresentation
'MsgBox endCell
'......
startRow = oRow
oCelle=mySheet.getCellByPosition(ocolumn,orow)
'MsgBox startRow
myView.Select(oCelle)
dim args13(1) as new com.sun.star.beans.PropertyValue 'Nur zum testen
args13(0).Name = "By"
args13(0).Value = 1
args13(1).Name = "Sel"
args13(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRightToEndOfData", "", 0, args13())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
startSum = oRow
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args1())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
endSum = oRow
oCol = oColumn
AdressString()
MsgBox AdressString
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo
Vergiss den Müll, und beschreibe/zeige einfach um was es eigentlich geht!
Vergiss den Müll, und beschreibe/zeige einfach um was es eigentlich geht!
Code: Alles auswählen
function col_name( col_index )
with ThisComponent.Sheets(0)
col_name = .Columns( col_index ).Name
end with
end function
sub main
print(col_name( 24 ) )
end sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Vielen Dank für den Code. Macht genau was ich brauche, allerdings nur in vitro. Vermute dass ich mangels Kompetenz nicht den Bezug auf meine Tabelle hinkrieg. Funktion ist eingebaut. Beim Funktionsaufruf kommt der Fehler wie gehabt.
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo,
Im konkreten Beispiel kannst du die function nicht direkt starten, sondern die sub "main". Woher sollte die die function sonst wissen, welchen Wert col_index hat.
Im konkreten Beispiel kannst du die function nicht direkt starten, sondern die sub "main". Woher sollte die die function sonst wissen, welchen Wert col_index hat.
Gruß,
mikeleb
mikeleb
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo
Aufruf der Funktion direkt:
Aufruf indirekt via main: Du solltest IMHO aber ein paar Schritte zurückgehen und deine eigentliche Aufgabenstellung beschreiben, anstatt nach einer Lösung für ein Teilproblem zu fragen, das du gar nicht hättest …
Aufruf der Funktion direkt:
Aufruf indirekt via main: Du solltest IMHO aber ein paar Schritte zurückgehen und deine eigentliche Aufgabenstellung beschreiben, anstatt nach einer Lösung für ein Teilproblem zu fragen, das du gar nicht hättest …
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Danke für eure Antworten,
@mikeleb: gerade das funktioniert bei mir nicht. Die Funktion befindet sich in Meine Makros\Standard\Module_Funktion und sollte laut Hilfe allen Makros zugänglich sein, zumindest auf diesem Rechner. Aber beim Funktionsaufruf kommt der o.g. Fehler.
@Karolus: Das Makro richtet die Tabelle so wie sie gebraucht wird. Hinter jedem Kunden entsteht ein Array um monatliche Zahlen zu ermitteln. Dazu wird vom Makro eine Universalformel in eine Helferzelle geschrieben und später in die Arrays kopiert. [oCelle.formulaLocal = "=WENN(UND(JAHR($K2)=AW$1;MONAT($K2)=AW$2);$L2*$N2;"")"]
Über jedem Array soll die Spaltensumme stehen. Für die Summenformel brauch ich die Abfangs- und Endzeile sowie den col_name.
Hier der Abschnitt:
myDoc = thisComponent
mySheet = myDoc.sheets(0)
myView = myDoc.CurrentController
oCelle=myDoc.getCurrentSelection().getCellAddress()
oRow=oCelle.Row
oColumn=oCelle.column
oCelle=mySheet.getCellByPosition(ocolumn,orow)
ActKdNr = oCelle.value
'MsgBox ActKdNr
Dim EOF as integer 'Nur zum testen!
EOF = 15 'Nur zum testen!
Do While oRow < EOF
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
Do While NextKdNr = 0
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
'MsgBox NextKdNr
Loop
startRow = oRow
oCelle=mySheet.getCellByPosition(ocolumn,orow)
'MsgBox startRow
myView.Select(oCelle)
dim args13(1) as new com.sun.star.beans.PropertyValue 'Nur zum testen
args13(0).Name = "By"
args13(0).Value = 1
args13(1).Name = "Sel"
args13(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRightToEndOfData", "", 0, args13())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
startSum = oRow
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args1())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
endSum = oRow
oCol = oColumn
col_name (oCol)
MsgBox col_name
Loop
@mikeleb: gerade das funktioniert bei mir nicht. Die Funktion befindet sich in Meine Makros\Standard\Module_Funktion und sollte laut Hilfe allen Makros zugänglich sein, zumindest auf diesem Rechner. Aber beim Funktionsaufruf kommt der o.g. Fehler.
@Karolus: Das Makro richtet die Tabelle so wie sie gebraucht wird. Hinter jedem Kunden entsteht ein Array um monatliche Zahlen zu ermitteln. Dazu wird vom Makro eine Universalformel in eine Helferzelle geschrieben und später in die Arrays kopiert. [oCelle.formulaLocal = "=WENN(UND(JAHR($K2)=AW$1;MONAT($K2)=AW$2);$L2*$N2;"")"]
Über jedem Array soll die Spaltensumme stehen. Für die Summenformel brauch ich die Abfangs- und Endzeile sowie den col_name.
Hier der Abschnitt:
myDoc = thisComponent
mySheet = myDoc.sheets(0)
myView = myDoc.CurrentController
oCelle=myDoc.getCurrentSelection().getCellAddress()
oRow=oCelle.Row
oColumn=oCelle.column
oCelle=mySheet.getCellByPosition(ocolumn,orow)
ActKdNr = oCelle.value
'MsgBox ActKdNr
Dim EOF as integer 'Nur zum testen!
EOF = 15 'Nur zum testen!
Do While oRow < EOF
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
Do While NextKdNr = 0
oRow = oRow + 1
oCelle=mySheet.getCellByPosition(ocolumn,orow)
NextKdNr = oCelle.value
'MsgBox NextKdNr
Loop
startRow = oRow
oCelle=mySheet.getCellByPosition(ocolumn,orow)
'MsgBox startRow
myView.Select(oCelle)
dim args13(1) as new com.sun.star.beans.PropertyValue 'Nur zum testen
args13(0).Name = "By"
args13(0).Value = 1
args13(1).Name = "Sel"
args13(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRightToEndOfData", "", 0, args13())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
startSum = oRow
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args1())
oCelle=mySheet.getCellByPosition(ocolumn,orow)
endSum = oRow
oCol = oColumn
col_name (oCol)
MsgBox col_name
Loop
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo
Die ersten 7 Zeilen deines gezeigten Codes kann man schlicht durch:
ersetzen …ohne zuerst die »Koordinaten« der aktuell selektierten Zelle zu ermitteln, um dann über die »Koordinaten« wieder auf diese Zelle zuzugreifen.
wie du siehst gehts auch ohne sinnfreie Prefixe wie my … o
Die Kundennummern würde ich nicht als numerische Werte festhalten sondern als Text, genauso wie Postleitzahlen oder Telefonnummern
Aus dem Rest deines zusammengeklaubten Wurstelcodes kann ich beim besten Willen nicht auf die konkrete Tabellenstruktur zurückschliessen, um einen passenden Lösungsansatz zu entwerfen.
Es braucht hier einfach ein Beispielsdokument ( mit anonymen Kundendaten) aus dem klar hervorgeht was da eigentlich gemacht werden soll
Die ersten 7 Zeilen deines gezeigten Codes kann man schlicht durch:
Code: Alles auswählen
doc = thisComponent
sheet = doc.sheets(0)
cell = doc.getCurrentSelection()
ActKdNr = cell.Value
wie du siehst gehts auch ohne sinnfreie Prefixe wie my … o
Die Kundennummern würde ich nicht als numerische Werte festhalten sondern als Text, genauso wie Postleitzahlen oder Telefonnummern
Aus dem Rest deines zusammengeklaubten Wurstelcodes kann ich beim besten Willen nicht auf die konkrete Tabellenstruktur zurückschliessen, um einen passenden Lösungsansatz zu entwerfen.
Es braucht hier einfach ein Beispielsdokument ( mit anonymen Kundendaten) aus dem klar hervorgeht was da eigentlich gemacht werden soll
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo,
Ich habe es so nachgebaut:
function col_name in Meine Makros\Standard\Module_Funktion
Aufruf über sub main (im Dokument)
funktioniert.
Wie rufst du denn die Funktion auf?Die Funktion befindet sich in Meine Makros\Standard\Module_Funktion und sollte laut Hilfe allen Makros zugänglich sein, zumindest auf diesem Rechner. Aber beim Funktionsaufruf kommt der o.g. Fehler.
Ich habe es so nachgebaut:
function col_name in Meine Makros\Standard\Module_Funktion
Aufruf über sub main (im Dokument)
funktioniert.
Gruß,
mikeleb
mikeleb
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
etwas offtopic:
Die Funktion »col_name« in rekursiv:
Die Funktion »col_name« in rekursiv:
Code: Alles auswählen
'# basic '
function col_name(i)
if i < 26 then
col_name = chr( i + 65 )
exit function
end if
r = i mod 26
i = i \ 26 -1
col_name = col_name( i ) & chr( r + 65 )
end function
'###################'
# python:
def col_name(i):
if i < 26:
return f"{i+65:c}"
i, r = divmod(i, 26)
return f"{col_name(i-1)}{r+65:c}"
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
@mikeleb: So gehts bei mir auch. Nur nicht in meinem Makro. Der Aufruf steht in der drittletzten Zeile von meinem peposteten Codegebastel.
@Karolus: Wenn du dir das antun willst...
Das gelieferte xlsx wird ins die AOOCalc Tabelle kopiert (Soll auch später automatisiert werden.)
Wenn CheckDS ausgeführt wird geschieht folgendes:
eventuelle ' werden entfernt. (KdNr soll numerisch sein)
Tabelle wird überprüft ob Zeile 1 -4 so sind wie erwartet und in Zeile 5 die erste KdNr steht.
Leerzeilen 2 u. 4 werden entfernt
EOF letzte Zeile wird ermittelt
Headlines (Jahr, Monat) über den späteren Arrays schreiben. (Hier sollte 2024 dynamisch werden damit das Ding nächstes Jahr noch geht)
Formeln in die Helferzellen schreiben. !!! Hier fällt auf dass das Makro ein " zu wenig und eine Klammer zuviel schreibt ???? Größeres Problem?
Dann werden über der KdNr 2 Leerzeilen eingefügt und die Doppeleinträge darunter entfernt. Für alle KdNr's
Jetzt werden startRow und endRow für die Summenformeln ermittelt. Bis hier funktioniert das Gebastel.
Und jetzt brauchts die colNames...
Damit wäre das Ding eigentlich fast fertig...........
Das Makro wird einmal pro Monat zum Update gebraucht (Update automatisieren und auf integrität prüfen: Nächste Baustelle)
Dein offtopic Beitrag ist noch nicht ganz verstanden, werde mich aber damit beschäftigen wenn das Ding hier fertig ist
@Karolus: Wenn du dir das antun willst...
Das gelieferte xlsx wird ins die AOOCalc Tabelle kopiert (Soll auch später automatisiert werden.)
Wenn CheckDS ausgeführt wird geschieht folgendes:
eventuelle ' werden entfernt. (KdNr soll numerisch sein)
Tabelle wird überprüft ob Zeile 1 -4 so sind wie erwartet und in Zeile 5 die erste KdNr steht.
Leerzeilen 2 u. 4 werden entfernt
EOF letzte Zeile wird ermittelt
Headlines (Jahr, Monat) über den späteren Arrays schreiben. (Hier sollte 2024 dynamisch werden damit das Ding nächstes Jahr noch geht)
Formeln in die Helferzellen schreiben. !!! Hier fällt auf dass das Makro ein " zu wenig und eine Klammer zuviel schreibt ???? Größeres Problem?
Dann werden über der KdNr 2 Leerzeilen eingefügt und die Doppeleinträge darunter entfernt. Für alle KdNr's
Jetzt werden startRow und endRow für die Summenformeln ermittelt. Bis hier funktioniert das Gebastel.
Und jetzt brauchts die colNames...
Damit wäre das Ding eigentlich fast fertig...........
Das Makro wird einmal pro Monat zum Update gebraucht (Update automatisieren und auf integrität prüfen: Nächste Baustelle)
Dein offtopic Beitrag ist noch nicht ganz verstanden, werde mich aber damit beschäftigen wenn das Ding hier fertig ist
- Dateianhänge
-
- KdArtStat_soll.ods
- (27.23 KiB) 214-mal heruntergeladen
-
- KdArtStat_ist.ods
- (18.52 KiB) 200-mal heruntergeladen
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo
Kaum hat man aus der »IST«tabelle alle sinnlosen Leerzeichen in den nur scheinbar leeren Zellen entfernt, bekommt man mit ein paar Mausklicks und Mausschubserei eine wunderhübsche Pivottabelle die IMHO wesentlich besser die Daten zusammengefasst darstellt als deine Versuche… mit nachträglich noch einer berechnete Gesamtspalte mit »Menge x Einzelpreis«
Kaum hat man aus der »IST«tabelle alle sinnlosen Leerzeichen in den nur scheinbar leeren Zellen entfernt, bekommt man mit ein paar Mausklicks und Mausschubserei eine wunderhübsche Pivottabelle die IMHO wesentlich besser die Daten zusammengefasst darstellt als deine Versuche… mit nachträglich noch einer berechnete Gesamtspalte mit »Menge x Einzelpreis«
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo Karolus, dein Ansatz ist gut gemeint hilft mir aber nicht weiter. Mit ein paar Mausclicks eine Tabelle schön zu machen kann ich schon, ist aber nicht Gegenstand meiner Aufgabe.
Ich will nicht rumlabern aber hier ein paar Infos: Meine erste TBC war Quattro Pro unter Win 3.11. Das war 1993. Habe damals mit Makros experimentiert, allerdings mangels Dokumentation aufgegeben. Seit ein paar Jahren benutze ich AOO Calc. Ich bin kein Progammierer und außer ein Bissl Kenntnisse in VB6 ist nicht viel da.
Das aktuelle Projekt mache ich um meine LGin bei ihrem lausigen Aussendienstjob zu helfen. Da sie mit Ctrl C und Ctrl V bereits ihre Probleme hat muss das Dokument möglichst "unkaputtbar" sein. Es gibt ein xlsx mit Kundendaten (KdNr.,Adr., Tel, Fax) ca.1000 Zeilen. Und ein xlsx mit Verkaufszahlen (KdNr., Art, Stk., Dat.) Das kommt monatlich und muss später ohne mein Eingreifen als Update rein. Die Zahlen sind wichtig um die fälligen Kontakte zu planen. Alle Änderungen der Kundendaten werden via Tabelleneintrag im Table Kundendetails via MakroButton erledigt. Ansonsten bleibt das Dokument zu jeder Zeit geschützt.
Falls du zur Veranschaulichung ein KomlettDummy brauchst mach ich noch eins.
Die Aufbereitung der KdArtStat ist zu 98,5% fertig und scheitert nur and der Funktion colName! Bitte hilf mir da!!!!!
Ebenso muss das Problem gelöst werden dass das Makro beim Schreiben der Rechenfunktionen statt des letzten " eine ) schreibt. S.o.
Wäre wirklich dankbar für zielführende Unterstützung!
Ich will nicht rumlabern aber hier ein paar Infos: Meine erste TBC war Quattro Pro unter Win 3.11. Das war 1993. Habe damals mit Makros experimentiert, allerdings mangels Dokumentation aufgegeben. Seit ein paar Jahren benutze ich AOO Calc. Ich bin kein Progammierer und außer ein Bissl Kenntnisse in VB6 ist nicht viel da.
Das aktuelle Projekt mache ich um meine LGin bei ihrem lausigen Aussendienstjob zu helfen. Da sie mit Ctrl C und Ctrl V bereits ihre Probleme hat muss das Dokument möglichst "unkaputtbar" sein. Es gibt ein xlsx mit Kundendaten (KdNr.,Adr., Tel, Fax) ca.1000 Zeilen. Und ein xlsx mit Verkaufszahlen (KdNr., Art, Stk., Dat.) Das kommt monatlich und muss später ohne mein Eingreifen als Update rein. Die Zahlen sind wichtig um die fälligen Kontakte zu planen. Alle Änderungen der Kundendaten werden via Tabelleneintrag im Table Kundendetails via MakroButton erledigt. Ansonsten bleibt das Dokument zu jeder Zeit geschützt.
Falls du zur Veranschaulichung ein KomlettDummy brauchst mach ich noch eins.
Die Aufbereitung der KdArtStat ist zu 98,5% fertig und scheitert nur and der Funktion colName! Bitte hilf mir da!!!!!
Ebenso muss das Problem gelöst werden dass das Makro beim Schreiben der Rechenfunktionen statt des letzten " eine ) schreibt. S.o.
Wäre wirklich dankbar für zielführende Unterstützung!
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo zusammen, das Problem Funktionsaufruf ist zwar nicht gelöst aber etwas entschäft. Für die cellNames zumindest bis AZ habe ich ein Workarond gebastel. Hätte ich auch mal früher draufkommen können:
Dim oColString as String
if oCol < 26 Then
oColValue = oCol + 65
oColString = chr (oColValue)
else If oCol > 25 <64 Then
oColValue = oCol + 39
oColString = "A" & chr (oColValue)
end If
end If
Ungelöst aber wichtig: Wenn das Makro die Formel oCelle.formulaLocal = "=WENN(UND(JAHR($K2)=AW$1;MONAT($K2)=AW$2);$L2*$N2;"")" schreibt wird das letzte " offensichtlich durch ) ersetzt. Das geschieht auch bei anderen Formeln. Das darf keinesfalls sein.
Weiß jemand wie man das abstellt?
Dim oColString as String
if oCol < 26 Then
oColValue = oCol + 65
oColString = chr (oColValue)
else If oCol > 25 <64 Then
oColValue = oCol + 39
oColString = "A" & chr (oColValue)
end If
end If
Ungelöst aber wichtig: Wenn das Makro die Formel oCelle.formulaLocal = "=WENN(UND(JAHR($K2)=AW$1;MONAT($K2)=AW$2);$L2*$N2;"")" schreibt wird das letzte " offensichtlich durch ) ersetzt. Das geschieht auch bei anderen Formeln. Das darf keinesfalls sein.
Weiß jemand wie man das abstellt?
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo
Deine Funktion »ColString« ist jetzt komplett kaputt, das hattest du schon besser gemacht in deinem Ausgangsbeitrag.
Die Quotes innerhalb müssen verdoppelt werden, wenn du also »""« möchtestet musst du an der Stelle »""""« schreiben.
⇒
Deine Funktion »ColString« ist jetzt komplett kaputt, das hattest du schon besser gemacht in deinem Ausgangsbeitrag.
Die Quotes innerhalb müssen verdoppelt werden, wenn du also »""« möchtestet musst du an der Stelle »""""« schreiben.
⇒
Code: Alles auswählen
… "=WENN(UND(JAHR($K2)=AW$1;MONAT($K2)=AW$2);$L2*$N2; """" )"
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Fehler bei Funktionsaufruf "Argument nicht optional"
Hallo,
Die Funktion erwatrtet also zwei Argumente.
Der Aufruf erfolgt dann aber nur über
Es fehlen also die erwarteten Argumente.
Ich habe mir den ursprünglichen Code noch einmal angesehen.das Problem Funktionsaufruf ist zwar nicht gelöst
Code: Alles auswählen
Function AdressString(oCol as long, oRow)
...
End Function
Der Aufruf erfolgt dann aber nur über
Code: Alles auswählen
AdressString()
Gruß,
mikeleb
mikeleb