von balu » Fr, 09.06.2023 20:03
Hallo kilix.
"Was bedeutet diese Fehlermeldung?"
Ist doch einfach.
A1:A10 ist ein Bereich.
K100:K110 ist ein Bereich.
(A1:A10;K100:110) ist eine Mehrfachselektion (Mehrfachbereich).
Es gibt Funktionen die können nicht auf Mehrfachselektion angewendet werden.
Deine aufgezeichneten Code-Segmente fallen unter den Begriff "Dispatcher". Das ist wohl manchmal wirklich ganz gut und schön, aber für umfangreichere Programme ist das einfach nur
absoluter MIST! Und das bestätigt sich ja in deinem Falle. Du hast nur aufgezeichnet, aber Du weisst nicht genau was da eigentlich abläuft. Und jetzt stehst Du wie der Ochs vorm Scheunentor und weisst nicht weiter. Mit anderen Worten. "Lern richtig zu programmieren!"
Ich wette Du hast Karolus hiermit
Karolus hat geschrieben: Do, 08.06.2023 08:57
Dann stell dir mal vor du bekommst diese 500Zeilen-wurst (ohne Kontext) vorgesetzt und sollst das debuggen!
nicht richtig verstanden. Um aber dieses defizit auszugleichen setzen wir das mal Praktisch in die Tat um.
Im folgendem Code tritt dieser Fehler auf:

- fehler.jpg (12.56 KiB) 8019 mal betrachtet
Jetzt sollst
DU kilix den Fehler verstehen, suchen, finden und beseitigen. Viel Spaß auch dabei

.
Code: Alles auswählen
Public aLabels(99)
Public BtnFaHelpIcon(1) as String
Sub MonatlicheFarben
oHptDialog.setVisible(false)
oHptDialog.isVisible(false)
wait 50
'--------------------------------------------------------------------------------------------------------------------------
for lavf = 0 to 99
aLabels(lavf) = oFarbDialog.getControl("Label" & lavf +1).Model
next lavf
'--------------------------------------------------------------------------------------------------------------------------
iFaPal = 0
iFNa = 1
Fuellen
'--------------------------------------------------------------------------------------------------------------------------
oFarbDialog.Model.PositionX = 305
oFarbDialog.Model.PositionY = 12
'--------------------------------------------------------------------------------------------------------------------------
ThisComponent.CurrentController.ColumnRowHeaders = false
ThisComponent.CurrentController.ShowGrid = false
'--------------------------------------------------------------------------------------------------------------------------
oLab102 = oFarbDialog.getControl("Label102").Model
oLab102.backgroundcolor = BackFarbe
oLab102.TextColor = FontFarbe
'--------------------------------------------------------------------------------------------------------------------------
oFarbDialog.getControl("Label103").Text = " " & BackFarbName
oFarbDialog.getControl("Label104").Text = " " & FontFarbName
'--------------------------------------------------------------------------------------------------------------------------
odraw = oPreview.drawpage
Form1 = odraw.Forms.getbyIndex(0)
oFormularButton = Form1.getbyname("Schaltfläche 1")
oFormularButton.BackgroundColor = BackFarbe
oFormularButton.TextColor = FontFarbe
oFormularButton.Label = oMonat.SelectedItem
'--------------------------------------------------------------------------------------------------------------------------
oFarbDialog.getControl("Label102").Text = "Datei ist nur für" & CHR(13) & oMonat.SelectedItem & " " & oJahr.SelectedItem & CHR(13) & "gültig!"
'--------------------------------------------------------------------------------------------------------------------------
oZellBereich = oPreview.getCellRangeByName("A1:G7")
oZellBereich.CellBackColor = BackFarbe
oZellBereich.charcolor = FontFarbe
'--------------------------------------------------------------------------------------------------------------------------
oPreview.isvisible = True
'--------------------------------------------------------------------------------------------------------------------------
myView4 = ThisComponent.CurrentController
oSheet4 = ThisComponent.Sheets(2)
myView4.setActiveSheet(oSheet4)
'--------------------------------------------------------------------------------------------------------------------------
BtnFaHelpIcon(1) = "sHilfe.png"
oFarbDialog.Model.GetByName("BtnHelpFarbe").ImageURL = tempInit & "/" & BtnFaHelpIcon(1)
oFarbDialog.setVisible(true)
oFarbDialog.isVisible(true)
'--------------------------------------------------------------------------------------------------------------------------
end sub
'
'###########################################################################################################################
'
sub MonatlicheFarbenBeenden
myView3 = ThisComponent.CurrentController
oSheet3 = ThisComponent.Sheets(3)
oPreview.isvisible = False
myView3.setActiveSheet(oSheet3)
'--------------------------------------------------------------------------------------------------------------------------
oHptDialog.Model.PositionX = 11
oHptDialog.Model.PositionY = 12
'--------------------------------------------------------------------------------------------------------------------------
BruchStatus
'--------------------------------------------------------------------------------------------------------------------------
For fapin = 1 to 6
oLab300 = oHptDialog.getControl("Label" & fapin +300).Model
oLab300.backgroundcolor = HintergrundFarbe
oLab300.TextColor = SchriftFarbe
next fapin
'--------------------------------------------------------------------------------------------------------------------------
oHptDialog.getControl("Label305").Text = " " & CHR$(13) & oMonat.SelectedItem
oHptDialog.getControl("Label306").Text = "Datei ist nur für" & CHR(13) & oMonat.SelectedItem & " " & oJahr.SelectedItem & CHR(13) & "gültig!"
'--------------------------------------------------------------------------------------------------------------------------
for btnicoi = 1 to 9
oHptDialog.Model.GetByName(BtnHilfe(1, btnicoi)).ImageURL = tempInit & "/" & btnico(2)
next btnicoi
'--------------------------------------------------------------------------------------------------------------------------
oHptDialog.Model.Step = 3
End Sub
'
'###########################################################################################################################
'
Sub FarbeSetzen(oEvent)
oLesen = oEvent.Source.Model.Name
FabNr = Val(right(oLesen, len(oLesen) -5))
'--------------------------------------------------------------------------------------------------------------------------
odraw = oPreview.drawpage
Form1 = odraw.Forms.getbyIndex(0)
oFormularButton = Form1.getbyname("Schaltfläche 1")
'--------------------------------------------------------------------------------------------------------------------------
oZellBereich = oPreview.getCellRangeByName("A1:G7")
'--------------------------------------------------------------------------------------------------------------------------
if oFarbDialog.getControl("OptionButton3").Model.state = 1 Then
oFarbDialog.getControl("Label102").Model.backgroundcolor = FaLi(iFaPal, FabNr -1)
oZellBereich.CellBackColor = FaLi(iFaPal, FabNr -1)
BackFarbe = FaLi(iFaPal, FabNr -1)
BackFarbName = FaLi(iFNa, FabNr -1)
oFormularButton.BackgroundColor = FaLi(iFaPal, FabNr -1)
oFarbDialog.getControl("Label103").Text = " " & FaLi(iFNa, FabNr -1)
'--------------------------------------------------------------------------------------------------------------------------
else
if oFarbDialog.getControl("OptionButton4").Model.state = 1 Then
oFarbDialog.getControl("Label102").Model.TextColor = FaLi(iFaPal, FabNr -1)
oZellBereich.charcolor = FaLi(iFaPal, FabNr -1)
FontFarbe = FaLi(iFaPal, FabNr -1)
FontFarbName = FaLi(iFNa, FabNr -1)
oFormularButton.TextColor = FaLi(iFaPal, FabNr -1)
oFarbDialog.getControl("Label104").Text = " " & FaLi(iFNa, FabNr -1)
end if
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
'
'###########################################################################################################################
'
Sub LabelLesen(oEvent)
oLesen = oEvent.Source.Model.Name
LaLe = Val(right(oLesen, len(oLesen) -5))
oFarbDialog.getControl("Label101").Text = " " & FaLi(iFNa, LaLe -1)
end sub
'
'########################################################################################################
'
Sub LabelOff(oEvent)
oFarbDialog.getControl("Label101").Text = ""
end sub
'
'########################################################################################################
'
sub ArtWechseln(oEvent)
oArWe = oEvent.Source.Model.Name
ArtWex = Val(right(oArWe, len(oArWe) -12))
if ArtWex = 3 Then
OpBu1 = 3
OpBu2 = 4
OptionenWechseln
'--------------------------------------------------------------------------------------------------------------------------
else
OpBu1 = 4
OpBu2 = 3
OptionenWechseln
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
'
'########################################################################################################
'
sub PaletteWechseln(oEvent)
oPaWe = oEvent.Source.Model.Name
PalNr = Val(right(oPaWe, len(oPaWe) -12))
if PalNr = 2 Then
OpBu1 = 2
OpBu2 = 1
OptionenWechseln
'--------------------------------------------------------------------------------------------------------------------------
iFaPal = 2
iFNa = 3
Fuellen
'--------------------------------------------------------------------------------------------------------------------------
else
OpBu1 = 1
OpBu2 = 2
OptionenWechseln
iFaPal = 0
iFNa = 1
Fuellen
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
'
'########################################################################################################
'
sub OptionenWechseln
oOptBu1 = oFarbDialog.getControl("OptionButton" & OpBu1).Model
oOptBu1.backgroundcolor = FaLi(0, 2) '= "&H008000" : FaLi(1, 2) = "Grün"
oOptBu1.TextColor = FaLi(0,15) '= "&Hffffff" : FaLi(1,15) = "Weiß"
oOptBu2 = oFarbDialog.getControl("OptionButton" & OpBu2).Model
oOptBu2.backgroundcolor = -1
oOptBu2.state = 0
oOptBu2.TextColor = 0
end sub
'
'########################################################################################################
'
sub Fuellen
for lafu = 0 to 99
aLabels(lafu).backgroundcolor = FaLi(iFaPal, lafu)
aLabels(lafu).HelpText = " " & FaLi(iFNa, lafu)
next lafu
end sub
'
'########################################################################################################
'
Sub FarbenDialogEnde(oEvent)
oFaDiEn = oEvent.Source.Model.Name
DlgEnd = Val(right(oFaDiEn, len(oFaDiEm) -13))
If DlgEnd = 1 then
bruch = 0
else
bruch = 1
endif
oHptDialog.setVisible(true)
oHptDialog.isVisible(true)
oHptDialog.isActive(true)
oHptDialog.isEnabled(true)
WennFarbeHilfe
oFarbDialog.setVisible(false)
oFarbDialog.isVisible(false)
MonatlicheFarbenBeenden
end Sub
'
'########################################################################################################
'
sub WennFarbeHilfe
if oDlgFarbeHilfe.isVisible() = true then
oDlgFarbeHilfe.setVisible(false)
oDlgFarbeHilfe.isVisible(false)
end if
end sub
'
'########################################################################################################
'
Sub BruchStatus
if bruch = 0 then
HintergrundFarbe = BackFarbe
SchriftFarbe = FontFarbe
'--------------------------------------------------------------------------------------------------------------------------
else
HintergrundFarbe = HinterFarbe(XZaehler)
SchriftFarbe = TextFarbe(XZaehler)
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
Gruß
balu
Hallo kilix.
"Was bedeutet diese Fehlermeldung?"
Ist doch einfach.
A1:A10 ist ein Bereich.
K100:K110 ist ein Bereich.
(A1:A10;K100:110) ist eine Mehrfachselektion (Mehrfachbereich).
Es gibt Funktionen die können nicht auf Mehrfachselektion angewendet werden.
Deine aufgezeichneten Code-Segmente fallen unter den Begriff "Dispatcher". Das ist wohl manchmal wirklich ganz gut und schön, aber für umfangreichere Programme ist das einfach nur [b][i][u]absoluter MIST![/u][/i][/b] Und das bestätigt sich ja in deinem Falle. Du hast nur aufgezeichnet, aber Du weisst nicht genau was da eigentlich abläuft. Und jetzt stehst Du wie der Ochs vorm Scheunentor und weisst nicht weiter. Mit anderen Worten. "Lern richtig zu programmieren!"
Ich wette Du hast Karolus hiermit
[quote=Karolus post_id=300202 time=1686207425 user_id=3801]
Dann stell dir mal vor du bekommst diese 500Zeilen-wurst (ohne Kontext) vorgesetzt und sollst das debuggen!
[/quote]
nicht richtig verstanden. Um aber dieses defizit auszugleichen setzen wir das mal Praktisch in die Tat um.
Im folgendem Code tritt dieser Fehler auf:
[attachment=0]fehler.jpg[/attachment]
Jetzt sollst [b][u]DU[/u][/b] [b][u]kilix[/u][/b] den Fehler verstehen, suchen, finden und beseitigen. Viel Spaß auch dabei :lol: .
[code=php]
Public aLabels(99)
Public BtnFaHelpIcon(1) as String
Sub MonatlicheFarben
oHptDialog.setVisible(false)
oHptDialog.isVisible(false)
wait 50
'--------------------------------------------------------------------------------------------------------------------------
for lavf = 0 to 99
aLabels(lavf) = oFarbDialog.getControl("Label" & lavf +1).Model
next lavf
'--------------------------------------------------------------------------------------------------------------------------
iFaPal = 0
iFNa = 1
Fuellen
'--------------------------------------------------------------------------------------------------------------------------
oFarbDialog.Model.PositionX = 305
oFarbDialog.Model.PositionY = 12
'--------------------------------------------------------------------------------------------------------------------------
ThisComponent.CurrentController.ColumnRowHeaders = false
ThisComponent.CurrentController.ShowGrid = false
'--------------------------------------------------------------------------------------------------------------------------
oLab102 = oFarbDialog.getControl("Label102").Model
oLab102.backgroundcolor = BackFarbe
oLab102.TextColor = FontFarbe
'--------------------------------------------------------------------------------------------------------------------------
oFarbDialog.getControl("Label103").Text = " " & BackFarbName
oFarbDialog.getControl("Label104").Text = " " & FontFarbName
'--------------------------------------------------------------------------------------------------------------------------
odraw = oPreview.drawpage
Form1 = odraw.Forms.getbyIndex(0)
oFormularButton = Form1.getbyname("Schaltfläche 1")
oFormularButton.BackgroundColor = BackFarbe
oFormularButton.TextColor = FontFarbe
oFormularButton.Label = oMonat.SelectedItem
'--------------------------------------------------------------------------------------------------------------------------
oFarbDialog.getControl("Label102").Text = "Datei ist nur für" & CHR(13) & oMonat.SelectedItem & " " & oJahr.SelectedItem & CHR(13) & "gültig!"
'--------------------------------------------------------------------------------------------------------------------------
oZellBereich = oPreview.getCellRangeByName("A1:G7")
oZellBereich.CellBackColor = BackFarbe
oZellBereich.charcolor = FontFarbe
'--------------------------------------------------------------------------------------------------------------------------
oPreview.isvisible = True
'--------------------------------------------------------------------------------------------------------------------------
myView4 = ThisComponent.CurrentController
oSheet4 = ThisComponent.Sheets(2)
myView4.setActiveSheet(oSheet4)
'--------------------------------------------------------------------------------------------------------------------------
BtnFaHelpIcon(1) = "sHilfe.png"
oFarbDialog.Model.GetByName("BtnHelpFarbe").ImageURL = tempInit & "/" & BtnFaHelpIcon(1)
oFarbDialog.setVisible(true)
oFarbDialog.isVisible(true)
'--------------------------------------------------------------------------------------------------------------------------
end sub
'
'###########################################################################################################################
'
sub MonatlicheFarbenBeenden
myView3 = ThisComponent.CurrentController
oSheet3 = ThisComponent.Sheets(3)
oPreview.isvisible = False
myView3.setActiveSheet(oSheet3)
'--------------------------------------------------------------------------------------------------------------------------
oHptDialog.Model.PositionX = 11
oHptDialog.Model.PositionY = 12
'--------------------------------------------------------------------------------------------------------------------------
BruchStatus
'--------------------------------------------------------------------------------------------------------------------------
For fapin = 1 to 6
oLab300 = oHptDialog.getControl("Label" & fapin +300).Model
oLab300.backgroundcolor = HintergrundFarbe
oLab300.TextColor = SchriftFarbe
next fapin
'--------------------------------------------------------------------------------------------------------------------------
oHptDialog.getControl("Label305").Text = " " & CHR$(13) & oMonat.SelectedItem
oHptDialog.getControl("Label306").Text = "Datei ist nur für" & CHR(13) & oMonat.SelectedItem & " " & oJahr.SelectedItem & CHR(13) & "gültig!"
'--------------------------------------------------------------------------------------------------------------------------
for btnicoi = 1 to 9
oHptDialog.Model.GetByName(BtnHilfe(1, btnicoi)).ImageURL = tempInit & "/" & btnico(2)
next btnicoi
'--------------------------------------------------------------------------------------------------------------------------
oHptDialog.Model.Step = 3
End Sub
'
'###########################################################################################################################
'
Sub FarbeSetzen(oEvent)
oLesen = oEvent.Source.Model.Name
FabNr = Val(right(oLesen, len(oLesen) -5))
'--------------------------------------------------------------------------------------------------------------------------
odraw = oPreview.drawpage
Form1 = odraw.Forms.getbyIndex(0)
oFormularButton = Form1.getbyname("Schaltfläche 1")
'--------------------------------------------------------------------------------------------------------------------------
oZellBereich = oPreview.getCellRangeByName("A1:G7")
'--------------------------------------------------------------------------------------------------------------------------
if oFarbDialog.getControl("OptionButton3").Model.state = 1 Then
oFarbDialog.getControl("Label102").Model.backgroundcolor = FaLi(iFaPal, FabNr -1)
oZellBereich.CellBackColor = FaLi(iFaPal, FabNr -1)
BackFarbe = FaLi(iFaPal, FabNr -1)
BackFarbName = FaLi(iFNa, FabNr -1)
oFormularButton.BackgroundColor = FaLi(iFaPal, FabNr -1)
oFarbDialog.getControl("Label103").Text = " " & FaLi(iFNa, FabNr -1)
'--------------------------------------------------------------------------------------------------------------------------
else
if oFarbDialog.getControl("OptionButton4").Model.state = 1 Then
oFarbDialog.getControl("Label102").Model.TextColor = FaLi(iFaPal, FabNr -1)
oZellBereich.charcolor = FaLi(iFaPal, FabNr -1)
FontFarbe = FaLi(iFaPal, FabNr -1)
FontFarbName = FaLi(iFNa, FabNr -1)
oFormularButton.TextColor = FaLi(iFaPal, FabNr -1)
oFarbDialog.getControl("Label104").Text = " " & FaLi(iFNa, FabNr -1)
end if
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
'
'###########################################################################################################################
'
Sub LabelLesen(oEvent)
oLesen = oEvent.Source.Model.Name
LaLe = Val(right(oLesen, len(oLesen) -5))
oFarbDialog.getControl("Label101").Text = " " & FaLi(iFNa, LaLe -1)
end sub
'
'########################################################################################################
'
Sub LabelOff(oEvent)
oFarbDialog.getControl("Label101").Text = ""
end sub
'
'########################################################################################################
'
sub ArtWechseln(oEvent)
oArWe = oEvent.Source.Model.Name
ArtWex = Val(right(oArWe, len(oArWe) -12))
if ArtWex = 3 Then
OpBu1 = 3
OpBu2 = 4
OptionenWechseln
'--------------------------------------------------------------------------------------------------------------------------
else
OpBu1 = 4
OpBu2 = 3
OptionenWechseln
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
'
'########################################################################################################
'
sub PaletteWechseln(oEvent)
oPaWe = oEvent.Source.Model.Name
PalNr = Val(right(oPaWe, len(oPaWe) -12))
if PalNr = 2 Then
OpBu1 = 2
OpBu2 = 1
OptionenWechseln
'--------------------------------------------------------------------------------------------------------------------------
iFaPal = 2
iFNa = 3
Fuellen
'--------------------------------------------------------------------------------------------------------------------------
else
OpBu1 = 1
OpBu2 = 2
OptionenWechseln
iFaPal = 0
iFNa = 1
Fuellen
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
'
'########################################################################################################
'
sub OptionenWechseln
oOptBu1 = oFarbDialog.getControl("OptionButton" & OpBu1).Model
oOptBu1.backgroundcolor = FaLi(0, 2) '= "&H008000" : FaLi(1, 2) = "Grün"
oOptBu1.TextColor = FaLi(0,15) '= "&Hffffff" : FaLi(1,15) = "Weiß"
oOptBu2 = oFarbDialog.getControl("OptionButton" & OpBu2).Model
oOptBu2.backgroundcolor = -1
oOptBu2.state = 0
oOptBu2.TextColor = 0
end sub
'
'########################################################################################################
'
sub Fuellen
for lafu = 0 to 99
aLabels(lafu).backgroundcolor = FaLi(iFaPal, lafu)
aLabels(lafu).HelpText = " " & FaLi(iFNa, lafu)
next lafu
end sub
'
'########################################################################################################
'
Sub FarbenDialogEnde(oEvent)
oFaDiEn = oEvent.Source.Model.Name
DlgEnd = Val(right(oFaDiEn, len(oFaDiEm) -13))
If DlgEnd = 1 then
bruch = 0
else
bruch = 1
endif
oHptDialog.setVisible(true)
oHptDialog.isVisible(true)
oHptDialog.isActive(true)
oHptDialog.isEnabled(true)
WennFarbeHilfe
oFarbDialog.setVisible(false)
oFarbDialog.isVisible(false)
MonatlicheFarbenBeenden
end Sub
'
'########################################################################################################
'
sub WennFarbeHilfe
if oDlgFarbeHilfe.isVisible() = true then
oDlgFarbeHilfe.setVisible(false)
oDlgFarbeHilfe.isVisible(false)
end if
end sub
'
'########################################################################################################
'
Sub BruchStatus
if bruch = 0 then
HintergrundFarbe = BackFarbe
SchriftFarbe = FontFarbe
'--------------------------------------------------------------------------------------------------------------------------
else
HintergrundFarbe = HinterFarbe(XZaehler)
SchriftFarbe = TextFarbe(XZaehler)
'--------------------------------------------------------------------------------------------------------------------------
end if
end sub
[/code]
Gruß
balu