- sziku69: Fűzzük össze a szavakat :)
- MasterDeeJay: SATA to SAS adapter
- gban: Ingyen kellene, de tegnapra
- Viber: ingyen telefonálás a mobilodon
- Elektromos rásegítésű kerékpárok
- Argos: Szeretem az ecetfát
- btz: Internet fejlesztés országosan!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gerner1
- Luck Dragon: Asszociációs játék. :)
Új hozzászólás Aktív témák
-
sztanozs
veterán
Innen lessél: [link]
Amúgy, ahhoz, hogy az AD userjeit leszedd, azért tudni kell, mit is szeretnél - mert ugye az AD-be redgisztrált számítógépek, technikai userek, stb. is mind user. No meg egy nagyobb AD-ben több 10-100 ezer user is lehet különböző konténerekben, vagy akár AD forestben...
Ja és ráadásul, ha a 'null session' nincs engedélyezve az adott AD-ban, akkor érvényes felhasználóval is kell rendelkezz az adott tartományra.
-
sztanozs
veterán
válasz
#59892992 #2468 üzenetére
Egyrészt ha kiavítanád, sem lenne jó (for a = 2 to 10), mivel 1. a kiiratás nem a ciklusban van, 2. ráadásul az értékadás után (for) változtatod a ciklusváltozó értékét.
Próbáld ki az alábbiakat és rájössz a különbségre:
1.
Sub Main()
Dim a As Integer
a = 0
For a = 2 to 10
a = a + 2
Next
Console.WriteLine("A páros számok 1-től 10-ig=" & a)
End Sub2.
Sub Main()
Dim a As Integer
a = 0
For a = 2 to 10
a = a + 2
Console.WriteLine("A páros számok 1-től 10-ig=" & a)
Next
End Sub3.
Sub Main()
Dim a As Integer
a = 0
For a = 2 to 10
Console.WriteLine("A páros számok 1-től 10-ig=" & a)
a = a + 2
Next
End Sub4.
Sub Main()
Dim a As Integer
Console.WriteLine("A páros számok 1-től 10-ig:")
For a = 2 to 10 step 2
Console.WriteLine(a)
Next
End Sub -
sztanozs
veterán
válasz
Postas99 #2464 üzenetére
Ez csak akkor működik, ha nem ajax kéréssel megy fel a szerverre:
WebBrowser1.ReadyState <> WebBrowserReadyState.CompleteHa ajax (és nincs page redirect - pl login miatt), akkor hasznosabb volna az xmlhttprequest-et használni.
Amúgy a fenti miért járhatatlan út?
For x = 1 To többezer
'... html input kitöltés
'... html submit
While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While 'Loop
Next -
sztanozs
veterán
válasz
sztanozs #2445 üzenetére
Onclick-re megnézed, hogy van-e akna, ha van akkor robban, ha nincs akkor megnézed a szomszédokat és összeszámolod mennyiben van akna és az írod ki.
Arra az esetre ha nincs akna egy kicsit nehezebb megoldani, hogy szépen "kiürítse" a terepet, mint ahogy a windowsos aknakereső csinálja. De ha ez nincs bent a feladatban, akkor elég ha 0-t írsz ki. -
sztanozs
veterán
Ez elsőre jónak tűnik.
A legegyszerűbb, ha rögtön tömböt generálsz a labeleknek és a Tag tulajdonságba teszed az aknát.
Randommal le tudod generálni a véletlenszámokat, csak arra kell figyelni, hogy ahova tettél már aknát, oda megint ne kerüljön (kevesebb aknád lesz különben) - kb mint egy lottó húzásnál. -
sztanozs
veterán
-
sztanozs
veterán
Az Enter esemény az nem az, amikor entert nyomsz.
Azt így tudod megccsinálni, ahogy írtad. Esetleg még Validate-tel - de ott ha be van állítva, hogy validate on focus lost (vagy valami hasonló), akkor akkor is lefut a validate, ha kikantitasz a mezőből (vagy Tab-bal tovább mész). -
sztanozs
veterán
1) Használd a kód formázást.
2) kb fejből, szal lehet benne hiba vagy elírásfor ix = 1 to fulek_szama
Dim ujful As TabPage
Set ujful = New TabPage
ujful.Text = "szöveg " & (TabControl1.TabPages.Count + 1)
' ide kéne az as varázskód ami a fülhöz hozzáadja a szovegelosorszam nevü RichTextBox-ot
Dim szovegdoboz As RichTextBox
Set szovegdoboz = new RichTextBox
szovegdoboz.Name = "szovegelosorszam" & (TabControl1.TabPages.Count + 1)
ujful.Controls.Add szovegdoboz
TabControl1.TabPages.Add(ujful)
next -
sztanozs
veterán
Ha már office - miért nem használsz access-t, abban legalább ez megoldható volna?
Vagy miért nem használsz az excelben korlátozásokat, azt tudod programozottan módosítani. Egyszerűen beállítod, hogy a form mezőők nem módosíthatók és kész. Megfelelő felhasználóknak meg feloldod a zárolást.
[link] -
sztanozs
veterán
-
sztanozs
veterán
Inkább a munkaszerződésben szokták kikötni, hogy a cég eszközein (illetve a munkaidőben) végzett szellemi termék jogai felett a cég rendelkezik. Tehát amit a munkaeszközödön, vagy munkaidőben, vagy a munkavégzéssel kapcsolatban készítesz, annak a cég a jogtulajdonosa, nem te és így nem is adhatod el - sem a cégnek, sem másik harmadik félnek.
Persze csak ha ez el van rejtve a munkaszerződésedben. -
sztanozs
veterán
Trim biztos megy plusz referenciák nélkül is. Az tudom elképzelni, hogy valamelyik referencia felüldefiniálja Trim-et (ami amúgy elég szarul működik alapból)...
Referenciákat magával viszi, de ha nincs ott a fájl (vagy ott van, de nem kompatibilis), akkor nem tudja felvenni.Ebben van egy pár példa: [link]
-
sztanozs
veterán
FYI - http://stackoverflow.com/questions/507191/cant-find-project-or-library-for-standard-vba-functions
Szedjél ki minden nem szükséges referenciát (fenti linken van élda, mi maradjon), az Environ("USERNAME") helyett használd az Application.Username-t. -
sztanozs
veterán
Rossz helyen volt a dupla "" (preliminary előtt) és nem ártana régió mentes szeparátort sem használni:
xlls = Application.International(xlListSeparator)
keplet = "=IF($F" & sor & "=""preliminary""" & xlls & "VLOOKUP(acquisition_projects!E" & sor & xlls & "FPY_measure!$P$39:$R$41" & xlls & "2)" & xlls & "0)"Ja és az is lehet gond, hogy magyar az excel és a VLOOKUP és IF függvények nem értelmezettek...
-
sztanozs
veterán
válasz
MasterDeeJay #2230 üzenetére
Könnyű válasz nincs. Az alábbiak közül lehet szemezgetni:
1) DataReader használata
2) Import Export mód (IMEX=1) beállítás és registry túrás (TypeGuessRows)
3) Az első 8 sort feltöltöd az adattípusnak megfelelő dummy adatokkal és betöltés után törlöd őket
Az első megoldás problémája, hogy kézzel kell leprogramoznid az adatbevitelt, nem tudod egyszerű JET motorral behúzni.
A második megoldásnál az a bibi, hogy menyiségű adatsornál igen lassú a parse, mert beolvassa az összes sort.
A harmadik megoldásnál át kell szerkesztened az összes beolvasott fájlt és törölni a belovasott táblából a dummy adatokat.Ha jól rémlik egyébként, akkor az 1. vagy 3. megoldás szükséges, ha egy meződ 255-nél több karaktert kell tartalmazzon és az első sorában a megfelelő mezőkben ez nem teljesül. Ez a 2-es módszerrel nem megy.
-
sztanozs
veterán
válasz
Milgram1 #2211 üzenetére
Amúgy még egy kis kiegészítés:
Az alábbi definíció
Dim f, m1, m2, r, F1 as Double
valójában a következőt csinálja:
Dim f as Variant , m1 as Variant, m2 as Variant, r as Variant, F1 as DoubleTehát csak az utolsót definiálja annak, amit a végéte írsz, mindent, amit nem specifikálsz azt Variant-ként hoz létre.
-
sztanozs
veterán
válasz
hiperFizikus #2200 üzenetére
Az osztály - a láthatóság szabályozása és a belső változók elrejtése céljából - tartalmaz olyan eszközt (tulajdonság - Property), ami megakadályozza, hogy a külső (nem szükségszerűen megbízható) hívó ne férjen hozzá az osztály belső váltózóihoz és azt ne tudja közvetlenül elérni/módosítani.
-
sztanozs
veterán
válasz
Rapido251 #2106 üzenetére
imagebox (vagy picturebox?)-ba kell belerakni. Ha jól rémlik akkor a shape az "lightweight control":
MSDN:
In Visual Basic 6.0, the Shape control provides an easy way to draw rectangles, circles, and other shapes on a form at design time. The Shape control is a "lightweight" control - meaning that it does not have a Windows handle, also known as an HWnd....
In Visual Basic 6.0, you can use a Shape control to draw a shape on top of a container control such as a PictureBox or Frame control by adding a Shape control to the container.
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
Próbáld meg, hogy először a frame kapjon focus-t és utána a benne levő kontrol.Rájöttem mi a gond - gondolom a ComboBox1_Exit eseményt használod.
Ha szeretnéd visszaadni a fókuszt a comboboxra, cancel-eld le az eseményt:
Cancel = True - ne setfocussal próbáld meg megtartani a fókuszt, mert az eseménykezelő végén a környezet "veszi el" azt kontrolltól.Ezt írja az Exit eseménykezelő help-je:
Note
To prevent the control from losing focus, assign True to the Cancel argument of the Exit event.Másrészt ezt írja a SetFocus help-je:
The SetFocus method is valid for an empty Frame as well as a Frame that contains other controls. An empty Frame will take the focus itself, and any subsequent keyboard events apply to the Frame. In a Frame that contains other controls, the focus moves to the first control in the Frame, and subsequent keyboard events apply to the control that has the focus.Exitnél alapvetően vagy másik kontrollra megy a fókusz, vagy input controlloknál Enter (és talán Esc) gomb hatására. Enter leütésénél a szülő kontroll kapja meg a fókuszt (form vagy frame) és osztja ki a beállításainak megfelelően.
Feltehetően egy olyan kontroll kapja meg a fókuszt (azon van a TabStop = 0 a properties ablakban), ami alapból nem kezel eseményeket (pl label, picturebox, vagy hasonló) és nem látszik rajta a fókusz. Legegyszerűbb, ha a combobox Tabstop-ja 0-ra van állítva, és akkor a panel fókuszba kerülésével ő kapja meg majd a fókuszt.
-
sztanozs
veterán
Ha fájlrendszer szinten van rajta a read-only, akkor csak trükközéssel lehet levenni:
Megnyitni egy másik fájlt ami
- bezárja az aktuálisat,
- váloztatja a readonly attributomot
- beleír
- bezárja
- újra megnyitja
- visszadja a fókuszt és kilépSzóval egyszerűbb, ha az adatok nem is az aktuális excelben vannak, hanem egy másikban amit szükség esetén szerkeszteni tud.
-
sztanozs
veterán
Ne "csak úgy" hivatkozz a lapokra, hogy "Sheet1" vagy Sheet("Alapadatok"), hanem mentsd el az elején a workbook-ot és hivatkozz rá úgy, hogy csinálsz egy publikus globális változót a workbookodnak:
'module1.bas - ba
Public databook As Workbook
'ThisWorkbook - ba
Private Sub Workbook_Open()
Set databook = Me
End Sub
'a többi modulban meg így használd
Public Sub akarmi()
'akarmi
'akarmi
'akarmi
'Sheets("Alapadatok") helyett használd:
databook.Sheets("Alapadatok")
'akarmi
'akarmi
'akarmi
End Sub -
sztanozs
veterán
válasz
Burigabi #2066 üzenetére
Nem. Megnyitod a riportot design nézetben, kiválasztod az a felületet, ahol a megjelenítendő mezők vannak. Nekem Angol verzió van, ott Detail a neve annak a felületnek ahol az egyes adatokat rendezi, de ha a meződ fejlécben vagy láblécben van, akkor ott kell elhelyezni, nem "középen".
Ezután a Tulajdonságok lapon megkeresed az események tabot, att kiválasztod a Format eseményt (vagy ez is magyarítva van?), ott legenerálod az eseménykezelőt és abba illeszted be (nem a Click eseménybe, és nem a Nyilvantartas mező eseményébe, ahogy mutattad):
If Nyilvantartás.Value = "D6" Then
Megjegyzés.Visible = True
End If -
sztanozs
veterán
válasz
Burigabi #2063 üzenetére
Ki kell rakni a mezőket a formra, a láthatóságot kikapcsolni és a figyelt mező format eseményébe bele kell íni, hogy ha felvesz a mező az adott értéket, akkor a plusz mezők láthatók, ha meg nem az, akkor nem láthatók:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Field2.Value = 1 Then
Field3.Visible = True
End If
End Sub -
sztanozs
veterán
KB igen - ez amúgy két külön esemény (pl. click után change is lefut, ha kattintás után megváltoztatod...)
alfa20 - VB6-nak kb annyi köze van a VBA-hoz (Visual Basic for Application - azaz az Office VB-je), hogy mind a kettő VB - persze, ha tudod programozni az egyiket, menni fog a másik is. No meg az alap nyelvi szintaktika is egyezik, de sem a fejlesztőkörnyezet, sem az alap osztály/függvény-könyvtár nem egyezik.
-
sztanozs
veterán
Amíg modal a formod addig nem tud más más formon semmi fókuszba kerülni. Vsz ez lehet a probléma.
Talán a gomb click eseményekre el kellene tárolnod egy form scope-ú változóban, hogy melyik gombot nyomtad meg és a Close eseménybe kellene berakni, hogy mit csináljon.Esetleg bezáráskor a fókusz állítás előtt átállíthatod a form modal property-jét False-ra, és akkor tudsz fókuszt váltani
-
sztanozs
veterán
-
sztanozs
veterán
válasz
chepavel #2021 üzenetére
Melóhelyen nem megy a skydrive (de a dropbox, se semmi ilyesmi, úgyhogy ez is kb ex-has:
Dim newpassword
'a következő sor helyére kell beírni, hogy hogyan kapod meg a jelszót, pl:
newpassword = wscript.Argument(0)
'newpassword = "akármi"
Dim app: Set app = CreateObject("MFilesAPI.MFilesServerApplication")
Dim auth_user, auth_pwd, auth_domain, auth_host, auth_port
'Itt kell megadni, hogy milyen technikai felhasználónvvel és jelszóval jelentkezel be az alkalmazásba
app.Connect 3, "sysadmnlogin", "sysadmnpassw", , "ncacn_ip_tcp", "localhost", "2266", "Demo Vault", false
Dim vault: Set vault = app.LoginAccountOperations
vault.UpdateLoginPassword "mfilesadmin", newpassword -
sztanozs
veterán
válasz
chepavel #2016 üzenetére
Mivel a dokumentáció nem publikus, és nem találtam hozzá konkrét példát, így csak ex-has:
- meg kell nézned, hogy futtatható-e az alkalmazás belső api-jai külső környezetben (wbscriptből). Általában ez nem elérhető (ilyen pl NetIQ vagy MOM scripting környezete is)
- meg kell nézni, hogy a szkriptnek milyen formában adhatók át a futtatási argumentumok. WScript környezet esetén ez WScript.Arguments(n) függvénnyel, de ha nem fut WScript környezetben, akkor van saját argumentum kezelő az API-ban (ha kezel egyáltalán argumenteket)
- ha mindezzel megvagy, akkor inicializálni kell hozni a megvelelő class-t amiben az általad hivatkozott függvény van és meghívni a megfelelő argumentumokkal.
Mindez egyben kb így néz ki:
1) WScript
Dim sUser = WScript.Arguments(0)
Dim sPasswd = WScript.Arguments(1)
Dim oAPILoginClass
Set oAPILoginClass = CreateObject( "MFilesAPI.MegfelelőLoginManipulálóClass" )
oAPILoginClass.UpdateLoginPassword sUser, sPasswd2) M-Files
Dim oAPIArgumentsClass
Set oAPIArgumentsClass = CreateObject( "MFilesAPI.MegfelelőArgumentBeolvasóClass" )
Dim sUser = oAPIArgumentsClass.Arguments(0)
Dim sPasswd = oAPIArgumentsClass.Arguments(1)
Dim oAPILoginClass
Set oAPILoginClass = CreateObject( "MFilesAPI.MegfelelőLoginManipulálóClass" )
oAPILoginClass.UpdateLoginPassword sUser, sPasswd -
sztanozs
veterán
Ezt javaslom átnézésre: [link]
MSDN-ről:
RemarksWhen a UserForm is modal, the user must supply information or close the UserForm before using any other part of the application. No subsequent code is executed until the UserForm is hidden or unloaded. Although other forms in the application are disabled when a UserForm is displayed, other applications are not.
When the UserForm is modeless, the user can view other forms or windows without closing the UserFor
-
sztanozs
veterán
Hali - a projektet át tudod nevezni a project explorerben (szerintem a baloldalon megjelenő properties menüben is).
Más: az Initialize mindig végigfut. Nem is értem miért kellene megálljon. A VBA eseményvezérelt környezet, nem "áll meg" csak úgy egy rutin közepén (és nem is jó erre kényszeríteni). Ha azt akarod, hogy bevitelre "várjon" akkor legyen modális a form (ne lehessen "mögé" kattintani) és legyen egy gombod amivel leokézod a formot. -
sztanozs
veterán
Az elsőt simán meg lehet oldani, csak a kódból ki kell kapcsolni a védelmet.
A második is megoldható viszonylag egyszerűen - viszont le kell lőni hozzá a futó programot, változtatni a fájlrendszeri jogait, majd újra megnyitni. Ehhez indítani kell egy másik folyamatot (akár egy batch fájlt akár egy vbszkriptet) amelyik ezt megcsinálja.
-
sztanozs
veterán
Itt egy példa rá: [link]
-
sztanozs
veterán
Én úgy néztem, hogy az is probléma lehet, ha a következő scennário áll fenn:
1 lépés - A user egy olyan gépről nyitja meg az a táblát, ahol A és B user profil is fent van, mind a kettőben fel van töltve az XLA
2 lépés - elmentés után a B user egy olyan gépről nyitja meg az excel táblát, ahol az A user profilja nincs fentIlyenkor az első lépés utáni mentéskor az excelbe elmentődik az XLA teljes elérési útvonala, és amikor a másik gépen megnyitják és ott nem létezik az adott path, akkor az XLA-t kézzel újra be kell tölteni. Ennek kikerülésére a közösen használt XLA-kat érdemes olyan helyre tenni, ami minden gépen ugyanazon a path alatt van, pl.:
- AllUsers > Appdata > Microsoft > Excel > XLStart
- CommonProgramFiles > Microsoft Shared > Office* -
sztanozs
veterán
Ugynaz - illetve pluszban még az change (vagy onchange?) eseményt (és esetleg az összes keydown vagy keyup eseményt) kell felülvágni, hogy a bevitt adatokat konvertálja számmá. Esetleg használhatsz masked control-t is, aminél asszem ezeket (formátum) be lehet állítani...
-
sztanozs
veterán
válasz
Bobrooney #1903 üzenetére
callbyname azért nem működik, mert pont a másik irányból közelíti meg a kérdést, mint amit te szeretnél:
Nem egy függvényt vált ki (mint egy eseménykezelő), hanem egy már megírt függvényt lehet vele meghívni úgy, hogy nem a függvényt hívod meg közvetlenül, hanem átadod a környezetnek a függvény nevét és az argumentumokat és hagyod, hogy a futtatókörnyezet megkeresse neked. De ehhez fontos, hogy a függvények már készen legyenek. Nálad meg ugye az volna a lényeg, hogy a függvényeket ne kelljen megírni negyvenszer... -
sztanozs
veterán
válasz
martonx #1900 üzenetére
Pl számológép? De akár egy gány módon elkészített form kitöltő program is lehet.
Bobrooney: ez annyira elüt a valós VBA felhasználástól, hogy ezen nem gyakorolni fogsz, hanem szívni... Az Excel VBA arra van, hogy a worksheetjeidet és az azokon található adatokat manipuláljad. Azt ajánlom, inkább ilyen feladatokat találj ki magadnak.
-
sztanozs
veterán
válasz
Bobrooney #1898 üzenetére
Mármint mi a probléma? Megcsinálsz mindent az első válasz alapján:
1) Csinálsz egy classt (még a neve is oda van írva - TextBoxEventHandler)
2) Belemásolod az újonnan készített class-ba az első adag kódot
3) Belelépsz a formod kódszerkesztőjébe
4) Belemásolod a második kódot (persze, ha volt már valami kitöltve a UserForm_Initialise-ben, akkor hozzácsapod az elejéhez/végéhez)
5) A TextBoxEventHandlerclass kódszerkesztőjében a Private Sub m_oTextBox_Change() -et szerkeszted a kedved szerint...Hol akadtál egyáltalán el?
-
sztanozs
veterán
válasz
Speeedfire #1879 üzenetére
Szóközzel próbálj meg rövid pathnevet, avgy rakj az elejére és a végére dupla macskakörmöt:
"""c:\elérési útvonal\fájl.exe""" -
sztanozs
veterán
válasz
Speeedfire #1877 üzenetére
Azért, mert ha zárójelbe rakod, akkor nem statementként működik, hanme function-ként, tehát vagy meghívni kell (asszem call-lal), vagy át kell adni a visszatérési értéket valaminek.
-
sztanozs
veterán
Mármint megnyitva?
A telepített / elérhető AddInek az Application.AddIns collectionben vannak nyilvántartva. For Each-vel végigmész rajtuk, és megnézed, hogy a tiéd nyitva van-e (property-k, amik kellhetnek: Name, Installed, IsOpen).
Public Function SajatfuggvenyekBetolve()
Dim A1 As AddIn
For Each A1 In Application.AddIns
If (A1.Name = "sajatfuggvenyek.xla") And A1.IsOpen And A1.Installed Then
SajatfuggvenyekBetolve = True
Exit Function
Next
SajatfuggvenyekBetolve = False
End FunctionA megnyitott workbookok pedig az Application.Workbooks collectionben vannak. Megnézni ugyanúgy tudod:
Public Function PersonalBetolve()
Dim W1 As Workbook
For Each W1 In Application.Workbooks
If W1.Name = "personal.xls" Then
PersonalBetolve = True
Exit Function
Next
PersonalBetolve = False
End Function -
sztanozs
veterán
A wb a Form1 egy lokális változója, amit inicializáláskor töltesz fel, ahogy - szintén ugyanabban a hszban - írtam is:
Kód - Workbook:
Private Sub Workbook_Open()
Application.WindowState = xlMinimized
Set UserForm1.wb = Me
UserForm1.Show
End Sub
Kód - Form:
Public wb As Objectwcount=0-ra:
Addin-moódba teszed végül a workbook-ot? Akkor tényleg nem jelenik meg a workbook-ok között. -
sztanozs
veterán
válasz
sztanozs #1842 üzenetére
Ja - és ahogy mondani szoktuk - nem ártana debogolni... Sok kérdést meg lehet vele spórolni:
0. Megoldás
1) azon a soron, ahol megáll, megnézed a változók értékét...1. megoldás
1) Problémás sorra rámész
2) F9 vagy sor elé (szürke sávra) kattintasz - Breakpoint
3) még egyszer futtatod a kódot és megnézed, mi a sorban található változók értéke - a problémák nagy része a helytelenül használt / inicializált változókból adódik.2. megoldás
1) Problémás sor elé beszúrsz egy sort:
On Error Resume Next
2) Problémás sor után beszúrod az alábbiakat:
If Err Then
MsgBox Err & vbCrLf & Err.Description
Err.Clear
End If
On Error Goto 0 -
sztanozs
veterán
válasz
sztanozs #1841 üzenetére
Amúgy vsz amiatt csinál(hat)ja, mert a tömb utolsó eleme üres:
3 printert kiválsztva
strComputer tartalma ez lesz: cn=printer1%cn=printer2%cn=printer3%
az ebből generált tomb pedig ez:
(
"cn=printer1",
"cn=printer2",
"cn=printer3",
""
)Szóval nem ártana levágni az strComputer utolsó karakterét
-
sztanozs
veterán
A tomb(j)-ben rendesen van formázva a nyomtató neve?
GetObject("LDAP://srv/" & tomb(j) & ",ou=Printers,ou=SZE,dc=domain,dc=local")
a "rendesen" alatt a cn=csoportnév formát értem.Kódbeillesztésre ezt*
//kód
dim valami as Variant
valami = 1
// még kód
dim masvalami as Variant
masvalami = valami* Kattintható kódok és arcocskák, második sor, első gomb: [Programkód]
-
sztanozs
veterán
Form properties:
Show Modal - False
Window Position - Center ScreenTöbb Workbookra - csak a formosat zárja be:
Kód - Workbook:
Private Sub Workbook_Open()
Application.WindowState = xlMinimized
Set UserForm1.wb = Me
UserForm1.Show
End SubKód - Form:
Public wb As Object
Private Sub CommandButton1_Click()
Dim wcount As Integer
Dim twb As Workbook
wcount = 0
For Each twb In Application.Workbooks
wcount = wcount + 1
Next
If wcount = 1 Then
Application.Quit
Else
Application.DisplayAlerts = False
wb.Close False
End If
End Sub -
sztanozs
veterán
Egyrészt, ha Excel Addint csinálsz, akkor nem látszik a worksheet, de tud futni kód.
Másrészt el tudod takni kicsibe (minimized) a worksheetet, de így is látható marad (és megszünteti a többi ablak "Maximized" állapotát
Harmadrészt megnyitás után is át tudod rakni Add-in típusba, viszpnt úgy nem fogod tudni menteni a save gombbal, csak formról.Add-in-be átrakni megnyitáskor:
Private Sub Workbook_Open()
Me.IsAddin = True
End SubMentést viszont kézzel kell csinálnod, mert addin típusú excel-t nem lehet xls/xlsm-be menteni, csak xla-ba. Így mentés előtt kézzel ki kell szedni az Addin property-t (ami láthatóvá teszi a sheet-et - de jól lekódolva csak a mentés idejére).
ThisWorkbook:
Private Sub Workbook_Open()
Me.IsAddin = True
Set UserForm1.App = Me
UserForm1.Show False
End Sub
Public Sub WB_Save()
Me.IsAddin = False
Me.Save
Me.IsAddin = True
End SubUserForm:
Public App As Object
Private Sub CommandButton1_Click()
App.WB_Save
End Sub -
sztanozs
veterán
válasz
DerStauner #1829 üzenetére
Esetleg ha a cell teljes Paint-jét te valósítod meg...
-
sztanozs
veterán
Domain van, vagy csak egy csomó gép workgroupban?
Domainban simán berakjátok domain policy-be a telepítést és következő újrainduláskor felmegy. Workgroupra meg csak kell csinálni egy command file-t ami végigfut a hálózaton, fellép az összes gépre és felmásolja/elindítja a telepítőt (vagy csak bemásolod a silent telepítést indító cmd-t a startup-ba - ami ha fent van már letörli magát).
Új hozzászólás Aktív témák
Hirdetés
- LEGO klub
- exHWSW - Értünk mindenhez IS
- WLAN, WiFi, vezeték nélküli hálózat
- Milyen billentyűzetet vegyek?
- Milyen notebookot vegyek?
- Ford topik
- Gaming notebook topik
- Kertészet, mezőgazdaság topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- További aktív témák...
- Bomba ár! Toshiba Satellite Pro R50-C - i3-6G I 4GB I 128GB SSD I 15,6" I HDMI I Cam I W10 I Gari!
- Lenovo Thinkpad P1 gen1, gen2, P52s FHD, 4K oled touch
- ÁRCSÖKKENTÉS Lenovo ThinkPad T570, T580, P51s, P52s eredeti Lenovo, belső akkumulátor eladó
- Csere-Beszámítás! Sapphire Pure RX 7700XT 12GB GDDR6 Videokártya! Bemutató Darab!
- Lejárt a gyártói garancia? Mi tovább támogatjuk az IT infrádat!
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest