Hirdetés
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Fejhallgató erősítő és DAC topik
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- AMD vs. INTEL vs. NVIDIA
- Először kombinálja a Full HD-t az 1000 Hz-cel egy monitor
- AMD Navi Radeon™ RX 9xxx sorozat
- Projektor topic
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Apple MacBook
- AMD FX
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Cpt. Flint
tag
napi hobbi.

igazából mostanság már nem foglalkozom vele túl sokat, nekem is pár éve volt ebben a csúcs. de ha valami előjön, akkor nagyon bele tudom élni magam, szeretek vele tücskörészni.
de olyan sok időm nincs rá, nekem is lett volna egy maszek, de sehogy se fért bele az életembe, végül visszaadtam. 
-
Cpt. Flint
tag
-
Cpt. Flint
tag
-
Cpt. Flint
tag
Amikor hazaértem elolvastam az üzeneteket csak így kaja előtt nem volt teljesen világos.
Aztán láttam Cpt. Flint (#2375) üzenetében nem értette a kérdésem ezért gyorsan válaszoltam neki.
Most hogy kicsit agyaltam rajta már készen is van a program.
Köszönöm a válaszotokat a te(martonx) első variációdat használtam fel.
Flint megoldása is jó, de az "és"-ek és az a plusz 5 változó már bőven elfér
.
Így már bármilyen keresést el tudok a programmal végezni és sokkal-sokkal rövidebb lett így a programkód mint ahogy azt az elején kiagyaltam.
Kösz még 1x
Hmmm... én még abban az időben kezdtem tanultni a BASIC-et, mikor ZX Spectrumok és Commodore 64-ek voltak, külső lemezes meg kazettás "programtárolással", és baromira nem volt mindegy, hogy milyen hosszú egy kód, mennyi változó és művelet van (különösen az if-then bírt lassítani).
(nem is beszélve a TI-57 programozható számológépről
)
Mondjuk pl. én a "siker" változóknak biztos lineáris tömböt használnék, sőt, lehet, hogy a feltételnév/feltételérték/siker egymáshoz kapcsolódó teljes rendszert egy tömbben tárolnám.de ezek már csak olyan apróságok: elsőre nem feltétlenül kézenfekvő, de talán elegánsabb.

-
Cpt. Flint
tag
Nem biztos, hogy ez a legjobb módszer, de például vizsgáld le külön küllön az összes feltételre a cuccot.
Ha feltétel1 nem létezik vagy a sor megfelel feltétel1-nek, akkor siker1 igaz
Ha feltétel2 nem létezik vagy a sor megfelel feltétel2-nek, akkor siker2 igaz
...
Ha feltétel6 nem létezik vagy a sor megfelel feltétel6-nek, akkor siker6 igazVégül egy sor akkor lesz jó, ha siker1, siker2 .... siker6 mind igaz
sőt, ha a siker(1,2 ..., n)=igaz helyett a siker(1,2 ..., n)=1 kifejezést használjuk, akkor a végén csak annyit kell vizsgálni, hogy siker(1)+siker(2)+...+siker(n)=n igaz-e.

így megspóroljuk az "és"-eket, és akár ciklust is használhatunk az összegzéshez, ami a feltételek számának esetleges későbbi módosulásakor jól jöhet, mert nem kell átírni a kódot, csak egy változót kell módosítani (és még azt is könnyen le lehet programozni). -
Cpt. Flint
tag
Helló!
Egy "txt" fájlokat soronként átnéző programon dolgozom. Hobbiként tanulom a programozást. A problémámat már részben megoldottam, de szeretném egyszerűsíteni mert gondolom van rá sokkal egyszerűbb módszer is mint amit én kiagyaltam rá.
Az én kereső módszerem:Feltétel1 Feltétel2 Feltétel3 Feltétel4 Feltétel5 Feltétel6
Ha valaki csak 1db feltételt ír be akkor egyszerű a dolog a program kilistázza azokat a sorokat ahol az adott helyen megtalálta a keresési feltétellel megeggyezőt.
DE ha 2, 3, 4, 5 vagy esetleg 6 db feltétellel egyszerre keres akkor az én kódom szerint így kellene leírnom:HA Feltétel1=”XXX” ÉS Feltétel2=”XXX” ÉS Feltétel3=”XXX” ÉS….. AKKOR
KIÍRATÁS Feltétel1=”XXX” ÉS Feltétel2=”XXX” ÉS Feltétel3=”XXX” ÉS…A lényeg hogy nincs kedvem leírni mind az 6*5*4*3*2*1 azaz 720 (HA...) variációt. Nincs valami egyszerűbb kereső procesz. Vagy esetleg valami jobb logikai módszer erre. Elég lenne néhány parancs tipp is a többit kigooglézom.
Előre is köszi

Üdv, Feri.egyelőre nem egészen érthető számomra a feladat.
a txt fájl valami módon szabályosan tagolt? (rekordok és mezők vannak benne voltaképpen?)
azon belül a feltétel 1-6 bizonyos "mezők" (a sor egyes szakaszai) értékére vonatkozna?
mi kell eredményként? a sor száma? a feltételnek megfelelő szövegrész? a teljes sor? csak az a sor érdekes, ami minden feltételnek megfelel, vagy minden sor számít, ami legalább egy feltételnek megfelel?sokat segítene, ha kicsit konkrétabban leírnád a feladatot.
-
Cpt. Flint
tag
-
Cpt. Flint
tag
Figyi, tökre örülök neki, hogy hónapok óta nem kellett excel makróznom (és ha minden igaz ez még sok évig így is marad
), de a kedvedért indítottam egy excelt. Pontos megoldást elvből nem vagyok hajlandó adni, az elv a lényeg. Aki értelmes annak ez úgyis elég, aki nem annak meg úgyis mindegy, hogy fél percet foglalkozok-e vele, vagy éveket.Szóval: Worksheet_Activate esemény van, sőt van Deactivate is, vedd úgy hogy ezeket akartam az open - close helyett írni.
Az ÉN kedvemért???
Szerintem összekeversz valakivel.Én leírtam egy megoldást. Elvből sem titkolva, mert nem mindenki akar ezzel foglalkozni, lehet, hogy siet, lehet, hogy most az egyszer van erre szüksége, lehet, hogy most kezdi; és ebből is tanul, ahogy én is tanulok mások példáiból.
Nem akartalak felbosszantani, csak mellékesen megjegyeztem, hogy az általad adott megoldás nem felel meg a feltett kérdésnek (fealadatleírásnak).
Erre kaptam egy egyszerű választ, ami már bosszantott kicsit, mert megint nem volt igazán értelmezhető.
Legutóbbi beírásod után meg már teljesen egyértelmű számomra, hogy sem azt nem nézted meg, hogy ki kicsoda, sem azt, hogy pontosan mit is akar...Az activate/deactivate nem igazán alkalmas a worksheetek nyitott workbookon belüli jelszavazott elrejtésére egyes felhasználók elől. Én legalábbis nem tudom elképzelni.
-
Cpt. Flint
tag
-
Cpt. Flint
tag
na de ez a teljes workbookra vonatkozik, neki meg bizonyos sheetekre kell csak, gondolom a workbookot meg kell tudni nyitni "korlátozottan" is.
Én ezt tenném:
Private Sub CommandButton1_Click()
pwd = InputBox("Adja meg a jelszót:", "Munkalapok felfedése")
If pwd = "akarmi" Then
For i = 2 To 3
Worksheets(i).Visible = True
Next
Else
hiba = MsgBox("A megadott jelszó hibás!", vbCritical + vbOKOnly, "Jelszó hiba")
End IfEnd Sub
A CommandButton1 beágyazva az 1-es munkalapra a "Felfedés" felirattal.
A WorkbookOpen-ben persze megcsinálom ugyanilyen for-next ciklussal a worksheetek visible=false beállítását. És nyilván le kell jelszavazni a VB részhez való hozzáférést.![;]](//cdn.rios.hu/dl/s/v1.gif)
bocs, annyi még, hogy a WorkbookOpen-ben alapok elrejtéséhez a Worksheet(i).Visible = xlVeryHidden sort kell használni ahhoz, hogy a felhasználó ne tudja popup menüből láthatóvá tenni az elrejtett munkalapokat, hanem ez csak a visible property programkódból való állításával legyen lehetséges.
(vagy eleve erre kell beállítani az adott lapok "visible" tulajdonságát a VB projektben) -
Cpt. Flint
tag
na de ez a teljes workbookra vonatkozik, neki meg bizonyos sheetekre kell csak, gondolom a workbookot meg kell tudni nyitni "korlátozottan" is.
Én ezt tenném:
Private Sub CommandButton1_Click()
pwd = InputBox("Adja meg a jelszót:", "Munkalapok felfedése")
If pwd = "akarmi" Then
For i = 2 To 3
Worksheets(i).Visible = True
Next
Else
hiba = MsgBox("A megadott jelszó hibás!", vbCritical + vbOKOnly, "Jelszó hiba")
End IfEnd Sub
A CommandButton1 beágyazva az 1-es munkalapra a "Felfedés" felirattal.
A WorkbookOpen-ben persze megcsinálom ugyanilyen for-next ciklussal a worksheetek visible=false beállítását. És nyilván le kell jelszavazni a VB részhez való hozzáférést.![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Cpt. Flint
tag
ember te nagyon diplomatikus vagy.

Cpt. Flint pedig nem attól hülye, hogy itt mi a rangja, hanem a kérdése minőségétől.
Értsd ha egy programozás fórumban megkérdezed, hogy miért piros a majom feneke, akkor nem azért fognak kiröhögni mert újoncként kérdezed. Sőt egy újoncnak még esetleg jobban el is néznek egy ilyen kérdést.
Devportálon meg prog.hu-n mostanában renike24 nick tud olyanokat kérdezni ASP.Net vonalon, hogy ajánlom mindenki figyelmébe, aki jót akar röhögni. Próbáltam volna rávezetni a megoldásra (tanulás, olvasás), de még én lettem leszólva, hogy miért nem mondom meg a megoldást.
Biztos én vagyok a bunkó, de egyszerűen valami hihetetlen mélységekből jönnek elő ezek a mai fiatalok."Cpt. Flint pedig nem attól hülye, hogy itt mi a rangja, hanem a kérdése minőségétől. ... Biztos én vagyok a bunkó, de egyszerűen valami hihetetlen mélységekből jönnek elő ezek a mai fiatalok."
Cpt. Flint nem hülye, csak ugyanolyan érzékeny, mint te. A "kérdés minőségétől" se lesz valaki hülye, legfeljebb tudatlan. Azért kérdez. Nem láttam a fórum szabályzatában, hogy csak okleveles, elsővonalbeli programozók lehetnek tagok és azok is csak – általad – értelmesnek minősített kérdéseket tehetnek fel. Nagyon szépen kérlek, ha hülyének tartasz, ne foglalkozz a hozzászólásaimmal. Bizonyára te is tudnál olyat kérdezni, amiért én körberöhögnélek (lehet, hogy már kérdeztél is máshol), és a lehülyézés bizonyára neked is rosszul esne (mert az ekkora arcoknak szokott leginkább).
Ja, és sajnos baromira nem vagyok mai fiatal. Valszleg pont ez az egyik oka annak, hogy kérdeznem kell, én nem úgy kezdtem, hogy 10 évesen már javascriptet írtam mondjuk, vagy akármi. Kb. egy avíttas FORTRAN könyv volt az első kapcsolatom a számítástechnikával. Lehet, azóta se vittem többre véleményed szerint, de ez annyira azért nem izgat. És hát hiába, nem ez a szakmám, úgyhogy ne kívánd tőlem, hogy nekiálljak informatikusnak tanulni, mielőtt kérdezek. Elég nekem a saját szakmámat követni, dolgozni, családot eltartani. Elhiheted, hogy csak akkor fordulok a fórumokhoz, ha sehol nem találtam számomra érthető megoldást. Aztán van aki bunkózik, van aki válaszol.
-
Cpt. Flint
tag
Pedig jó volna ha megértenéd a változók hatókörét. Nem tudom milyen fejlesztési tapasztalatod lehet, de ez a VB-re nem nagyon terjed ki.
Anélkül elég nehezen tudom elmagyarázni azt, amit látsz (és nem éresz meg). De röviden azért megpróbálom:
- Ha egy függvény definíciójában van definiálva egy változó (vastaggal)
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
azt hiába definiálod előre, az adott függvényben az itt definiált "változat" fog élni.
- Ha definiálsz egy változót egy függvényben, attól még az onnan meghívott függvényekben a változó nem létezik. A változó hatóköre csak a definiálás helyére érvényes (kivétel a kód "gyökerében" globálisan definiált változók, de azok a függvényekben felüldefiniálhatók - pl. mint paraméter)
- Használd az Option Explicit parancsot (kód legelején), hogy lásd, hogy minden változód helyesen van definiálva (és nem írtál el sehol semmit). Ez az utasítás kikényszeríti a változók definiálását.Az ActiveControl az aktuális konténerben aktív kontrolt kéri le. Arra meg kell nézned, hogy Container típusú-e és vannak-e tagjai, ha iden abban is meg kell nézni, hogy van-e aktív komponens -rekurzívan el lehet jutni az utolsó tagig, ami jelen esetben a TextBox1 komponens. De a KeyCode-ot és Shift-et nem lehet nem átadni. (Ha pedig odaírod, hogy ByVal - azaz érték és nem referencia szerinti átadás van -, akkor átkonvertálja neked az MSForms.ReturnInteger-t mezei Integer-ré)
Option Explicit
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
csakszam KeyCode, Shift
End Sub
Sub csakszam(ByVal KeyCode As Integer, ByVal Shift As Integer)
Dim Vezerlo As Control
Set Vezerlo = GetActive(ActiveControl)
'MsgBox TypeName(GetActive(ActiveControl))
If TypeName(Vezerlo) <> "TextBox" Then
Exit Sub
End If
If Shift <> 0 Then
Vezerlo.Locked = True
Else
If KeyCode = 8 Or KeyCode = 46 Or _
(KeyCode >= 48 And KeyCode <= 57) _
Or (KeyCode >= 96 And KeyCode <= 105) Then
Vezerlo.Locked = False
Else
Vezerlo.Locked = True
End If
End If
End Sub
Private Function GetActive(con As Control) As Control
If TypeName(con) = "UserForm" Then
Dim f As UserForm
Set f = con
Set GetActive = GetActive(f.ActiveControl)
ElseIf TypeName(con) = "MultiPage" Then
Dim mp As MultiPage
Set mp = con
Set GetActive = GetActive(mp.SelectedItem)
ElseIf TypeName(con) = "Page" Then
Dim pg As Page
Set pg = con
Set GetActive = GetActive(pg.ActiveControl)
ElseIf TypeName(con) = "Frame" Then
Dim fr As Frame
Set fr = con
Set GetActive = GetActive(fr.ActiveControl)
Else
Set GetActive = con
End If
End FunctionAE
nem vagyok fejlesztő. ez probléma? itt csak azok lehetnek tagok? mert akkor szorri, lelépek. autodidakta excel vba projekt író vagyok (mondjuk), félig kényszerből, félig szórakozásból.
Az angolom is hagy kívánnivalót maga után, úgyhogy ha nagy ritkán végképp nem találok valamire megoldást, akkor szoktam jólelkű fórumozókhoz fordulni. nyilván valszleg magában az objektumorientált programozás alapjaiban is vannak hiányosságaim, ezt vagy elnézitek nekem, vagy nem. ha nem, akkor nem válaszoltok, volt már ilyen.
ha egy többszázas google találati oldalt linkelsz, az nemigen ösztönzi az embert olvasásra. ettől függetlenül szemezgettem belőle, de az általad írtakat sajna pont nem találtam meg."- Ha egy függvény definíciójában van definiálva egy változó (vastaggal)
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
azt hiába definiálod előre, az adott függvényben az itt definiált "változat" fog élni."
most már érteni vélem (úgy látszik, mégis el tudod magyarázni ha van kedved, ugye nem is kellett hozzá olyan hatalmas energia). arra valóban nem gondoltam, hogy a KeyDown függvény paramétereiben voltaképp újradefiniálom a változót...
de nekem úgy tűnik, a csakszam-hoz már elég ez is: Sub csakszam(KeyCode, Shift)már látom, hogy mi volt a ByRef hiba oka; többféle változónévvel futottunk itt a példákban, aztán nem egyezett az átadott az átvettel. úgyhogy valóban, köszi, működik.
Az a GetActive nagyon frappáns ki hackelés
, mélységes hálám a visszafejtésért (vannak benne önmagukban is új/hasznos dolgok számomra); de hogy miért (csak) így működik, azt nem tudod véletlenül? Szerintem az ActiveControl így elég használhatatlan/bacsapós önmagában... nincs olyan utasítás, ami ténylegesen, közvetlenül, azonnal azt az egy darab, fókuszban levő vezérlőt adná eredményül?masked editre akkor semmi ötlet?

-
Cpt. Flint
tag
Amúgy VB6, vagy VB.NET?
Általánosságban - kicsit olvasgassál még a változók hatóköréről...
1. Hiába teszed publiccá, a függvény újra létrehozza változót és az felülcsapja (érvényességben) a globálisan létrehozott azonos nevű változót. A függvénynek át kell adni a változót. A globális változók használatát meg el kell felejteni.
2. Ha megnézed a függvény paramétereit, ott van deklarálva a változó. A függvényt meg úgy hívod meg, hogy:
csakszam TextBox1, KeyCode
ActiveControl - le kell ellenőrizni, hogy az aktuális ActiveControl TextBox-e és csak akkor kell lefuttatni a függvényt.
3. ez inkább csak hack... de azért nem rossz. De gondolom vágólap meillesztésre nem működik.
4. MaskedTextBox: vb6, vb.net
(bocs,. vb6 alatt MaskedEdit)AE
Általánosságban: jó, majd olvasgatok, ha lesz időm. (de azért, mert _itt_ újonc vagyok, még nem bizti, hogy totál hülye is.)
VB 6.5, Office 2003 SP31-2. Melyik függvény hozza létre újra, ha public?
Én ezt csináltam (volna, ha menne):Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 'Ügyirat főszámba csak számot enged írni
Dim vezerlo As Object
set vezerlo = ActiveControl
csakszamEnd Sub
Sub csakszam()
If Shift <> 0 Then
vezerlo.Locked = True
Else
If KeyCode = 8 Or KeyCode = 46 Or _
(KeyCode >= 48 And KeyCode <= 57) _
Or (KeyCode >= 96 And KeyCode <= 105) Then
vezerlo.Locked = False
Else
vezerlo.Locked = True
End If
End IfEnd Sub
Úgy gondoltam, hogy amikor a KeyDown subból meghívom a csakszam subot, akkor a KeyCode és a Shift ott is ugyanazt az értéket fogja még tartalmazni. De nem, ezek kiürülnek. Akkor is, ha külön felveszem őket public változóként. Ezért a KeyDown subban mindkettő értékét kiíratom egy-egy saját változóba (kc=KeyCode, ks=Shift) és a csakszam subban már azokat használom. Ez nem probléma, csak két plusz sor és két plusz változó.
Kipróbáltad, hogy át lehet-e adni (úgy, ahogy írtad) a KeyCode-ot? Mert nálam nem lehet, csakszam TextBox1, KeyCode-re ezt kapom: Compile error: ByRef type mismatch.
És mint írtam, pont azt szeretném elkerülni, hogy a TextBox1-et bárhol is leírjam (értékadásba vagy érték átadásba), mert azt majd akkor minden egyes subban át kell írnom a megfelelőre (ráadásul még ComboBox is lesz). Ezért szeretném az ActiveControlt használni helyette, ami általános, és elvileg mindig azt adná, ami épp kell).
"le kell ellenőrizni, hogy az aktuális ActiveControl TextBox-e"
Leellenőriztem, nem az. De MIÉRT nem az, mikor azon van a fókusz, abban szerkesztek, abból fut le a KeyDown sub??? A VB helpje szerint az ActiveControl az, amelyik épp fókuszban van. De mégsem a TextBox1-et kapom, hanem a MultiPage1-et.
Próbáltam így: set vezerlo=MultiPage1.Pages(0).ActiveControl. Ez eggyel beljebb vitt, mert így Frame1-et kaptam eredménynek, amiben a TextBox1 is van, de még mindig nem a textboxot... És ez már ebben a formában úgysem érne semmit, hiszen már akkor ha a konkrét lapot meg kell adnom, az sem jobb semmivel, mintha éppenséggel a konkrét vezérlőt adom meg.
Én sem igen szeretem a globális változókat szaporítani, de miért kell elfelejteni? Van valami komoly hátrányuk?
3. Miért lenne hack? Ez egy egyszerű, frappáns megoldás, egy darab létező tulajdonságot állítok át, és a felhasználó annyit lát, hogy ha nem megfelelő billentyűt nyom, egész egyszerűen nem történik semmi. Nyista vágólap, mert a Ctrl+akármit ez a rutin a KeyCode-ok közül nem engedélyezi (ugye vizsgálom a Shift-et, és ha nem 0, akkor eleve locked, de ha éppen nem a Ctrl-ra, akkor meg a v-re lenne az).
4. sem a VB helpjében, sem az Object Browserben nem találok MaskedEditet, egyetlen Mask tulajdonságot leltem, ami csak a CommandBarButton-ra alkalmazható.
Osztályom sincs olyan, hogy MaskEdBox, vagy akár MaskedTextBox. Sőt, az ominózus MSMASK32.OCX sem található meg a gépemen.Egyébként természetesen köszönöm a segítséget és az eszmecserét, sokat tanulok belőle.

-
Cpt. Flint
tag
Átvihető, csak át kellene adni neki.
A változók a VB-ben nem globálisak (hacsak nem annak lettek definiálva), a hatókörük csak az adott szerkezetre (szubrutinra, osztályra) vonatkozik.
így add át neki:
Sub csakszam(tb As TextBox, kc As Integer)
'8: backspace, 9: tabulátor, 13: enter, 17: Ctrl, 32: space, 46: delete, 48-57: felső számok, 86: v, 96-105: numpad számok, 109: numpad mínuszjel, 110: numpad pont, 186: é, 187: ó,
'188: vessző, 189: kötőjel, 190: pont, 191: ü, 192: ö, 219: ő, 220: ű, 221: ú, 222: á, 226:í
If kc = 8 Or kc = 46 Or _
(kc >= 48 And kc <= 57) _
Or (kc >= 96 And kc <= 105) Then
tb.Locked = False
Else
tb.Locked = True
End If
End SubAmúgy miért locked, ennek így semmi értelme nincs???
Én inkább a Changed-et használnám és megvizsgálnám, hogy az összes karakter érvényes-e (vagy egyszerűen használnék masked textbox-ot)...
AE
szóval, itt több rendbeli félreértés van.
1. maga a KeyCode úgy tűnik, nem vihető át, mert rendszerváltozó, hiába teszem public-ká, akkor is üres lesz, amint másik sub-ba ugrok. természetesen tudom, hogy egy felhasználói publikus változóba kiíratva átvihető, alkalmaztuk is, csak reménykedtünk, hátha mégis lehet az eredetit használni, merthogy úgyis azt kínálja fel a rendszer, mikor egy új keydown subot létrehozol. megspóroltunk volna egy saját változót, meg minden ilyen subban egy plusz sort.
2. honnan jön a tb változó? mert mi pont azt szeretnénk megspórolni, hogy minden keydown subban konkrétan (az adott vezérlő nevével/indexével) értéket kelljen neki adni. mivel ez esetben ez a rész mindegyik subban eltérő lesz, azaz nem lehet simán másolni, oda kell figyelni.
magyarul én a set tb=TextBox1 helyett a set tb=ActiveControl kifejezést szeretném használni, mert ez univerzális. csakhogy nem működik, mert az ActiveControl a VB szerint nem a TextBox1, amiben épp kavarok, hanem a MultiPage1. ez a problem.
3. A "Locked"-nek az az értelme, hogy így egyszerűen nem íródik be a textboxba a hibás karakter, és passz, megy tovább.
4. "Changed" az mi? Én nem találom. Ha a "Change"- re gondolsz, akkor azért a KeyDown-ból megy az egész, és nem a Change-ből, mert a KeyDown még a karakter megjelenése _előtt_ lefut, a Change meg csak utána (tehát ott már csak törölni tudnék).masked textbox hogy megy? a Format()-ra gondolsz?
-
Cpt. Flint
tag
Ha az Excel VBA Tools >> References résznél hozzáadod a Microsoft Word x.y Object Library-t, akkor használhatod a Word objectumait.
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
'wrdDoc.Close
'wrdApp.QuitEz Excelből elindít egy word alkalmazást, hozzáad egy dokumentumot, és ha az utolsó 2 sor elejéről kiveszed az aposztrofokat, akkor be is zárja.
Persze lehetne a referencia hozzáadása nélkül is, akkor viszont a Word.Application és a Word.Document helyett Object-eket kellene írni.Természetesen a word-ből is lehet az excel objektumait használni.
Csak mint írtam, ekkor alapból nem "ismerik fel" a másik alkalmazás konstansait. ezért kell ezeket külön definiálni, mert különben teljesen mást csinál a kód, mint amit szeretnénk...
"Természetesen a word-ből is lehet az excel objektumait használni."
És a másik alkalmazás VBA utasításkészletét is? Tehát levezényelhetném az excelből (DDEExecute nélkül) a körlevélkészítést a MailMerge-vel valami módon? -
Cpt. Flint
tag
Ha az Excel VBA Tools >> References résznél hozzáadod a Microsoft Word x.y Object Library-t, akkor használhatod a Word objectumait.
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
'wrdDoc.Close
'wrdApp.QuitEz Excelből elindít egy word alkalmazást, hozzáad egy dokumentumot, és ha az utolsó 2 sor elejéről kiveszed az aposztrofokat, akkor be is zárja.
Persze lehetne a referencia hozzáadása nélkül is, akkor viszont a Word.Application és a Word.Document helyett Object-eket kellene írni.Természetesen a word-ből is lehet az excel objektumait használni.
Csak mint írtam, ekkor alapból nem "ismerik fel" a másik alkalmazás konstansait. ezért kell ezeket külön definiálni, mert különben teljesen mást csinál a kód, mint amit szeretnénk...
Engem igazán az izgatna, hogy változót hogy tudok átadni mondjuk excelből wordbe.
Mert itt a legnagyobb problémánk az volt, hogy a körlevél rekordszám az excelben megfelelő programrésszel meghatározott/szűrt sorok száma kell legyen, de ezt a változót csak az excel tábla egyik cellájából bírtuk kibányászni Wordből indított DDE hívással, ami egy baromi körülményes és vacak megoldásnak tűnik nekem:
lngChannel = DDEInitiate(App:="Excel", Topic:="akarmi.xls")
ig2 = DDERequest(Channel:=lngChannel, Item:="r11c17")
Application.DDETerminateAll
Többek között ez csak a "Munka1" lapról szed, én nem tudtam elérni, hogy más munkalap legyen a forrás, aztán csak a R1C1 stílusú hivatkozás működött; illetve ha nem volt látható a hivatkozott cella (mondjuk el volt rejtve vagy össze volt csukva az adott sor v. oszlop), akkor valami nem jó értéket adott vissza (karakterként négyzet, chr$-ként talán 13?).
Sajnos a DDERequestről eddig nem sikerült normális (a VBA helpnél bővebb) leírást találnom, úgyhogy nem is vagyok tisztában vele, hogy esetleg valami más, értelmesebb, kezelhetőbb formában használható-e.
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Huawei Watch Fit 5 Pro - jó forma
- Formula-1
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- exHWSW - Értünk mindenhez IS
- Forza sorozat (Horizon/Motorsport)
- Milyen autót vegyek?
- Álláskeresés, interjú, önéletrajz
- Fejhallgató erősítő és DAC topik
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Apple iPhone 16 128GB Bontatlan Független Összes Szín / 27% áfás ár
- 27% - ASUS TUF Gaming B850-PLUS WIFI Alaplap!
- Utolsó M1 Max MacBook Pro 16"/ 64GB / 2TB / Space Gray/ 27%-os ÁFÁS
- Apple iPhone SE 2020 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



de olyan sok időm nincs rá, nekem is lett volna egy maszek, de sehogy se fért bele az életembe, végül visszaadtam.

)
), de a kedvedért indítottam egy excelt. Pontos megoldást elvből nem vagyok hajlandó adni, az elv a lényeg. Aki értelmes annak ez úgyis elég, aki nem annak meg úgyis mindegy, hogy fél percet foglalkozok-e vele, vagy éveket.
Szerintem összekeversz valakivel.
![;]](http://cdn.rios.hu/dl/s/v1.gif)



