ich erstelle gerade ein basic-tool für mehrfaches suchen/ersetzen (6 su/er-paare). dabei belibt die status abfrage bei den mit cbx beginnenden kontollelemente ohne wirkung. d.h. es ist egal, ob ich ein häkchen drin habe oder nicht der austausch wird immer vorgenommen. ich kann den fehler nicht erkennnen.
Sub dlgStartSuErMultiple
DialogLibraries.LoadLibrary("Standard")
'--Dialog wird aufgerufen und angezeigt
oDlg=CreateUnoDialog(DialogLibraries.Standard.dlgSuErMulitple) 'Dialog anlegen
oDlg.execute()
'--1. Paar ermittelt die Suchen-Ersetzungspaare durch Abfrage der state-Eigenschaft und wendet je
'--nach Option den Suchen/Ersetzen-Vorgang in den selektierten Zellen oder allen Blättern an
If oDlg.getControl("optSuErRange").state And oDlg.getControl("cbxSuEr1").state = 1 then
Call SuErMultiple'bei der Option wird das Makro SuErMultiple aufgerufen
ElseIf oDlg.getControl("optSuErAlleBlaetter").state And oDlg.getControl("cbxSuEr1").state = 1 then
Call SuErMultipleAlleBlaetter'bei der Option werden alle Blätter durchsucht
Option Explicit
Dim oDlg as Object
Sub dlgStartSuErMultiple
DialogLibraries.LoadLibrary("Standard")
'--Dialog wird aufgerufen und angezeigt
oDlg=CreateUnoDialog(DialogLibraries.Standard.dlgSuErMultiple) 'Dialog anlegen
oDlg.execute()
Dim oConSel as Object
Dim oConAlleBlaetter as Object
oConSel = oDlg.getControl("optSuErRange").getModel()
oConAlleBlaetter = oDlg.getControl("optSuErAlleBlaetter").getModel()
'--1. Paar: ermittelt die Suchen-Ersetzungspaare durch Abfrage der state-Eigenschaft und wendet je
'--nach Option den Suchen/Ersetzen-Vorgang in den selektierten Zellen oder allen Blättern an
If oConSel.state = 1 And oDlg.getControl("cbxSuEr1").state = 1 then
Call SuErMultiple'bei der Option wird das Makro SuErMultiple aufgerufen
ElseIf oConAlleBlaetter.state = 1 And oDlg.getControl("cbxSuEr1").state = 1 then
Call SuErMultipleAlleBlaetter'bei der Option werden alle Blätter durchsucht
die alternative liefert das gleiche ergebnsi/fehler
Option Explicit
Dim oDlg as Object
Sub dlgStartSuErMultiple
DialogLibraries.LoadLibrary("Standard")
'--Dialog wird aufgerufen und angezeigt
oDlg=CreateUnoDialog(DialogLibraries.Standard.dlgSuErMultiple) 'Dialog anlegen
oDlg.execute()
Dim oConSel as Object
Dim oConAlleBlaetter as Object
Dim oConSuEr1 as Object
Dim oConSuEr2 as Object
oConSel = oDlg.getControl("optSuErRange").getModel()
oConAlleBlaetter = oDlg.getControl("optSuErAlleBlaetter").getModel()
oConSuEr1 = oDlg.getControl("cbxSuEr1").getModel()
oConSuEr2 = oDlg.getControl("cbxSuEr2").getModel()
'--1. Paar: ermittelt die Suchen-Ersetzungspaare durch Abfrage der state-Eigenschaft und wendet je
'--nach Option den Suchen/Ersetzen-Vorgang in den selektierten Zellen oder allen Blättern an
If oConSel.state = 1 And oConSuEr1.state = 1 then
Call SuErMultiple'bei der Option wird das Makro SuErMultiple aufgerufen
ElseIf oConAlleBlaetter.state = 1 And oConSuEr1.state = 1 then
Call SuErMultipleAlleBlaetter'bei der Option werden alle Blätter durchsucht
'--2. Paar ermittelt die Suchen-Ersetzungspaare durch Abfrage der state-Eigenschaft und wendet je
'--nach Option den Suchen/Ersetzen-Vorgang in den selektierten Zellen oder allen Blättern an
ElseIf oConSel.state = 1 And oConSuEr2.state = 1 then
Call SuErMultiple'bei der Option wird das Makro SuErMultiple aufgerufen
ElseIf oConAlleBlaetter.state = 1 And oConSuEr2.state = 1 then
Call SuErMultipleAlleBlaetter'bei der Option werden alle Blätter durchsucht
hier sieht alles gut aus. Du brauchst allerdings nicht das Model() - sondern den Control selbst! Ist aber wahrscheinlich auch egal - das ERgebnis dürfte das gleiche sein....
Also, ich hab deinen Code grob verviollständigt und getestet - funktioniert einwandfrei - so, wie er soll
Dim oDlg as Object
Sub dlgStartSuErMultiple
DialogLibraries.LoadLibrary("Standard")
'--Dialog wird aufgerufen und angezeigt
oDlg=CreateUnoDialog(DialogLibraries.Standard.dlgSuErMultiple) 'Dialog anlegen
oDlg.execute()
Dim oConSel as Object
Dim oConAlleBlaetter as Object
oConSel = oDlg.getControl("optSuErRange")'.getModel()
oConAlleBlaetter = oDlg.getControl("optSuErAlleBlaetter")'.getModel()
msgbox "1: " & oDlg.getControl("cbxSuEr1").state & chr(13) & _
"2: " & oConSel.state & chr(13) & _
"3: " & oConAlleBlaetter.state
'--1. Paar: ermittelt die Suchen-Ersetzungspaare durch Abfrage der state-Eigenschaft und wendet je
'--nach Option den Suchen/Ersetzen-Vorgang in den selektierten Zellen oder allen Blättern an
If oConSel.state = 1 And oDlg.getControl("cbxSuEr1").state = 1 then
'Call SuErMultiple'bei der Option wird das Makro SuErMultiple aufgerufen
msgbox "ch1 und ch2 = 1"
ElseIf oConAlleBlaetter.state = 1 And oDlg.getControl("cbxSuEr1").state = 1 then
'Call SuErMultipleAlleBlaetter'bei der Option werden alle Blätter durchsucht
msgbox "ch1 und ch3 = 1"
else
msgbox "nix"
end if
end sub