-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - 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! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁ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
-
vilag
tag
na de akkor miért nem ad "type mismatch" hibát?
(#2388) vilag:
hmmm, nem maradtál véletlenül valahol "on error resume next"-ben?Nem maradt On error resume next-ben
Amikor csak lehet, ezt kerülöm pont azért, hogy ilyen hibák ne forduljanak elő.
Egyelőre ez a probléma megoldódott.
-
martonx
veterán
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. 
Én folyamatosan maszekolok, de a vbscriptet (excel makrót) már rég kinőttem. Ezért sincs időm (meg igaziból kedvem sem) ráugrani a topikban előjövő problémákra, mert napi szinten programozok mind fő, mind mellékállásban.
-
martonx
veterán
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.

Akkor már te se vagy mai gyerek

VB-t napi szinten csinálod, vagy csak hobbi?
Én hál' istennek már csak hobbiból (ahogy ez sajnos az itteni segítségeim színvonalán kezd is látszódni), bár lehet be fog futni egy maszek excel makrós meló, és megint visszakényszerülök excel makrózni.
-
Fire_Vire
tag
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.
A txt úgy működik mint egy csv fájl. A benne lévő adatok ";" vannak elválasztva.
Minden loggolni kívánt eseménynél a txt-ben egy egész sornyi adat tárolódik le.
Bocsánat mindenkinek a nem egyértelmű leírásért. Megpróbálom beszúrni a programkódomat.
Jelen pillanatban a kiolvasásom így van megírva (AutoIt):;### 2db feltétel esetén:
If $keres_berendezes=1 And $keres_eszkoz=1 And $keres_DB=0 And $keres_hiba=0 And $keres_kezd_ido=0 And $keres_nyugta_ido=0 Then
GUICtrlCreateListViewItem($count1&"|"&$count2&"|"&$count3&"|"&$count4&"|"&$count5&"|"&$count6, $listview)
$talalatok=$talalatok+1
EndIf
If $keres_berendezes=1 And $keres_eszkoz=0 And $keres_DB=0 And $keres_hiba=1 And $keres_kezd_ido=0 And $keres_nyugta_ido=0 Then
GUICtrlCreateListViewItem($count1&"|"&$count2&"|"&$count3&"|"&$count4&"|"&$count5&"|"&$count6, $listview)
$talalatok=$talalatok+1
EndIf
.
.
;### 3db feltétel esetén:
If $keres_berendezes=1 And $keres_eszkoz=1 And $keres_DB=1 And $keres_hiba=0 And $keres_kezd_ido=0 And $keres_nyugta_ido=0 Then
GUICtrlCreateListViewItem($count1&"|"&$count2&"|"&$count3&"|"&$count4&"|"&$count5&"|"&$count6, $listview)
$talalatok=$talalatok+1
EndIf
.
.
.Ebből az IF ciklusból kellene számításaim szerint 720db de eddig csak 3 feltételig írtam meg ami kb. 21db.
Ezt le lehetne egyszerűsíteni? -
martonx
veterán
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).jaja, mondtam én, hogy a pszeudo kódomon még lehet mit tökéletesíteni

-
martonx
veterán
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.
Egyrészt igazad van, valóban nem volt jó az ötletem.
Másrészt tényleg a te kedvedért nyitottam meg az excelt. -
martonx
veterán
mármint mi helyett? mert tudtommal sem worksheet open, sem worksheet close nincs...

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.
-
martonx
veterán
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, igazad van, worksheet-et akartam írni.
-
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) -
ArchElf
addikt
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?

Azért olvasgass utána, jó?
Google keresést csak akkor szoktam linkelni, ha az első oldalon nagyrészt csak releváns találatok vannak. Ebben az esetben nem szükségszerűen VBA témakörben - mivel ez az alapelv majd minden fejlesztői nyelvre azonos.Amúgy em nagyképű itt általában senki (legalább is itt a programozás fórumon talán nem azok a befordult kockák vannak csak, mint máshol...) Másrész nem kell offenzívnek venni azt, hogy egyből az a reakció, hogy "hülyeségeket kérdezel". Attól még, hogy megsértödsz, hülye a kérdés - legalább is azt mutatja, hogy az alpokkal nagyon nem vagy tisztában. Nem probléma magában ez sem - csak nem kell feltétlen arra várni, hogy valaki megoldjon helyetted mindent - és nem kell érzelmi irányba terelni a dolgot, hiszen gyakorlati kérdésben jöttél.
Egy kis alázat nem árt, még ha nehezen is megy néha. Soha nem találkoztál az itt fórumozó emberekkel, és talán soha nem is fogsz - ha megvan a megoldás, vagy az oda vezető út, ne akadj fent azon, hogy valakinek rossz napja van. Itt mindenki önszántából magyarázná el (illetve - ha rossz napja van - éppen nem magyarázná el) 1001-szer az alapokat.Ha hobbi szinten csinálod, szánj rá - még - egy-két órát, és máris csak annyi hátrányban leszel, hogy nem tudod egyből hogy merre indulj el (nem pedig alapvető problémáid lesznek).
GetActive - ha vannak benne új dolgok (a használt TypeName függvény kivételével) - pl. rekurzió, típusok, akkor tényleg mielőbb keríts egy (alapszintű, bármilyen nyelvet bemutató) programozási könyvet. Nem bántásból mondom: 20-30 oldal után kész megvilágosodásban lesz részed, ha van érzéked a témához.
Sub csakszam(KeyCode, Shift) - ebben az esetben u.n. Varian típusra deklarálod a változókat (típus nélküli változó), ami az értékadáskor pontosítja a változó típusát. Használata mellőzendő, hacsak nem elkerülhetetlen - mivel növeli a kód bizonytalanságát. Ugyanez vonatkozik az Option Explicit-re is: célszerű használni, mert rákényszerít a pontosságra.
MaskedEdit VB6 kontrol, nem VBA (VB 6.5 = Visual Basic for Applications = gyak. Office VB). Azért nem találtad, mert valami egységcsomagban lenne benne (asszem MS Common Controls, vagy valami hasonló) - neten rá kell keresni és lehetőleg MS oldalról letölteni.
Azután ha megvan (feltelepítve), akkor először hozzá kell adni a References... hez, majd már használható lesz a kontroll-ok között.AE
-
ArchElf
addikt
Á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.

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
-
ArchElf
addikt
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?
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
-
#90999040
törölt tag
"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?É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?
Természetesen. A legegyszerűbb, ha az excel vba referenciáihoz hozzáadod a "Microsoft Word x.y Object Library"-t. Ez után már használhatod pl. így(vilag #1472-es hozzászólása alapján):
Dim wrdApp As Word.Application
Dim wrdDoc As Word.Document
Set wrdApp = CreateObject("Word.Application")
With wrdApp
.Visible = True 'látszik a word alkalmazás
Set wrdDoc = .Documents.Open(".doc fájl neve") 'megnyitja a word documentumot
.ActiveDocument.MailMerge.MainDocumentType = Word.wdFormLetters
.ActiveDocument.MailMerge.OpenDataSource Name:=".xls fájl neve", _
LinkToSource:=True, _
Format:=Word.WdOpenFormat.wdOpenFormatAuto, _
Connection:="Munka1$", _
SQLStatement:="SELECT * FROM `Munka1$`"
With .ActiveDocument.MailMerge
.Destination = Word.wdSendToPrinter
.SuppressBlankLines = False
With .DataSource
.FirstRecord = 14
.LastRecord = ig2 'saját változó
End With
.Execute Pause:=False 'Mailmerge futtatása
End With
End With
'wrdDoc.Close 'documentum bezárása
'wrdApp.Quit 'word bezárása
'takarítás
'Set wrdApp = Nothing
'Set wrdDoc = Nothing
Új hozzászólás Aktív témák
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - 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! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁ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
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Apple MacBook
- Házimozi belépő szinten
- Samsung Galaxy S25 - végre van kicsi!
- Visszatérés az aranykorba: Heroes of Might and Magic: Olden Era Early Access
- Milyen billentyűzetet vegyek?
- Milyen TV-t vegyek?
- Gumi és felni topik
- Építő/felújító topik
- Milyen okostelefont vegyek?
- További aktív témák...
- ASUS RX 9070 XT 16GB GDDR6 PRIME OC - Új, 2 év gari - Eladó!
- Fujitsu LIFEBOOK E459 I3-8130U 8 GB 256 GB NVMe 15,6" FullHD laptop
- HP ProBook 450 G8 I3-1115g4 8 GB 256 GB NVMe 15,6" FullHD IPS laptop
- Lenovo Thinkpad T14 G2 Ryzen 3 5450u/16GB/256 GB SSD/14"FHD gyári gar
- HP Elite x2 G4 I5-8265U/8 GB RAM/256 SSD/3k IPS TOUCH 2in1 laptop és tablet
- Apple iPad A16 128GB, Wi-Fi, Újszerű, 1 Év Garanciával
- Akció! Értékcsökkentett gamer alaplapok /ASUS/MSI/AM5/Számlával/
- AKCIÓ! 2TB Samsung 980 PRO NVMe SSD meghajtó garanciával hibátlan működéssel
- Kezdő Gamer PC-Számítógép! Csere-Beszámítás! I7 4770K / GTX 1060 6GB /16GB RAM /250SSD + 500GB SSHD
- Micron 3400 512GB M.2 PCIe Gen4 SSD! 6600-3600MB/s
Á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. 
)
Szerintem összekeversz valakivel.
), 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.![;]](http://cdn.rios.hu/dl/s/v1.gif)

