Excel VBA SetFocus – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Excel VBA SetFocus – Visual Basic – Fórum – Programujte.comExcel VBA SetFocus – Visual Basic – Fórum – Programujte.com

 

KECOnaj
~ Anonymní uživatel
2 příspěvky
9. 11. 2017   #1
-
0
-

Č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ý... :(
 

Private Sub ComboBox_Firma_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim SuborDatabazaNazov As String    'Premena s nazvom databazi
   SuborDatabazaNazov = "Databaza Firiem.xlsx" 'Zadame nazov databazi do premennej
 
    On Error Resume Next    'Nezobrazime err
   'Zistime ci je subor otvoreny
   Set SuborDatabaza = Workbooks(SuborDatabazaNazov)   'Nacitame subor
   SuborDatabazaOtvoreny = Not SuborDatabaza Is Nothing    'Zistime ci je otvoreny
   
    If SuborDatabazaOtvoreny = True Then   'Ak je otvoreny
       Workbooks(SuborDatabazaNazov).Activate   'Aktivujeme subor
       
        With Range("Nazov_DatabazaFirmy")   'Prehladavame v nazvoch firiem
           Set Rng = .Find(FormFirma.ComboBox_Firma.Value, MatchCase:=True)    'Hladame ci je zadana firma v databaze
           If Not Rng Is Nothing Then  'Ak je nastavime hodnoty z databazy
               FirmaZDatabazy = True   'Firma sa nachadza v databaze
               
                TextBox_Adresa.Value = Rng.Offset(0, 1).Value
                TextBox_PSC.Value = Rng.Offset(0, 2).Value
                TextBox_Mesto.Value = Rng.Offset(0, 3).Value
                TextBox_ICO.Value = Rng.Offset(0, 4).Value
                TextBox_DIC.Value = Rng.Offset(0, 5).Value
                Button_Dalej.SetFocus
               
            Else    'Ak nie je vymazeme hodnoty
               TextBox_Adresa.Value = ""
                TextBox_PSC.Value = ""
                TextBox_Mesto.Value = ""
                TextBox_DIC.Value = ""
                TextBox_ICO.Value = ""
            End If
            ThisWorkbook.Activate   'Nastavime aktivny, aktualny zosit, aby nas nepreplo do databazy
        End With
    End If
End Sub

Private Sub UserForm_Initialize()
    ComboBox_Firma.SetFocus 'Na zaciatku nastavime kurzor na nazov firmy
End Sub
Nahlásit jako SPAM
IP: 188.167.67.–
KECOnaj
~ Anonymní uživatel
2 příspěvky
9. 11. 2017   #2
-
0
-

Už som to vymyslel inak: overovanie som zmenil z funkcie _Exit na _Change a tam mením TabIndex, 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.

Nahlásit jako SPAM
IP: 188.167.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Pomoc VBA EXCEL — založil Zbyšek

Pole ve VBA Excel — založil Daemon481

VBA Excel do .exe — založil Sentir

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý