Engstirnig? Habe eine breite Stirn.
Beiträge von Alina
-
-
General Kaboom:
Von wegen "KINDER". Komm erst einmal in mein Alter, dann darfst Du auch Kind zu mir sagen. Solange heißt es, wenn schon dann "Mama". -
Moin Moin.
An dieser Stelle allen einen schönen Jahreswechsel und ein gesundes
Jahr 2015. -
Was feht ist, das er nach Stadt noch auf Daten übernehmen geht und wenn man dann Enter drückt, die Daten übernommen werden und nach einen dann weiteren Enter, man wieder von vorne anfangen kann.
-
ein thema das echt gut ist !!!
-
DANKE für die Hilfe !!!
-
Sorry, wohl vertippt.
Sollte zu Bett gehen, was ich nun auch mache.
.
DANKE DIR !!! -
Jetzt funktioniert das.
Das einzige Problem, das ich noch gefunden habe ist eine Mindestlänge die Vorgegeben ist von 5 Zeichen. Hat man nur einen Nachnamen wie "Kuss", findet er nichts. Aber das ist ganz einfach gelöst mit einem Leerzeichen nach Kuss, das ja bei der Autovervollständigung nicht auffällt. -
meine eltern habe gar keine it ahnung und können gerade mal das telefon und fax bedienen.
-
So, habe o. g. von Dir ausgeführt und bin dennoch nicht zu einer Lösung des Problems gekommen. Habe aber eine Auffälligkeit gefunden. Es liegt am "z".
Habe mal neue Testdaten erstellt aus dem Du es evtl. besser nachvollziehen kannst.
Habe mal Straßennamen genommen, da mir keine anderen einfielen.
Albert-Schweitzer-Hof
Adolf-Menzel-Weg
Anna-Hansen-Straße
Asmus-Jepsen-Weg
Asmus-Jepzen-Weg
Das was rot ist, wird nicht in der Vorschau angezeigt. Auffällig ist, das es jedes mal nach einem "z" ist. Nehme ich nur das "z" weg, ist der Fehler behoben.
Schreibe ich Albert-Schweitz, also das z, hört die Anzeige auch nicht vor dem "z" auf, sondern dann stimmt sie wieder.
.
Anlage:
Eine wahrlos erstellte Beispieldatei mit Straßennamen aus Flensburg in einer Excel-Datei.
Jedoch als *csv statt wie genutzt *.xlsx.Beispiel-Script:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include-once
#include <Array.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include 'PredictText.au3'
#include <GUIConstants.au3>Local $hGUI = GUICreate('Geb. und Tel. nach Namen aus Excel-A-Spalte', 220, 70)
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 200, 15)
[/autoit] [autoit][/autoit] [autoit]
Local $Input1 = GUICtrlCreateInput('', 10, 30, 200, 30)
SetSuggestion_Dimensions(300, 150)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys); Excel-Bereich Start
[/autoit] [autoit][/autoit] [autoit]
Global $sFilePath = @ScriptDir & "\test.xlsx"
Local $oExcel = _Excel_Open(False, False, True, True, True)If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Dateiname falsch oder sie müssen nachfolgende Datei schließen '" & $sFilePath); & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf; Einlesen von A2:A27
[/autoit] [autoit][/autoit] [autoit]
Local $bResult = _Excel_RangeRead($oWorkbook, Default, "A2:A27", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "11Excel UDF: _Excel_RangeRead", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSE
ExitLoopCase $nEnter
[/autoit] [autoit][/autoit] [autoit]
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, -1, -1)
ende()
EndSwitch
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit] [autoit][/autoit] [autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $bResult, 0, 1, 0, 1)
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]Return $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]
EndFuncFunc Ende()
[/autoit] [autoit][/autoit] [autoit]
Local $aResult = _Excel_RangeFind($oWorkbook, (GUICtrlRead($Input1)))If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $text = StringReplace($aResult[0][2], "$A$", "$B$")
[/autoit] [autoit][/autoit] [autoit]
Local $numreplacements = @extended
Local $text2 = StringReplace($aResult[0][2], "$A$", "$C$")
;Local $numreplacements2 = @extended
$sCellValue = _Excel_RangeRead($oWorkbook, Default, $text)
$sCellValue2 = _Excel_RangeRead($oWorkbook, Default, $text2)MsgBox(0, "Das ist ein Beispiel ", "Telefonnummer: " & @CRLF & $sCellValue & @CRLF & @CRLF & "Geburtsdatum: " & @CRLF & $sCellValue2)
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]_Excel_BookClose($oWorkbook)
[/autoit]
_Excel_Close($oExcel, False) -
Beschenken? DANKE, stell auf den Balkon.
Allen erholsame drei (für die die Sa. arbeiten dürfen) ansonsten fünf Tage dann mal !!!
-
Dein Wunsch ist mir befohlen
Habe oben mal die Variable eingefügt und Excel alles raus genommen.
Variable: $bResult = "Pia Wollweber-Kellzer-Sörensen"Hier geht es, aber wenn die Excel funktionen dabei sind, zeigt er nur "Pia Wollweber-Kell" an.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include-once
#include 'PredictText.au3'
#include <GUIConstants.au3>
#include <EditConstants.au3>Local $hGUI = GUICreate('Autovervollständigung', 220, 70)
[/autoit] [autoit][/autoit] [autoit]
Local $_Min = 5
Local $_MaxArraySize = 10
$bResult = "Pia Wollweber-Keller-Sörensen"
GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 200, 15)
Local $Input1 = GUICtrlCreateInput('', 10, 30, 200, 30)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys)#cs
[/autoit] [autoit][/autoit] [autoit]
; Excel-Bereich Start
Global $sFilePath = @ScriptDir & "\test.xlsx"
Local $oExcel = _Excel_Open(False, False, True, True, True)If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Dateiname falsch oder sie müssen nachfolgende Datei schließen '" & $sFilePath); & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf; Einlesen von A2:A743
[/autoit] [autoit][/autoit] [autoit]
Local $bResult = _Excel_RangeRead($oWorkbook, Default, "A2:A743", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "11Excel UDF: _Excel_RangeRead", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended);ArrayDisplay: Test ob richtige Spalte gelesen wird und wird sie auch komplett
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($bResult, "22Excel UDF: _Excel_RangeRead - Cells A2:A743")
; Ende Einlesen
#ce;_RegisterListingNewWords(Default, $_Min)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSE
ExitLoopCase $nEnter
[/autoit] [autoit][/autoit] [autoit]
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, 250, 10)
; meine Idee / mein Beispiel$var_47 = GUICtrlRead($Input1)
[/autoit] [autoit][/autoit] [autoit]
MsgBox(64,"",$var_47)EndSwitch
[/autoit] [autoit][/autoit] [autoit]
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $bResult, 0, 0, 0, 1)
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc
;_Excel_BookClose($oWorkbook)
;_Excel_Close($oExcel, False) -
Wieso macht die Autovervollständigung Probleme?
Script:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include-once
#include 'PredictText.au3'
#include <GUIConstants.au3>
#include <EditConstants.au3>Local $hGUI = GUICreate('Autovervollständigung', 220, 70)
[/autoit] [autoit][/autoit] [autoit]
Local $_Min = 5
Local $_MaxArraySize = 10GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 200, 15)
[/autoit] [autoit][/autoit] [autoit]
Local $Input1 = GUICtrlCreateInput('', 10, 30, 200, 30)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys); Excel-Bereich Start
[/autoit] [autoit][/autoit] [autoit]
Global $sFilePath = @ScriptDir & "\test.xlsx"
Local $oExcel = _Excel_Open(False, False, True, True, True)If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Dateiname falsch oder sie müssen nachfolgende Datei schließen '" & $sFilePath); & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf; Einlesen von A2:A743
[/autoit] [autoit][/autoit] [autoit]
Local $bResult = _Excel_RangeRead($oWorkbook, Default, "A2:A743", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "11Excel UDF: _Excel_RangeRead", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended);ArrayDisplay: Test ob richtige Spalte gelesen wird und wird sie auch komplett
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($bResult, "22Excel UDF: _Excel_RangeRead - Cells A2:A743")
; Ende Einlesen;_RegisterListingNewWords(Default, $_Min)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSE
ExitLoopCase $nEnter
[/autoit] [autoit][/autoit] [autoit]
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, 250, 10)
; meine Idee / mein Beispiel
$var_47 = GUICtrlRead($Input1)
MsgBox(64,"",$var_47)EndSwitch
[/autoit] [autoit][/autoit] [autoit]
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $bResult, 0, 0, 0, 1)
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc
_Excel_BookClose($oWorkbook)
_Excel_Close($oExcel, False)Bebe ich einen Namen ein, einen Doppelnamen, dann ist alles okay. Bei einem Namen mit zwei Bindestriche, zeigt er nur die beiden ersten Namen an und den letzten davon ohne die letzten Buchstaben. Was er weg läßt, ist nicht nachvollziehbar. Man kann nicht sagen, er zeigt nur die ersten 15 Stellen an oder so.
.
Kann man irgendwo noch was einstellen bei der Autovervollständigung? Wo ist mein Fehler? -
Ah, das sieht doch schon mal gut aus.
Nun schaue ich mal selber weiter.DANKE ür Deine Hilfe.
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include-once
#include 'PredictText.au3'
#include <GUIConstants.au3>
#include <EditConstants.au3>Local $hGUI = GUICreate('Autovervollständigung', 220, 70)
[/autoit] [autoit][/autoit] [autoit]
Local $_Min = 5
Local $_MaxArraySize = 10GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 200, 15)
[/autoit] [autoit][/autoit] [autoit]
Local $Input1 = GUICtrlCreateInput('', 10, 30, 200, 30)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys); Excel-Bereich Start
[/autoit] [autoit][/autoit] [autoit]
Global $sFilePath = @ScriptDir & "\test.xlsx"
Local $oExcel = _Excel_Open(False, False, True, True, True)If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Dateiname falsch oder sie müssen nachfolgende Datei schließen '" & $sFilePath); & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf; Einlesen von A2:A743
[/autoit] [autoit][/autoit] [autoit]
Local $bResult = _Excel_RangeRead($oWorkbook, Default, "A2:A743", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "11Excel UDF: _Excel_RangeRead", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended);ArrayDisplay: Test ob richtige Spalte gelesen wird und wird sie auch komplett
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($bResult, "22Excel UDF: _Excel_RangeRead - Cells A2:A743")
; Ende Einlesen;_RegisterListingNewWords(Default, $_Min)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSE
ExitLoopCase $nEnter
[/autoit] [autoit][/autoit] [autoit]
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, 250, 10)
; meine Idee / mein Beispiel
$var_47 = GUICtrlRead($Input1)
MsgBox(64,"",$var_47);Tweaky
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite(GUICtrlRead($Input1) & @CRLF)
EndSwitch
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit] [autoit][/autoit] [autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $bResult, 0, 0, 0, 1)
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]Return $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]
EndFunc_Excel_BookClose($oWorkbook)
[/autoit] [autoit][/autoit] [autoit]_Excel_Close($oExcel, False)
[/autoit] -
Okay, Auswahlthema abgeharkt. DANKE
Wie übernehme ich nun den Begriff zur weiteren Verwendung?
Es soll ja keinen Button geben, sondern der "Begriff" in eine Variable ausgeben, so das ich damit weiter arbeiten kann.Dezeitiges Script:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include-once
#include 'PredictText.au3'
#include <GUIConstants.au3>
#include <EditConstants.au3>Local $hGUI = GUICreate('Autovervollständigung', 500, 70)
[/autoit] [autoit][/autoit] [autoit]
Local $_Min = 5
Local $_MaxArraySize = 10GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 480, 15)
[/autoit] [autoit][/autoit] [autoit]
Local $Input1 = GUICtrlCreateInput('', 10, 30, 480, 30)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys); Excel-Bereich Start
[/autoit] [autoit][/autoit] [autoit]
Global $sFilePath = @ScriptDir & "\test.xlsx"
Local $oExcel = _Excel_Open(False, False, True, True, True)If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Dateiname falsch oder sie müssen nachfolgende Datei schließen '" & $sFilePath); & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf; Einlesen von A2:A743
[/autoit] [autoit][/autoit] [autoit]
Local $bResult = _Excel_RangeRead($oWorkbook, Default, "A2:A743", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "11Excel UDF: _Excel_RangeRead", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended);ArrayDisplay: Test ob richtige Spalte gelesen wird und wird sie auch komplett
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($bResult, "22Excel UDF: _Excel_RangeRead - Cells A2:A743")
; Ende Einlesen_RegisterListingNewWords(Default, $_Min)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSEExitLoop
[/autoit] [autoit][/autoit] [autoit]
Case $nEnter
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, -1, -1)
EndSwitch
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit] [autoit][/autoit] [autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $bResult, 0, 0, 0, 1)
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]Return $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]
EndFunc_Excel_BookClose($oWorkbook)
[/autoit] [autoit][/autoit] [autoit]_Excel_Close($oExcel, False)
[/autoit] -
Okay, bin einen Schritt weiter.
Nun bin ich soweit, das wenn ich tippe, mir ein Begrifft anzeigt. Also Engelmann, den ersten den erfindet und nicht, wenn ich "Engel" eintippen, das er mir untereinander oder durch Scollen die anderen Begriffe wie z. B. Engelfrau, Engelshaar, usw.
Dazu kommt, das, wenn ich mich für Engelsmann entschieden habe und ENTER drücke, das er mir dann Engelsmann als Variable ausgibt, die ich dann weiter verarbeiten / nutzen kann.
Aber schon mal ein Schritt weiter und meinen DANK !!!Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include-once
#include 'PredictText.au3'
#include <GUIConstants.au3>
#include <EditConstants.au3>Local $hGUI = GUICreate('Autovervollständigung', 500, 70)
[/autoit] [autoit][/autoit] [autoit]
Local $_Min = 5
Local $_MaxArraySize = 10GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 480, 15)
[/autoit] [autoit][/autoit] [autoit]
Local $Input1 = GUICtrlCreateInput('', 10, 30, 480, 30)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys); Excel-Bereich Start
[/autoit] [autoit][/autoit] [autoit]
Global $sFilePath = @ScriptDir & "\test.xlsx"
Local $oExcel = _Excel_Open(False, False, True, True, True)If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Dateiname falsch oder sie müssen nachfolgende Datei schließen '" & $sFilePath); & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf; Einlesen von A2:A743
[/autoit] [autoit][/autoit] [autoit]
Local $bResult = _Excel_RangeRead($oWorkbook, Default, "A2:A743", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "11Excel UDF: _Excel_RangeRead", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended);ArrayDisplay: Test ob richtige Spalte gelesen wird und wird sie auch komplett
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($bResult, "22Excel UDF: _Excel_RangeRead - Cells A2:A743")
; Ende Einlesen_RegisterListingNewWords(Default, $_Min)
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSEExitLoop
[/autoit] [autoit][/autoit] [autoit]
Case $nEnter
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, -1, -1)
EndSwitch
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit] [autoit][/autoit] [autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $bResult)
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]Return $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]
EndFunc_Excel_BookClose($oWorkbook)
[/autoit] [autoit][/autoit] [autoit]_Excel_Close($oExcel, False)
[/autoit]
*) der Wert "A2:A743" (roter Bereich) erhöht sich gerade, weil ich Daten dort erfasse.Tweaky Du kanntest die Autovervollständigung noch nicht? Also ich hatte das schon ein paar mal gelesen, aber habe es noch nie zum laufen bekommen. Wenn es dieses mal funktioniert, werde ich damit wohl mehr arbeiten.
-
Softwareseitige Lösung gefunden und um einiges Preiswerter und einfacher.
Danke für Eure Hilfe. -
djdanby:
Erst einmal zu dem Problem von dir. Ich sage Dir, es ist mit AutoIt alles und noch viel mehr möglich, als das von Dir bereibene Problem zu lösen.
.
Also ich selber bin zu AutoIt gewechseln, als ich mit dem "Batching" nicht mehr weiter kam. Ich habe mich hier freundlich vorgestellt und dann auch mein Problem geschildert.
Ich kann Dir nur sagen, das es nicht fein ist, wenn man Hilfe erwartet und nicht bereit ist so viel Auskunft zu geben, das man das, wie DU es nennst Tool" auch nur ansatzweise nachfolgen kann.
Mein Vorschlag, damit wir Dir helfen können wäre, das Du Dein Tool vielleicht in der Form veränderst, das Du nur die Werte oder die Buttons oder was auch immer mit sinnlosen Variablen benennst und dahinter schreibst z. B. " ; Unwichtig-1". Grund für die Nummer, das wir dann ggf. fragen können "bei Unwichtig-1 bräuchte ich mehr Info" oder so.
.
Ansonsten meine ich ist es sinnlos, hier im trüben Wasser zu fischen.
Ich selber kann aus Datenschutzgründen hier nicht immer das posten, was ich gerne würde, aber wenn man freundlich das Problem erklärt und ggf. dazu schreibt "Beispieldaten", war mir noch nie jemand böse. Es wurde ggf. als PN nachgefragt, aber dafür ist diese Funktion ja auch da.
.
Also, nun gib Dir einen weihnachtlichen "Stopser" und dann bekommen wir es schon hin.
.
Aber immer lieb und artig sein, sonst kommt der Weihnachtsmann nicht. -
Ich drehe im Kreis oder auf deutsch: ich drehe am Rad !!!
Habe die Autovervollständigung in der GUI, so wie ich es haben möchte. GUI (Suchabfrage) öffnet. Nun möchte ich die Begriffe als Autovervollständigung aus Excel auslesen. Das funktioniert auch und wird im ArrayDisplay auch richtig angezeigt (habe ich derzeitig deaktiviert die Ausgabe). NUn das Problem: ich bekomme es nicht hin, das die Begriffe vom Arry in die Inputbox aus Autovervollständigung angezeigt wird und wenn man den Begriff danach mit ENTER bestätigt, das der ausgewählte Begriff weiter genutzt werden kann (Consolenausgabe reich, da ich es dann weiter selber versuchen möchte).
.
Kann mir da jemand helfen ???Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include <EditConstants.au3>
#include <Excel.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include-once
#include 'PredictText.au3'
#include <GUIConstants.au3>
#include <EditConstants.au3>Local $hGUI = GUICreate('Autovervollständigung', 500, 70)
[/autoit] [autoit][/autoit] [autoit]
Local $_Min = 5
Local $_MaxArraySize = 10GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 480, 15)
[/autoit] [autoit][/autoit] [autoit]
Local $Input1 = GUICtrlCreateInput('', 10, 30, 480, 30)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys); Excel-Bereich Start
[/autoit] [autoit][/autoit] [autoit]
Global $sFilePath = @ScriptDir & "\test.xlsx"
Local $oExcel = _Excel_Open(False, False, True, True, True)If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
[/autoit] [autoit][/autoit] [autoit]Local $oWorkbook = _Excel_BookOpen($oExcel, $sFilePath)
[/autoit] [autoit][/autoit] [autoit]
If @error Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_BookAttach Example", "Dateiname falsch oder sie müssen nachfolgende Datei schließen '" & $sFilePath); & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_Close($oExcel)
Exit
EndIf; Einlesen von A2:A720
[/autoit] [autoit][/autoit] [autoit]
Local $bResult = _Excel_RangeRead($oWorkbook, Default, "A2:A720", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "11Excel UDF: _Excel_RangeRead", "Error reading from workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended);ArrayDisplay: Test ob richtige Spalte gelesen wird und wird sie auch komplett
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($bResult, "22Excel UDF: _Excel_RangeRead - Cells A2:A720")
; Ende EinlesenGlobal $_Words1[3] = [$bResult]
[/autoit] [autoit][/autoit] [autoit]
_RegisterListingNewWords(Default, $_Min)GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSEExitLoop
[/autoit] [autoit][/autoit] [autoit]
Case $nEnter
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, -1, -1)
EndSwitch
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit] [autoit][/autoit] [autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $_Words1)
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]Return $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]
EndFunc_Excel_BookClose($oWorkbook)
[/autoit]
_Excel_Close($oExcel, False) -
Möchte gerne diese Autovervollständigung zu laufen bekommen mit 718 Wörtern als Vorgabe, die ich einer Exceltabelle stehen. Nur mir normal einlesen klappt das nicht. Wo sind unsere Excel-Spezialisten.
.
Danke schon jetzt.Problemerklärung im Script: siehe Zeile 19/20
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include-once
#include 'PredictText.au3'
#include <GUIConstants.au3>
#include <EditConstants.au3>Local $hGUI = GUICreate('Autovervollständigung', 500, 70)
[/autoit] [autoit][/autoit] [autoit]
Local $_Min = 5
Local $_MaxArraySize = 10GUICtrlCreateLabel("Bitte Suchbegriff eingeben", 10, 10, 480, 15)
[/autoit] [autoit][/autoit] [autoit]
Local $Input1 = GUICtrlCreateInput('', 10, 30, 480, 30)Local $nEnter = GUICtrlCreateDummy()
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')Local $aAccelKeys[1][2] = [["{ENTER}", $nEnter]]
[/autoit] [autoit][/autoit] [autoit]
GUISetAccelerators($aAccelKeys); hier 718 Wörter aus A2 - A720 auswählen aus Exceldatei @ScriptDir & "\test.xlsx"
[/autoit] [autoit][/autoit] [autoit]
; Global $_Words1[718] = [Inhalt aus A2 bis A720 aus der Excel-Datei test.xlsx]
Global $_Words1[3] = ['John', 'Petra', 'Peter']
_RegisterListingNewWords(Default, $_Min)GUISetState()
[/autoit] [autoit][/autoit] [autoit]Local $iGUIGetMsg
[/autoit] [autoit][/autoit] [autoit]
While 1
$iGUIGetMsg = GUIGetMsg()
Switch $iGUIGetMsg
Case $GUI_EVENT_CLOSE
_UnregisterPrediction()
ExitLoop
Case $nEnter
$hFocus = _WinAPI_GetFocus()
Switch $hFocus
Case GUICtrlGetHandle($Input1)
_GUICtrlEdit_SetSel($hFocus, -1, -1)
EndSwitch
EndSwitch
WEndFunc WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
If _WinAPI_HiWord($wParam) = $EN_SETFOCUS ThenSwitch $lParam
[/autoit] [autoit][/autoit] [autoit]
Case GUICtrlGetHandle($Input1)
_RegisterPrediction($lParam, $_Words1)
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]Return $GUI_RUNDEFMSG
[/autoit]
EndFunc