Excel VBA SetFocus

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

KECOnaj
nováček
Příspěvky: 4
Registrován: září 17
Pohlaví: Muž
Stav:
Offline

Excel VBA SetFocus

Příspěvekod KECOnaj » 09 lis 2017 15:09

Čaute,

vo VBA mám vytvorený formulár a nefunguje mi zvýraznenie tlačítka Button_Dalej.SetFocus, keď ho volám z funkcie Private Sub ComboBox_Firma_Exit(ByVal Cancel As MSForms.ReturnBoolean).

Tlačítko mám nastavené dobre (keby som to zavolal z Private Sub UserForm_Initialize(), tak je to OK).
Problém je v tom, že tlačítko sa mi nenastaví, keď opustím ComboBox stlačením "tab", alebo "Enter", keď sa prepnem myškou je to OK. Pri tom "tab", alebo "Enter" to funguje len pokiaľ neopustím funkciu Private Sub ComboBox_Firma_Exit, potom ma to hodí o jednu hodnotu TabIndex ďalej (namiesto 2 na 3, napr. keby som nemal použité Button_Dalej.SetFocus, tak ma to po stlačení Enter hodí na pozíciu 2, keď to použijem hodí ma to na pozíciu 3).

Vôbec tomu nechápem a už som z toho zúfalý... :(

Celý kód:
  1. Private Sub ComboBox_Firma_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  2.     Dim SuborDatabazaNazov As String    'Premena s nazvom databazi
  3.    SuborDatabazaNazov = "Databaza Firiem.xlsx" 'Zadame nazov databazi do premennej
  4.  
  5.     On Error Resume Next    'Nezobrazime err
  6.    'Zistime ci je subor otvoreny
  7.    Set SuborDatabaza = Workbooks(SuborDatabazaNazov)   'Nacitame subor
  8.    SuborDatabazaOtvoreny = Not SuborDatabaza Is Nothing    'Zistime ci je otvoreny
  9.    
  10.     If SuborDatabazaOtvoreny = True Then   'Ak je otvoreny
  11.        Workbooks(SuborDatabazaNazov).Activate   'Aktivujeme subor
  12.        
  13.         With Range("Nazov_DatabazaFirmy")   'Prehladavame v nazvoch firiem
  14.            Set Rng = .Find(FormFirma.ComboBox_Firma.Value, MatchCase:=True)    'Hladame ci je zadana firma v databaze
  15.            If Not Rng Is Nothing Then  'Ak je nastavime hodnoty z databazy
  16.                FirmaZDatabazy = True   'Firma sa nachadza v databaze
  17.                
  18.                 TextBox_Adresa.Value = Rng.Offset(0, 1).Value
  19.                 TextBox_PSC.Value = Rng.Offset(0, 2).Value
  20.                 TextBox_Mesto.Value = Rng.Offset(0, 3).Value
  21.                 TextBox_ICO.Value = Rng.Offset(0, 4).Value
  22.                 TextBox_DIC.Value = Rng.Offset(0, 5).Value
  23.                 Button_Dalej.SetFocus
  24.                
  25.             Else    'Ak nie je vymazeme hodnoty
  26.                TextBox_Adresa.Value = ""
  27.                 TextBox_PSC.Value = ""
  28.                 TextBox_Mesto.Value = ""
  29.                 TextBox_DIC.Value = ""
  30.                 TextBox_ICO.Value = ""
  31.             End If
  32.             ThisWorkbook.Activate   'Nastavime aktivny, aktualny zosit, aby nas nepreplo do databazy
  33.         End With
  34.     End If
  35. End Sub
  36. Private Sub UserForm_Initialize()
  37.     ComboBox_Firma.SetFocus 'Na zaciatku nastavime kurzor na nazov firmy
  38. End Sub

Reklama
Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 366
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: Excel VBA SetFocus

Příspěvekod elninoslov » 09 lis 2017 18:09

A čo keby ste nastavil TabIndex toho buttonu o jedno vyšší ako ma TabIndex ten combobox ? Tak by to malo fungovať... aspoň u mňa to v tom prípade funguje aj pri Enter aj pri Tab.

KECOnaj
nováček
Příspěvky: 4
Registrován: září 17
Pohlaví: Muž
Stav:
Offline

Re: Excel VBA SetFocus

Příspěvekod KECOnaj » 09 lis 2017 18:53

Ďakujem za odpoveď. Toto mi robilo problém v tom, že na tlačítko som chcel skočiť iba ak sa mi formulár vyplnil automaticky. Ale už to mám: overovanie som zmenil z funkcie _Exit na _Change a tam mením TabIndex, ako píšete, podľa toho či sa mi formulár automaticky vyplnil. Potom vo funkcií ComboBox_Firma_Exit naspäť nastavím TabIndex na pôvodné číslo, aby následne fungoval tab normálnym poradím.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Excel a OneDrive
    od sginfo » 11 zář 2023 15:28 » v Kancelářské balíky
    16
    5985
    od mirekol Zobrazit poslední příspěvek
    20 říj 2023 08:31
  • Excel - vlastní formát Příloha(y)
    od Story-Long » 11 srp 2023 14:50 » v Kancelářské balíky
    3
    1837
    od Story-Long Zobrazit poslední příspěvek
    14 srp 2023 10:11
  • excel-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    260
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43
  • Excel - problém se vzorci
    od honzzicek » 28 čer 2023 21:45 » v Kancelářské balíky
    2
    1633
    od honzzicek Zobrazit poslední příspěvek
    01 črc 2023 08:57
  • Excel - funkce když
    od Martyn20 » 13 črc 2023 11:56 » v Kancelářské balíky
    5
    2317
    od mmmartin Zobrazit poslední příspěvek
    13 črc 2023 18:44

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Majestic-12 [Bot] a 4 hosti