Keresés

Részletes keresés

Fferi50 Creative Commons License 2020.12.28 0 0 35163
Előzmény: Redlac (35162)
Redlac Creative Commons License 2020.12.28 0 0 35162

Ugyanaz a formkezelő van mindkét gépen.

Most olvastam egy megoldási lehetőséget, de az sem jött be. Aszerint a textboxot tegyem fókuszba, mielőtt beleírnék. Első két indítás jó volt, aztán ugyanúgy nem ment.

Előzmény: Fferi50 (35161)
Fferi50 Creative Commons License 2020.12.28 0 0 35161

Szia!

Memória problémák is lehetnek. De szerintem a formokat kezelő dll lehet a bűnös (64 bites Win10-nél MS Forms 2.0 Object Library (FM20.DLL).

Nézd meg légy szíves, hogy mindkét gépen ugyanaz a verzió van-e a formkezelőből. 

A MS valamikor 2015-ben kicserélte a formkezelőt, mivel nem volt kompatibilis az újabb Excel verziókkal valami miatt. Most nem találom a hivatalosan kiadott javítási menetet sajnos. Erre a keresésre: the object is detached from its clients vba

elég sok találat érkezett.

Üdv.

Előzmény: Redlac (35160)
Redlac Creative Commons License 2020.12.28 0 0 35160

Sziasztok!

 

Egy 10 lapból álló userform keseríti az életemet  :-)

 

Megnyitáskor bizonyos szabályok szerint előre fel kell tölteni adatokkal a lapok textboxait.

 

With Userform1

   .MultiPage1.Value =0

   .textbox1=Date

   .textbox2=Felhasznalo

 

   .MultiPage1.Value =1

   .textbox3=Application.WorksheetFunction.Max(Sheets("Eseményes").Columns(1)) + 1

   .Shows

End With

 

Ezt eddig úgy oldottam meg, hogy megnyitáskor egy Start makró a fenti példának megfelelő With-tel végigment a lapokon,  kitöltötte magát, majd megjelent. 

Egy ideje időnként megnyitáskor szó nélkül bezáródott, még debugot sem engedett.

 

Akkor azt gondoltam, hogy szétszedtem a With Multipage részeit, és a lapokra tettem rá egyenként. Vagyis a Startban csak egy lapnak hagytam meg a kitöltését, a többi a lapra való kattintással aktíváltam....volna :-(

 

Ám itt időnként újra csak behalt. "A meghívott objektum levált az ügyfeleiről" és ezt a hibaüzenetet adta. A legkülönféle soroknál állt meg. Az egyik lapon a dátumnál, egy másiknál a felhasználónál, egy harmadiknál, ha a munkafüzetből kellett kiolvasni valamit. De van olyan lap, aminek a listboxa egy szűrést követően hiba nélkül kitöltődik. 

 

A hibajelenség nem teljesen konzekvens. Egy megnyitásnál jó, majd egy következőnél nem. Illetve azt figyeltem meg, hogy ha megnyitom az Excelt teljesen, ÉS belépek a VBA felületére, rákattintok duplán a userformra, majd ezután futtatom, akkor minden jó. Próbáltam a load és a show lehetőségeket kombinálni, cserélni, de semmi. Már levettem teljesen a Before Close-t, hogy ne az legyen, hogy a bezárás kavar bele valamit, illetve változtatja meg a megnyitásra, de semmit sem találok.

 

Ami végképp őrület, hogy a saját laptompomon (Win10, Office2019, 32 bit) hiba nélkül fut, a cégesen (Win10, Office2016, 32 bit) produkálja a fenti hibát. A VBA References között mindkét gépen ugyanazok vannak pipálva. Egy korábbi "iktatóra" tettem plusz funkciókat, és január 1-jével terveztük beállítani. Az extra dolgok remekül működnek, ez a fránya megnyitás vacakol. 

 

Van valakinek ötlete?

Fferi50 Creative Commons License 2020.12.22 0 1 35159

Szia!

"Érdekes volt, hogy ha a formátumot úgy adtam meg, hogy: "yyyy.mm.dd", akkor nem működött" 

 

Mivel a makróban "nemzetközi" (gyakorlatilag USA) formátumot kell alkalmazni, ezért nem jó a pontokkal, kötőjelekkel stb. megadott formátum.

 

Üdv.

Előzmény: Redlac (35158)
Redlac Creative Commons License 2020.12.22 0 1 35158

Megint egy áthidaló megoldás lett, de azért leírom, hátha valakinek jól jönne.

 

Szóval a Microsoft DTPickers az "Additionals controls"-ok között nem volt, és az ezt tartalmazó mscomct2.ocx fájlt nem lehetett telepíteni.

 

Így Textboxból, Spinbuttonból és egy CommandButtonból összeraktam egy ilyet (illetve az egész formra 10 db-ot).

 

 

 

A form indításakor Tb=CDate(Now)

 

A Spinbuttonra:

 

Private Sub SB_SpinUp()
     Tb.Text = Format(CDate(Tb.Text) + CDate(Tb.SmallChange), "yyyy/mm/dd.")
End Sub

Private Sub SB_SpinDown()
    Tb.Text = Format(CDate(Tb.Text) - CDate(Tb.SmallChange), "yyyy/mm/dd.")
End Sub

 

A MA gombra (ha vissza kellene egyszerűen lépni) szintén -> Tb=CDate(Now)

 

Érdekes volt, hogy ha a formátumot úgy adtam meg, hogy: "yyyy.mm.dd", akkor nem működött, viszont perjelekkel beírva a pontokkal rendelkező formátumot írja be, illetve kezeli.

Mivel jellemzően csak pár napot kell lépdelni, így nem hiányzik a teljesen lenyíló naptáras megjelenítés.

Előzmény: Redlac (35154)
Redlac Creative Commons License 2020.12.22 0 0 35157

Megnéztem, mindegyik 32 bites.

Előzmény: Eredő Vektor (35155)
Redlac Creative Commons License 2020.12.21 0 0 35156

Hmm, ez egy jó kérdés. Köszi az irányt, ránézek ezekre.

Előzmény: Eredő Vektor (35155)
Eredő Vektor Creative Commons License 2020.12.21 0 0 35155

melyik office hány bites (64/32)?

 

Előzmény: Redlac (35154)
Redlac Creative Commons License 2020.12.21 0 0 35154

Sziasztok!

 

VBA DTPickers problémánk adódott.

 

A céges gépeken eddig Office 2013, majd 2016 volt. Ezeken remekül működtek a korábbi években készített formok, amik többek között DTPickerseket is tartalmaztak.

Pár hete az egyik kolléga új gépet kapott, amin már Office 2019 volt, és az ezzel megnyitott korábbi formokon a DTPickerseket nem jeleníti meg, illetve eltávolította azokat, mert ezek után korábbi Office-szal megnyitás esetén már nincsenek ott azok az objektumok. 

Nálam az itthoni gépen szintén 2019-es van, azon hiba nélkül működik.

 

Van esetleg ötletetek?

Redlac Creative Commons License 2020.12.18 0 0 35153

Igen, ez tényleg jó :-)

Köszönöm

Előzmény: Fferi50 (35152)
Fferi50 Creative Commons License 2020.12.18 0 0 35152

Szia!

Próbáld a Range.Text tulajdonságot használni, ez a cellában látható formátumban adja vissza az ott található értéket:

Textbox1=Range("N14").Text

Üdv.

 

Előzmény: Redlac (35151)
Redlac Creative Commons License 2020.12.18 0 0 35151

Sziasztok!

 

Időpontok (túlórák) összegzésével birkózunk. Adott hónap/személy - majd szumma egész év. Ezt szumhatöbb függvénnyel összesítem.

Az világos, hogy ha 24 óránál többet szeretnék összegezni, akkor a "[ó]:pp" formátumot kell választani.

Így a cellákban jól összegzi az órákat.

A cél, hogy ezek után egy megnyitott form textboxa vegye át ezeket az összegzett óraszámokat, és csak jelenítse meg. Ám - annak ellenére, hogy a kiolvasott cellában jól jelenik meg az óra formátum - ide már csak a 24 órák feletti óraszámokat írja be.

Ha átírom a textbox1=Format(Sheets(1).range("N14"),"[h]:mm") formátumra akkor meg ezt jeleníti meg: ":12" :-O

 

Hogyan lehetne jól beolvasni a textboxba a cella tartalmát?

 

 

Redlac Creative Commons License 2020.12.15 0 0 35150

Köszönöm, ez is remek ötlet, így fogom csinálni.

És az Enterest is átvariálom a beragadósnál, hogy a következő box szedje ki.

Előzmény: Törölt nick (35149)
Törölt nick Creative Commons License 2020.12.15 0 1 35149

Erre azt javasolnám, hogy a MouseMove és az Enter eseményekben beállított szín legyen eltérő. MouseMove-ra pl. halványpiros, Enter-re erős piros. Amíg a user csak kaszál az egérrel, addig legfeljebb előrejelez egy kattintási szándékot, de ha belekattint a vezérlőbe, akkor úgyis életbe lép az ENTER esemény, és akkor a vezérlőbe megkapja a fókusz-színt.

Előzmény: Redlac (35147)
Törölt nick Creative Commons License 2020.12.15 0 1 35148

Akkor a TAB sorrendben következő control ENTER eseményébe kell betenni a frame-ben utolsó checkbox színvisszaállítását.

Előzmény: Redlac (35146)
Redlac Creative Commons License 2020.12.15 0 0 35147

Ez a MouseMove esemény zseniális, ez működik.

De a csoport egy része billentyűzetről (TAB-bal) szereti tölteni, a másik része meg egérrel :-)

így remek lenne, ha mindkettő tudna működni. 

Előzmény: Törölt nick (35145)
Redlac Creative Commons License 2020.12.15 0 0 35146

Ez szabadon lévő checkboxnál remekül működik, de ha frame-ben van ÉS az utolsó objektum, akkor továbblépés esetén (vagyis, amikor kikerül a fókuszból) nem is megy bele az Exit eseménybe, és így az Enternél beállított backcolort megtartja.

Előzmény: Törölt nick (35144)
Törölt nick Creative Commons License 2020.12.15 0 1 35145

Esetleg a MouseMove esemény is jó lehet, pl:

 

Private Sub CheckBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CheckBox1.BackColor = RGB(255, 0, 0)
End Sub

 

Ez esetben viszont a háttérszín alaphelyzetbe állítása kicsit macerás, mivel lényegében minden control MouseMove eseményében el kell helyezni egy szubrutint, ami az összes control hátterét alapba állítja.

 

Private Sub CheckBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    Alaphelyzet
    CheckBox1.BackColor = RGB(255, 0, 0)
End Sub

 

Private Sub Alaphelyzet

    'minden ctrl.BackColor = -2147483633

End sub

 

Előzmény: Törölt nick (35144)
Törölt nick Creative Commons License 2020.12.15 0 0 35144

Az ENTER esemény jelzi, hogy az adott control megkapta a fikuszt.

 

Private Sub CheckBox1_Enter()
    CheckBox1.BackColor = RGB(255, 0, 0)
End Sub

 

Az EXIT pedig jelzi a fókusz elvesztését, ezzel tudod a háttérszínt alaphelyzetbe állítani.

 

Private Sub CheckBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    CheckBox1.BackColor = -2147483633
End Sub


 

Előzmény: Redlac (35143)
Redlac Creative Commons License 2020.12.15 0 0 35143

Sziasztok!

 

Egy formon egy frame-ben lévő CheckBoxnak hogyan lehetne "látni", hogy rajta van a fókusz? Illetve az egy esemény? 

A cél, hogy a CheckBox BackStyle és BackColor tulajdonságát változtassam, ha rajta van a fókusz. 

Sánta Kutya (SK) Creative Commons License 2020.12.14 0 0 35142

Működnie kell.

Előzmény: pimre (35140)
pimre Creative Commons License 2020.12.14 0 0 35141

Persze a többi függvényre is ezt írja, tehát ettől még lehet már akkortól is.

Előzmény: pimre (35140)
pimre Creative Commons License 2020.12.14 0 0 35140

Biztos m¤ködik a tömbképlet az Excel 2000-ben?

 

Itt úgy látni, hogy csak az Excel 2007- óta van: https://support.microsoft.com/hu-hu/office/%C3%BAtmutat%C3%A1sok-%C3%A9s-p%C3%A9ld%C3%A1k-t%C3%B6mbk%C3%A9pletek-haszn%C3%A1lat%C3%A1hoz-7d94a64e-3ff3-4686-9372-ecfd5caa57c7

 

 

 

Előzmény: Sánta Kutya (SK) (35139)
Sánta Kutya (SK) Creative Commons License 2020.12.14 0 0 35139

Kösz a tippeket, elsőre nem jött össze, de még próbálkozom.

Előzmény: Eredő Vektor (35138)
Eredő Vektor Creative Commons License 2020.12.13 0 0 35138

De lehet így is:

{=SZORZATÖSSZEG(HA(ÉV(A1:A4)=ÉV(MA());B1:B4))}

Előzmény: Eredő Vektor (35137)
Eredő Vektor Creative Commons License 2020.12.13 0 0 35137

a példádra ilyesmi:

TÖMBképlet!:

={SZUM(HA(ÉV(A1:A4)=ÉV(MA());B1:B4;0))}

Előzmény: Sánta Kutya (SK) (35134)
Eredő Vektor Creative Commons License 2020.12.13 0 0 35136

tömbképlet ctr+shift+enterrel kell bevinni

Előzmény: Eredő Vektor (35135)
Eredő Vektor Creative Commons License 2020.12.13 0 0 35135

ilyesmi:

 

=SZUM(HA(B1:B4=1;C1:C4;0))

Előzmény: Sánta Kutya (SK) (35134)
Sánta Kutya (SK) Creative Commons License 2020.12.13 0 0 35134

Excel 2000 SZUMHA() függvényben hogy lehet függvényt alkalmazni a kritériumtartományra?

Pl. az A oszlopban dátumok vannak. Adjuk össze a C-ben azokat, amelyek mellett az A-ban idei dátum van!

Valami ilyesmire gondolok:

Tartomány: A:A

Kritérium: ÉV(A1) = ÉV(MA())

De így nem megy. A kék helyére mit lehet írni?

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!