Wie weise ich funktionen den tabs zu

  • hi, bin relativ neu hier
    ich hab ein programm für die arbeit geschrieben, der mehrere sachen machen soll, der erste tab soll einfach in einer excel datei in einer spalte etwas suchen und in der gleichen zeile alles wiederspieglen. Ich hab alles gemacht und alles funktioniert wie gewollte.

    das problem jetzt ist das ich 2 neue tabs hinzugefügt habe und sobal ich beim ersten tab "suche" etwas eingebe und die felder der jeweiliger feld ausgefüllt werden, wird das was in der excel tabelle ausgelesen wird auch bei den anderen tabs angezeigt.

    meine frage ist eben wie trenne ich die Tabs, ich will beim "Maschinen" tab neue codes schreiben.

    hier ist der code:

    #include <GUIConstantsEx.au3>

    #include <WindowsConstants.au3>

    Global $hGUI

    Global $Kundenname, $Auftragnr, $Artikel, $Bezeichnung, $Zusatz, $Stueckzahl, $Lager, $Durchmesser, $Tiefe, $Breite, $Hoehe, $Liefertermin, $Beleg, $Pressform, $Info, $Status, $Suchfeld, $SuchButton, $TabMaschinen, $TabDev

    Func _guiCreate()

    $hGUI = GUICreate("titel", 800, 800)

    ; Tab-Steuerelement

    Local $Tab = GUICtrlCreateTab(10, 10, 780, 780)

    Local $TabSuche = GUICtrlCreateTabItem("Suche")

    ;Suchfeld bereich

    $Suchfeld = GUICtrlCreateInput("", 20, 60, 200, 25)

    GUICtrlSetFont(-1, 12)

    $SuchButton = GUICtrlCreateButton("Suchen", 240, 60, 80, 25)

    GUICtrlSetFont(-1, 12)

    ;Die ganzen Labels

    $Kundenname = GUICtrlCreateLabel("Kundenname:", 20, 120, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Auftragsnummer = GUICtrlCreateLabel("Auftragsnummer:", 20, 160, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Artikel = GUICtrlCreateLabel("Artikel:", 20, 200, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Bezeichnung = GUICtrlCreateLabel("Bezeichnung:", 20, 240, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Zusatz = GUICtrlCreateLabel("Zusatz:", 20, 280, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Stueckzahl = GUICtrlCreateLabel("Stückzahl:", 20, 320, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Lager = GUICtrlCreateLabel("Lager:", 20, 360, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Durchmesser = GUICtrlCreateLabel("Durchmesser:", 20, 400, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Tiefe = GUICtrlCreateLabel("Tiefe:", 20, 440, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Breite = GUICtrlCreateLabel("Breite:", 20, 480, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Hoehe = GUICtrlCreateLabel("Höhe:", 20, 520, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Liefertermin = GUICtrlCreateLabel("Liefertermin:", 20, 560, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Beleg = GUICtrlCreateLabel("Beleg:", 20, 600, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Pressform = GUICtrlCreateLabel("Pressform:", 20, 540, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Info = GUICtrlCreateLabel("Info:", 20, 580, 200, 25)

    GUICtrlSetFont(-1, 12)

    $Status = GUICtrlCreateLabel("Status:", 20, 620, 200, 25)

    GUICtrlSetFont(-1, 12)


    ;Hier fängt ein neuer Tab an ( MASCHINEN )

    Local $TabMaschinen = GUictrlcreatetabitem("Maschinen")

    GUICtrlCreateLabel("testMaschinen",20, 120, 200, 25)

    ;Hier fängt ein neuer Tab an ( DEV )

    Local $TabDev = GUICtrlCreateTabItem("Dev.")

    GUICtrlCreateLabel("testentwickler",20, 120, 200, 25)

    EndFunc


    _main()

    Func _main()

    _guiCreate()

    GUISetState(@SW_SHOWNORMAL)

    While 1

    Switch GUIGetMsg()

    Case $GUI_EVENT_CLOSE

    ExitLoop

    Case $SuchButton

    Local $sFilePath = der Pfad

    Local $sSuchfeld = GUICtrlRead($Suchfeld)

    Local $oExcel = ObjCreate("Excel.Application")

    $oExcel.Visible = False

    $oExcel.DisplayAlerts = False

    Local $oWorkbook = $oExcel.Workbooks.Open($sFilePath)

    Local $oSheet = $oWorkbook.Sheets(1)

    Local $iLastRow = $oSheet.UsedRange.Rows.Count

    For $iRow = 1 To $iLastRow

    Local $sCellValue = $oSheet.Cells($iRow, 3).Value

    If $sCellValue = $sSuchfeld Then

    Local $sKundenname = $oSheet.Cells($iRow, 1).Value

    GUICtrlCreateLabel($sKundenname, 240, 120, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sAuftragsnummer = $oSheet.Cells($iRow, 2).Value

    GUICtrlCreateLabel($sAuftragsnummer, 240, 160, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sArtikel = $oSheet.Cells($iRow, 3).Value

    GUICtrlCreateLabel($sArtikel, 240, 200, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sBezeichnung = $oSheet.Cells($iRow, 4).Value

    GUICtrlCreateLabel($sBezeichnung, 240, 240, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sZusatz = $oSheet.Cells($iRow, 5).Value

    GUICtrlCreateLabel($sZusatz, 240, 280, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sStueckzahl = $oSheet.Cells($iRow, 6).Value

    GUICtrlCreateLabel($sStueckzahl, 240, 320, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sLager = $oSheet.Cells($iRow, 7).Value

    GUICtrlCreateLabel($sLager, 240, 360, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sDurchmesser = $oSheet.Cells($iRow, 8).Value

    GUICtrlCreateLabel($sDurchmesser, 240, 400, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sTiefe = $oSheet.Cells($iRow, 9).Value

    GUICtrlCreateLabel($sTiefe, 240, 440, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sBreite = $oSheet.Cells($iRow, 10).Value

    GUICtrlCreateLabel($sBreite, 240, 480, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sHoehe = $oSheet.Cells($iRow, 11).Value

    GUICtrlCreateLabel($sHoehe, 240, 520, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sLiefertermin = $oSheet.Cells($iRow, 12).Value

    GUICtrlCreateLabel($sLiefertermin, 240, 560, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sBeleg = $oSheet.Cells($iRow, 13).Value

    GUICtrlCreateLabel($sBeleg, 240, 600, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sPressform = $oSheet.Cells($iRow, 14).Value

    GUICtrlCreateLabel($sPressform, 240, 540, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sInfo = $oSheet.Cells($iRow, 15).Value

    GUICtrlCreateLabel($sInfo, 240, 580, 200, 25)

    GUICtrlSetFont(-1, 12)

    Local $sStatus = $oSheet.Cells($iRow, 16).Value

    GUICtrlCreateLabel($sStatus, 240, 620, 200, 25)

    GUICtrlSetFont(-1, 12)

    ExitLoop

    EndIf

    Next

    $oWorkbook.Close()

    $oExcel.Quit()


    Case Else

    ;

    EndSwitch

    WEnd

    EndFunc ;==>_main

  • Sieh Dir mal die deutsche GuiCtrlCreateTabItem Hilfe (Kommentare und Beispielscript) an.
    Das sollte Dir eine Idee geben, worauf man bei Tabs aufpassen muss.

  • "Person A: hey ich weis nicht wo diese schraube hingehört, Person B: lies doch das komplizierte, total wirre und nicht hilfreiche handbuch."
    solche leute liebe ich xD.

    jetzt mal im ernst, kann mir einer weiterhelfen?

  • Mit dieser Einstellung wünsche ich Dir viel Erfolg!

  • jetzt mal im ernst, kann mir einer weiterhelfen?

    Ganz im Ernst:

    Dir wurde schon mit einem konkreten Hinweis auf die Lösung geholfen!

    Wenn du allerdings nicht bereit bist eigene Anstrengungen zu unternehmen, warum sollen wir dir dann die Arbeit abnehmen? :Face:

    lies doch das komplizierte, total wirre und nicht hilfreiche handbuch.

    Das ist gelinde gesagt eine Frechheit! :cursing:

    Anscheinend hast du noch nicht einen Blick in die Hilfe geworfen. Du wirst kaum eine andere Hilfe finden, die so gut mit Beispielen unterlegt ist.

    Und nach diesem Einstieg von dir wird unser Wille zu Helfen nicht wirklich motiviert.

  • Ich fange erst seit 1-2 tagen an Autoit zu lernen, mache mein erstes projekt, poste mein ersten beitrag hier und das erste was ihr sagt ist "schau ins Handbuch", wen ich verstanden hätte was da alles steht gleich nach tag 1 wiso zur Hölle sollte ich hier was fragen, anstatt mir zu sagen wo, wie oder was das problem an meinem script war, sagt ihr einfach "schau ins Handbuch" das ist genauso hilfreich wie "google doch", also überhaupt garnicht. Ich denke ihr seid einfach solche Internet trolle, oder ihr wollt einfach nicht das Leute programieren lernen, habt wahrscheinlich angst vor Konkurrenz. Irgendwie erbärmlich, wen ihr mich fragt, aber egal eure Sache.

    ich habe übrigens eine Lösung gefunden ohne euren komplizierten Handbuch, hier ist die verbesserte Version damit ihr mal lernt was man machen musste, weil offensichtlich wusste ihr ja nicht wo das problem lag, ich hoffe ihr macht was sinnvolles mit euren leben anstatt leute zu trollen und sie davon abzuhalten programieren zu lernen. ich hoffe wen ihr mal nach hilfe sucht sagt euch jemand "schau ins handbuch" oder "google doch einfach" dann seht ihr wie hilfreich das ist. Ein Forum wäre echt schön gewesen wo leute sich gegenseitig helfen, echt schade. ich hoffe ich kann mein account hier noch löschen, das war ein fehler sich hier anzumelden und auf hilfe zu hoffen. Naja wie auch immer, wünsche euch trozdem ein schönen tag, auf nimmer wiedersehen ihr kleinen Trolle :)


    #include <GUIConstantsEx.au3>

    #include <WindowsConstants.au3>

    Global $hGUI

    Global $Kundenname, $Auftragsnummer, $Artikel, $Bezeichnung, $Zusatz, $Stueckzahl, $Lager, $Durchmesser, $Tiefe, $Breite, $Hoehe, $Liefertermin, $Beleg, $Pressform, $Info, $Status, $Suchfeld, $SuchButton, $TabMaschinen, $TabDev, $TabSuche

    Func _guiCreate()

    $hGUI = GUICreate("titel", 800, 800)

    ; Tab-Steuerelement

    Local $Tab = GUICtrlCreateTab(10, 10, 780, 780)

    $TabSuche = GUICtrlCreateTabItem("Suche")

    ; Suchfeld-Bereich

    $Suchfeld = GUICtrlCreateInput("", 20, 60, 200, 25)

    GUICtrlSetFont(-1, 12)

    $SuchButton = GUICtrlCreateButton("Suchen", 240, 60, 80, 25)

    GUICtrlSetFont(-1, 12)

    ; Die ganzen Labels im Tab "Suche"

    GUICtrlCreateLabel("Kundenname:", 20, 120, 200, 25)

    $Kundenname = GUICtrlCreateLabel("", 240, 120, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Auftragsnummer:", 20, 160, 200, 25)

    $Auftragsnummer = GUICtrlCreateLabel("", 240, 160, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Artikel:", 20, 200, 200, 25)

    $Artikel = GUICtrlCreateLabel("", 240, 200, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Bezeichnung:", 20, 240, 200, 25)

    $Bezeichnung = GUICtrlCreateLabel("", 240, 240, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Zusatz:", 20, 280, 200, 25)

    $Zusatz = GUICtrlCreateLabel("", 240, 280, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Stückzahl:", 20, 320, 200, 25)

    $Stueckzahl = GUICtrlCreateLabel("", 240, 320, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Lager:", 20, 360, 200, 25)

    $Lager = GUICtrlCreateLabel("", 240, 360, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Durchmesser:", 20, 400, 200, 25)

    $Durchmesser = GUICtrlCreateLabel("", 240, 400, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Tiefe:", 20, 440, 200, 25)

    $Tiefe = GUICtrlCreateLabel("", 240, 440, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Breite:", 20, 480, 200, 25)

    $Breite = GUICtrlCreateLabel("", 240, 480, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Höhe:", 20, 520, 200, 25)

    $Hoehe = GUICtrlCreateLabel("", 240, 520, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Liefertermin:", 20, 560, 200, 25)

    $Liefertermin = GUICtrlCreateLabel("", 240, 560, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Beleg:", 20, 600, 200, 25)

    $Beleg = GUICtrlCreateLabel("", 240, 600, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Pressform:", 20, 540, 200, 25)

    $Pressform = GUICtrlCreateLabel("", 240, 540, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Info:", 20, 580, 200, 25)

    $Info = GUICtrlCreateLabel("", 240, 580, 200, 25)

    GUICtrlSetFont(-1, 12)

    GUICtrlCreateLabel("Status:", 20, 620, 200, 25)

    $Status = GUICtrlCreateLabel("", 240, 620, 200, 25)

    GUICtrlSetFont(-1, 12)

    ; Hier fängt ein neuer Tab an (MASCHINEN)

    $TabMaschinen = GUictrlcreatetabitem("Maschinen")


    ; Hier fängt ein neuer Tab an (DEV)

    $TabDev = GUICtrlCreateTabItem("Dev.")

    GUICtrlCreateLabel("testentwickler", 20, 120, 200, 25)


    EndFunc

    _main()

    Func _main()

    _guiCreate()

    GUISetState(@SW_SHOWNORMAL)

    While 1

    Switch GUIGetMsg()

    Case $GUI_EVENT_CLOSE

    ExitLoop


    Case $TabSuche

    Case $SuchButton

    Local $sFilePath = Pfad

    Local $sSuchfeld = GUICtrlRead($Suchfeld)

    Local $oExcel = ObjCreate("Excel.Application")

    $oExcel.Visible = False

    $oExcel.DisplayAlerts = False

    Local $oWorkbook = $oExcel.Workbooks.Open($sFilePath)

    Local $oSheet = $oWorkbook.Sheets(1)

    Local $iLastRow = $oSheet.UsedRange.Rows.Count

    For $iRow = 1 To $iLastRow

    Local $sCellValue = $oSheet.Cells($iRow, 3).Value

    If $sCellValue = $sSuchfeld Then

    GUICtrlSetData($Kundenname, $oSheet.Cells($iRow, 1).Value)

    GUICtrlSetData($Auftragsnummer, $oSheet.Cells($iRow, 2).Value)

    GUICtrlSetData($Artikel, $oSheet.Cells($iRow, 3).Value)

    GUICtrlSetData($Bezeichnung, $oSheet.Cells($iRow, 4).Value)

    GUICtrlSetData($Zusatz, $oSheet.Cells($iRow, 5).Value)

    GUICtrlSetData($Stueckzahl, $oSheet.Cells($iRow, 6).Value)

    GUICtrlSetData($Lager, $oSheet.Cells($iRow, 7).Value)

    GUICtrlSetData($Durchmesser, $oSheet.Cells($iRow, 8).Value)

    GUICtrlSetData($Tiefe, $oSheet.Cells($iRow, 9).Value)

    GUICtrlSetData($Breite, $oSheet.Cells($iRow, 10).Value)

    GUICtrlSetData($Hoehe, $oSheet.Cells($iRow, 11).Value)

    GUICtrlSetData($Liefertermin, $oSheet.Cells($iRow, 12).Value)

    GUICtrlSetData($Beleg, $oSheet.Cells($iRow, 13).Value)

    GUICtrlSetData($Pressform, $oSheet.Cells($iRow, 14).Value)

    GUICtrlSetData($Info, $oSheet.Cells($iRow, 15).Value)

    GUICtrlSetData($Status, $oSheet.Cells($iRow, 16).Value)

    ExitLoop

    EndIf

    Next

    $oWorkbook.Close()

    $oExcel.Quit()


    EndSwitch

    WEnd

    EndFunc ;==>_main

  • BugFix 19. Juni 2023 um 07:55

    Hat das Thema geschlossen.