- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: Aquaphor Modern víztisztító
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- eBay-es kütyük kis pénzért
- Elektromos rásegítésű kerékpárok
- sh4d0w: Árnyékos sarok
Aktív témák
-
lapa
veterán
szerintem ez vba-ban nem fog menni, mert ahogy az excel elveszíti a fókuszt, nem fog tudni tovább ügyködni. emlékszem anno, hogy csináltam ilyet vbs-ben. ott tudsz sendkeys paranccsal gombokat nyomogatni és így alt+tab kombót is. pl:
option explicit
dim sh
Set sh = WScript.CreateObject(''WScript.Shell'')
sh.AppActivate ''UltraPlayer''
sh.SendKeys ''{ENTER}''
sh.SendKeys ''{RIGHT}''
sh.AppActivate ''myHTPC''
End If
meg nem mondom már hogyan volt, de varázsoltam valamit egérhez is talán. az nem volt egyszerű és lehetséges, hogy vmi wörkarounddal az ablakot raktam a megfelelő pozícióba regedittel, hogy ne a kurzort kelljen tologatni... -
lapa
veterán
válasz
Renegate #379 üzenetére
tehát a 2. lapon van valami adatsor, 1200 bejegyzéssel, amiből az 1. lap A3, A4 stb cellája alapján kell kiválasztani valamit? ez hogyan néz ki? mit kell az 1200 sorból kiszedni? most kiszedi valami és megjeleníti a 2. tábla valamelyik cellájában?
szerintem kezdem érteni. az 1200 sor egyik oszlopában megvan valahol az A3, A4 stb. (tehát a 179 meg ilyenek). ha igen, akkor fkeres fv. a barátod. vagy segíthet az én barátom is, pl.:
1. lap B3 cellája: =index(<1200-as adatsor azon oszlopa, amiből a megfelelő helyen lévőt ki szeretnéd szedni>;hol.van(A3;<1200-as adatsor azon oszlopa, ahol a 179-et megtalálod>;0))
a kacsacsőrök közé csak helyettesíts be oszlopneveket és menni fog.
[Szerkesztve] -
lapa
veterán
válasz
matekmatika #374 üzenetére
szerintem csak arról van szó, hogy egy más lapra hivatkozó függvény kell, a mostani pedig nem ilyen a táblájában. nem az A3-at akarja feltölteni szerintem, hanem B3-at.
de lehet, hogy megint egy hetet várunk az igazságra.
[Szerkesztve] -
lapa
veterán
válasz
matekmatika #330 üzenetére
activate
-
lapa
veterán
válasz
matekmatika #322 üzenetére
bár nem értem mit is értesz ''ugráltatás'' alatt (mármint mitől lenne ez ugráltatás), de itt van vmi, ami segíthet:
[link]
ha jól sejtem variánsos tömb vagy numerikus tömb kéne neked. persze én inkább beírnám egyenként a célfülbe a dolgokat mikor loopol. ha nem select-eled a fület hanem csak sheets(''összegzés'').cells(i,1)=''mittomén''-ként írod be nem telik el több idő.
btw: tömbre van egy gyakorlati példa is, itt: [link] (szuper)
[Szerkesztve] -
lapa
veterán
válasz
matekmatika #319 üzenetére
mit szeretnél pontosan?
-
lapa
veterán
válasz
matekmatika #316 üzenetére
látod ez lehetséges. a cdec azért volt benne, hogy ha 01 szerepel. azt meg se néztem mit csinál ha szöveges munkalapnév is van. arra figyelj, hogy megeszi-e az isnumeric, ha 01 a lapnév. ha nem, akkor cdec is meg isnumeric is kelleni fog.
meg a változókkal se akartam hekkelni azért maradt a select. várható volt, hogy kiokosítod
nemtom én sem pontosan mi a különbség, én mindig sub-ot használok, a function-t csak kisebb, ismétlődő rutinokra. meg azt tudod munkafüzetben, képletként használni. többet én se tudok, majd csak megvilágosít vki minket... -
lapa
veterán
válasz
matekmatika #312 üzenetére
kicsit máshogy is lehet...
Sub x()
For Each Worksheet In ActiveWorkbook.Worksheets
If cdec(Worksheet.Name) < 31 And cdec(Worksheet.Name) > 0 Then
Worksheet.Select
Cells(1, 1) = Worksheet.Name
End If
Next
End Sub
[Szerkesztve] -
lapa
veterán
válasz
MartinIsti #308 üzenetére
én még nem próbáltam ilyesmit, de kósza ötlet:
vb editor súgójában AddressLocal Property. ahogy nézem ő szövegként kéri be a tartományt, ezzel lehet tudsz neki olyat gyártani amit szeretne. -
lapa
veterán
válasz
matekmatika #290 üzenetére
activeworkbook.path / .name / .fullname
ezekkel tudsz játszani (hosszak ilyesmi), szerintem relatívot nem ismer. aztán lehet mégis...
esetleg még if fileexists(''D:\bla\bla.xls'') then
...
else
...
end if -
lapa
veterán
válasz
matekmatika #288 üzenetére
megerősítem, nálam is műxött rendesen
-
lapa
veterán
válasz
MartinIsti #265 üzenetére
Sub x()
Cells(3, 3).Value = Application.WorksheetFunction.Sum(Range(Cells(1, 1), Cells(2, 2)))
End Sub -
lapa
veterán
válasz
matekmatika #261 üzenetére
az nem a vb editorban kéne legyen? legalábbis xp-ben ottan vagyon... vagy rosszul értem és nem a kódot akarod aláírni, hogy ne sírjon a biztonság miatt?
-
lapa
veterán
válasz
bLaCkDoGoNe #255 üzenetére
csináltam egy ilyet proof-of-conceptnek. [link]
két dolog szab neki határt: amennyiben bármelyik lapon egy adott typ többször is előfordul akkor csak az elsőt fogja számolni. a másik, hogy láthatóan nem alkalmazható 5-7(?) lap felett, mert szerintem nem fér bele a szerkesztőbigyóba. majd az újba már lehet írogatni bármennyit. mindenesetre bővíthető: az utolsó + jeltől a végéig kopizva - bemásolva - lapnevet átírva. -
lapa
veterán
válasz
Jester01 #252 üzenetére
elindul akkor is, ha sima modulnak auto_open() a neve, nem szükséges különösebb varázslat.
asszem pl. #253 nem is indulna el ha xlt-ként van mentve és duplakattolsz mert az talán workbook_new vagy ilyesmi. legalábbis így rémlik. meg be lehet rakni az elejére, hogy ha az eredeti fájlnév megváltozik akkor ne induljon el. hasznos ha tesztelni kell vagy ilyenek, mert adott esetben helyi tanusítvánnyal vagy öngyilkos módban (alacsony biztonság) nem jelenik meg az ''engedélyezés''...
[Szerkesztve] -
lapa
veterán
válasz
matekmatika #243 üzenetére
bp.Range(Cells(Cells(i, 21), 2), Cells(Cells(i, 21), 4)).Select?
nem próbáltam ám csak tippelgetek
vagy ez az aktív sheet celláinak értékét hozza ilyenkor?
[Szerkesztve] -
lapa
veterán
válasz
matekmatika #241 üzenetére
pontosan melyik sornál áll meg?
-
lapa
veterán
válasz
matekmatika #228 üzenetére
activeworkbook.close savechanges:=false
vagy vmi ilyesmi ha nem műx kinézem valahonnan de így emlékszem.
a másikra: feltételezem ugyebár alapból vbs scriptként funkcionált, szal valami exit sub kéne helyette ha mindenképp hű akarsz maradni az eredetihez. -
lapa
veterán
válasz
matekmatika #223 üzenetére
én egyszer próbáltam meg az outlookban makrózást de az a gyökér még az adott mappában lévő elemeken is csak sokadszorra tudott loopolni... úgyértem vmi alap dolgot akartam, hogy minden elemet helyezzen át és ugyan minden futtatáskor áthelyezett valamennyit, de nem mindet. ha újra futtattam megint átlapátolt egy keveset. elég hulladék.
-
lapa
veterán
válasz
matekmatika #220 üzenetére
tán ez segít: [link]
-
lapa
veterán
válasz
matekmatika #217 üzenetére
van egy ilyen, küzdöttem vele régen:
ActiveWorkbook.SendMail Recipients:=''lapa''
az volt a baj, hogy a beépített spammelésgátló (tán az outlookban) kirak egy dialógusablakot, hogy ''egy program szeretne emailt küldeni az ön nevében...'' no ezen nem tudtam túljutni. talán szerencsésebb vagy mint én és találsz vmi megoldást a dialógus letiltására a neten, nekem nem sikerált. mivel a program amit futtattam a szerveren egy-másfél órán keresztül kért le adatokat az sql szerverről, belőttem egy ütemezett feladatnak hétköznap 03:00-ra az output meg fájlként lett elmentve.
ofkorze még vmi olyasmi is volt, hogy az outlook címjegyzékében is benne kellett lennie az emailcímnek ha jól emlékszem, szal több, mint gáz...
[Szerkesztve] -
-
lapa
veterán
With Assistant.NewBalloon
.Heading = ''Regional Sales Data''
.Text = ''Select the region(s) you want to print.''
For i = 1 To 3
.CheckBoxes(i).Text = ''Region '' & i
Next
.Button = msoButtonSetOkCancel
If .Show = msoBalloonButtonOK Then
dataPrinted = 0
For i = 1 To 3
If .CheckBoxes(i).Checked = True Then
' Code to print region data.
dataPrinted = dataPrinted + 1
MsgBox ''Region '' & i & '' data printed.''
End If
Next
If dataPrinted = 0 Then MsgBox ''No data printed.''
End If
End With
lásd még vba súgó 'checkbox' első találat
[Szerkesztve] -
lapa
veterán
válasz
matekmatika #203 üzenetére
valasz = msgbox(''kérdés szövege'',vbyesno+vbquestion,''cím'')
if valasz = vbyes then
else
end if
ha az msgbox-ot elkezded írni zárójel nélkül felkínál pár lehetőséget:
vbyesno = nem - igen
vbokonly = csak ok
vannak vmi defaultbuttonok is de azzal én nem küzdöttem, nemtom mik lehetnek de feltételezem kusztom feliratok.
a + után
vbcritical = piros x
vbinformation = i betű
vbquestion = kérdőjel
vbexclamation = felkiáltójel
persze az értékeket is beírhatod, csak az nem annyira beszédes. akkor + sem kell közé, mert decimálisos vagymi. egyszerűen összeadod a gomb meg az ikon értékét.
[Szerkesztve] -
lapa
veterán
válasz
matekmatika #198 üzenetére
igen, bocs ezt beírhattam volna. a másodikban egyszer kell csak megmondani neki melyik munkalap, utána bárhol használhatod a rövid nevet, nem csak with - end with között. ha van időd olvasgatni volt egy ilyen korábban: [link] a feladat az volt, hogy random számok tartományából válasszuk ki a második legnagyobbat. vb editorban megnyitva nézd végig butától szuperig, van benne pár hasznos...
-
lapa
veterán
válasz
matekmatika #193 üzenetére
mondjuk aktuálisan nem feltétlenül rövidebb, de elegánsabb:
Sub agentx()
With ActiveWorkbook.Sheets(''Sheet1'')
.Cells(.Cells(1, 2).Value, .Cells(2, 1).Value) = .Cells(1, 1).Value
End With
End Sub
'---
Option Explicit
Sub agenty()
Dim shitegy As Worksheet
Set shitegy = ActiveWorkbook.Sheets(''Sheet1'')
shitegy.Cells(shitegy.Cells(1, 2).Value, shitegy.Cells(2, 1).Value) = shitegy.Cells(1, 1).Value
End Sub -
lapa
veterán
válasz
matekmatika #195 üzenetére
de csak ha abbahagyod a paralell taskingot (úgyértem a linkelést)...
ha van még valami akkor ott folytassuk inkább ha a feladat is ott van.
-
lapa
veterán
válasz
matekmatika #190 üzenetére
Cells(Cells(14, 3).Value, Cells(16, 5).Value) = Cells(22, 5).value
egyébként meg minden cells-et egészíts ki:
activeworkbook.sheets(''egyik'').cells(.....
és akkor menni fog szerintem. akkor selectelni se kell a lapokat, drága a processzoridő... -
lapa
veterán
válasz
matekmatika #186 üzenetére
szerintem nem kell lefordítani r1c1 hivatkozásra, elég lenne így is:
cells(cells(14,3).value,cells(16,5).value)=''új adat''
remélem ez volt a kérdés. -
lapa
veterán
válasz
matekmatika #184 üzenetére
hát sokszor elolvastam és próbálom felfogni... nem lehetne úgy megoldani, hogy egy plusz oszlopot teszel bele a gépek adataihoz, ami 0 vagy 1 attól függően, hogy a gép ''aktív''-e vagy sem? akkor elég lenne mindig egy új sorba írogatni az új gépeket. vagy rosszul gondolom?
-
lapa
veterán
válasz
matekmatika #182 üzenetére
nem igazán értem hogyan jutsz el idáig. részleteznéd mit szeretnél? hátha van vmi egyszerűbb megoldás. btw: hátulról a 3. sor elég bátor...
-
lapa
veterán
válasz
matekmatika #177 üzenetére
kijelöl majd ctrl + h
előtte fent jobb gomb --> visual basic eszköztár kijelöl --> record gomb
[Szerkesztve] -
lapa
veterán
hát elég érdekesen hivatkozod meg a cellákat. valahogy így kéne:
pl. B1 cella: cells(1,2)
A4: B5 tartomány: range(cells(4,1),cells(5,2))
tehát az eleje kábé:
sub ize()
...
for x = 120 to 130
if cells(x,2) = 1 then
...
else
...
end if
...
next x
a többit egyelőre nem látom át, ha átdolgoztad ez alapján akkor megnézzük azt is...
[Szerkesztve] -
lapa
veterán
válasz
alexnowan #172 üzenetére
ha csak a fájl neve tartalmazza a hónapokat, akkor makrózni sem kell (és ha még nem csináltad talán nem erőltetném).
a céltáblában minden hivatkozásos (''linkes'') cellát kijelöl --> ctrl + h (=csere) --> mit: január --> mire: február
ha csinizni szeretnéd szólj és leírom röviden hogyan működne gombbal... -
lapa
veterán
nem tudom mi olyan bonyolult ebben. már a múltkor is sikerült megküzdened vele. itt ugyanúgy kell eljárni azzal a különbséggel, hogy nem a céltáblába (amiben a makró van) raksz bele valamit a MAKRÓ ÁLTAL megnyitott fájlokból, hanem az éppen megnyitott fájlba írsz bele valamit, majd bezárod. annyi a különbség az előzőhöz képest, hogy a ''workbooks(???).close, savechanges:=true'' sor kell bele asszem. de ezt makrorögzítővel le tudod lesni. szmájlik helyett sztem olvasd el újra az ottani dolgot, meg nézd meg a makrót.
-
lapa
veterán
1. egy excelben feltöltöd az A oszlopot 1-től 2400-ig.
2. elmented txt fájlként --> exceltől elbúcsúzik, bezár
3. wördben a menügombok mellett jobb gomb --> körlevél eszköztár kiválaszt
4. körlevél eszköztáron ''új adatforrás'' --> txt fájl megmutat --> küzd egy darabig + aktiválódnak a gombok az eszköztáron
5. ''??? mező beszúrása'' (insert merge field) --> M_1 kiválaszt --> << M_1 >>
6. ''egyesítés új doksiba'' gomb --> mindent
7. kész -
lapa
veterán
nemistudom. a wördben van körlevél funkció, ha ez vmi lényeges elem és vmi űrlapról van szó képletek nélkül akkor lehet ott táblát csinálni. listaforrásnak meg lehet adni excel fájlt is.
excelben is lehet barkácsolni, de ott szakszerűen legfeljebb fejléc-lábléc moddolható korlátozott formában, meg pivotban az egyes elemek.
jobb híján a workbookbeforeprint eventet kéne használni, de ott varázsolni kell még vmi class modullal is, egyelőre nem jött össze a dolog. ha sikerül bedobom. -
lapa
veterán
no én meg a vaktyúk:
Sub getdate()
Dim cn As ADODB.Connection
Dim sql As String
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open ''DSN=dsn;UID=juzer;PWD=pass''
Set rs = New Recordset
sql = ''SELECT mezo FROM tabla WHERE pk = 'PK'''
rs.Open sql, cn
If rs.EOF = False Then
MsgBox rs(0)
Else
MsgBox ''nemvan ilyen pk''
End If
cn.Close
Set cn = Nothing
End Sub
ja, be kell pippantani hozzá a vba tools --> references --> ms activex data objects 2.5-öt.
[Szerkesztve] -
lapa
veterán
üdv. van valakinek vmi egyszerű mintája oracle lekérdezéshez? nem nagyon szeretnék spílerkedni mindenféle bonyolult kódokkal, de eddig csak rettentő hosszúakat találtam.
ami egyelőre a legegyszerűbben néz ki:
<pre>Sub openconn()
' Open the connection with Oracle ODBC.
Set conn = New ADODB.Connection
conn .ConnectionString = _
''Driver={Microsoft ODBC for Oracle};UID=juzer;PWD=pass''
conn .Open
'now put the query data into a recordset
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open ''Put Table Name Here'', conn, adOpenDynamic, adLockOptimistic, adCmdTable
Set rs = myconn.Execute(''SELECT * FROM DatabaseName where bla bla bla'', , adCmdText)
conn.Close
End Sub
</pre><p>
ezzel pl. az a bajom, hogy sehol nem adta meg emberünk az adatforrás nevét. odáig megvagyok, hogy queryben ODBC-vel lekérek egy mezőt a táblából és azt bepottyantja a megadott helyre.
nekem most viszont ''update tabla set mezo = 'valami' where tabla_pk = 'pk' '' kéne. tőlem jöhet vbs is vagy bármi ami segíthet. a queryben lefut execute-ként, de a makrórögzítő nem menti el. találtam valami homályosat, hogy elméletileg menthető a dolog queryben, de nem jött össze. mondom mindegy hogy, csak valahogy futtatni tudjam a fenti parancsot 'pk' megadásával.</p>
[Szerkesztve] -
lapa
veterán
válasz
kraftxld #132 üzenetére
nekem még működő példányt nem sikerült csinálnom maradjunk ennyiben. elvileg egy általad készített külön menüsor megjelenítése-elrejtése szabályozható makróból. a gombok amikhez gondolom most a makrót rendelted önmagukban nem. legalábbis én így tudom.
esetleg rakj a munkapalra gombokat (pl. első sort tele) és akkor azok nem vesznek el. -
lapa
veterán
válasz
kraftxld #128 üzenetére
szerintem cserélj ki minden ilyet:
Sheets(''KTVLISTA'').Select
Rows(''6:6'').Select
Selection.Copy
Sheets(''ONU'').Select
ActiveSheet.Paste
ilyenre és mennie kell. talán az activeworkbook hiányzik neki nemtom.
ActiveWorkbook.Sheets(''KTVLISTA'').Rows(6).Copy(ActiveWorkbook.Sheets(''ONU'').Rows(1)) -
lapa
veterán
így nekem sem sikerült, ahogy a legelején írtam is. mondom ne szenvedj vele szerintem.
esetleg egy ilyen sor helyett: Workbooks(cel).Sheets(1).Cells(fajllistaindex, 1) = Workbooks(forras).Sheets(1).Cells(1, 1)
írhatsz:
with Workbooks(forras).Sheets(1)
Workbooks(cel).Sheets(1).Cells(fajllistaindex, 1) = .Cells(3, 11) + .cells(4, 11) + .cells(5,11).... + .cells(16,11)
end with
még talán ez a szimplibb... -
-
lapa
veterán
végülis baj nem lehet belőle...
1.) A második legnagyobb
Töltse fel az A1: B15 tartományt véletlenszámokkal
( 0 <= r <= 100 ). Készítsen makrót amely megkeresi és megadja
a második legnagyobb szám értékét. A keresés eredményét a
D1-es cellában piros színnel jelenítse meg!
itt a tábla [link]. ha alt+f11-et nyomsz kijönnek az okosabbnál okosabb makrók. ha alaposan végigolvasod a kommenteket hasznos lehet. nekem kicsit elfáradt már a végére az excel, dobott ilyeneket, hogy [link] de ez van. a másikat majd megnézem valamikor, de inkább dobd be ide mert nemtom mennyi időm lesz.
[Szerkesztve]
[Szerkesztve] -
lapa
veterán
én a helyedben valamilyen konkrét problémával és az excel meg a vba súgóval kezdeném. szerintem könyvből nehezebb a gyakorlatot megszerezni. persze elméleti háttérnek jól jön, de ha nem professzionálisan akarsz valamit kezdeni a tudással, szerintem a súgó meg az internet elég. én még nem olvastam könyvet, de érzésem szerint egész jól elboldogulok.
azért is jó a súgó, mert az adott feladat kapcsán csomó olyan találatod is lesz, amit ugyan éppen nem tudsz használni de megjegyzed, hogy létezik ilyen. egy könyvet végigolvasva még mintapéldákkal se vésődik be annyira. szerintem. -
lapa
veterán
szóval nem biztos, hogy makróznék...
a month(dátum) megadja a hónapot. azzal még olyat is lehet játszani, hogy megnézed ugyanabban a hónapban van-e adott hónap 31-e (tehát van-e adott hónapnak 31. napja).
esetleg a datevalue(dátum) lehet hasznos de nem igazán tudom elképzeni mit szeretnél látni a végén. teljesen dinamikus nem is lehet ha jól értem, annak meg nem sok értelmét látom, hogy minden évben vmi határértékkel töltögeted fel a cellákat.
vagyesetleg olyat tudok elképzelni, hogy egy sorban definiálod a 12 hónap első napjait, aztán =ha(datevalue(kezdődátum)>datevalue(fenti dátum);min(datevalue(fentitől jobbra dátum);datevalue(végső dátum);0)
ha jól sejtem ez a kezdő naptól végső napig be kéne írogassa a dolgokat a sorba, tehát pl. 2005.01.15-2005.03.25 --> 15;29;25;0;0;0...
nemtom érhető volt-e a gondolatmenet. így jövő év elején csak a fenti paraméter dátumokat kell beírni, pláne csak az elsőt, a többi számolható.
ha meg makróznál, akkor keress rá a datepart funkcióra... -
lapa
veterán
nézd meg a solver ablakot a képen, abban benne van egy csomó dolog. a b2 és b3 alapból 0 volt (azt írtam be), aztán mondtam solvernek hogy azzal a kettővel manipulálhat, miközben az összköccség minimuma a cél. ezek mellett megadtam még a feladatban szereplő feltételeket, nehogy gyomorbajos disznajokat gyártsunk.
-
lapa
veterán
ehun-e. Bővebben: link
nemtom hirtelen jó-e, de a lényeg: megcsinálod a fejléceket ahogy a tündérek mondják, utána meg a ''összes'' cellákba kiszorozgatod a mennyiség cellát az adott dolog cellájával (lássad még szerkesztőléc).
ha ezzel megvagy, akkor solver, abban meg a látottakon kívül options --> assume non-negative
mondom nem biztos, hogy jó kicsit már sietős volt a vége. -
lapa
veterán
szóval küzdöttem egy kört a tömbökkel és úgy gondolom hasznos tapasztalatokat gyűjtőttem, amiket a következőkben foglalnék össze röviden, hátha másnak is segít:
a tömb (array) lehet számosos, szöveges vagy variánsos. a számosos meg a szöveges az egydimenziós. használatuk:
deklarálás:dim szamtomb(<max. hossz>) as long
dim szovegtomb(<max. hossz>) as string
a 12. mező feltöjtése:szamtomb(12) = 456
szovegtomb(12) = ''valami''
a 12. mező lekérdezése:msgbox szamtomb(12)
msgbox szovegtomb(12)
a teljes tömb kiürítése:erase szamtomb
erase szovegtomb
még ezeknél is érdekesebb a variánsos tömb, ami 2 dimenziós.
deklarálás:dim vartomb as variant
a tömb feltöjtése a munkalap első két sorával:vartomb = range(cells(1,1),cells(2,256))
a 2. sor 3. oszlopának lekérdezése:msgbox vartomb(2,3)
a teljes tömb kiürítése:vartomb=''''
ahogy én értettem célszerű ezeket üríteni, mert az új értékek csak a felülírt mezőket változtatják. ja, és variánsos tömbnél mindig kell a (sor,oszlop), még akkor is ha csak egy dimenziója van. és aki eddig elolvasta az nyert, mert megtudja a miértet: kurva gyors. nagyjából egy nagyságrenddel gyorsabb, mintha cellákra hivatkoznánk a makróból. és hogy ez hihető legyen itt egy mintatábla: Bővebben:� link
remélem hasznos. -
lapa
veterán
kérem segítsen ki valaki egy varinat array csinálós és törlős sample kóddal, mert én elvesztettem a legutóbbi linkemet a témában...
vagy nemtom ez-e a jó megoldás erre: tömbbe kéne elraknom egy-egy sor adatait, hogy gyorsabb legyen. elkezdtem string array-val de utána az egyes elemeken kisebb-nagyobb hasonlítást kéne végeznem az meg akkor alfanumerikusan hasonlít. help please.
a variant array-ba már a rangét (ez lenne a sor) se tudom berakni mert hibát kapok brühü.
köszi -
lapa
veterán
ofkorsz msgbox csak példa volt. köszi a dolgokat majd kipróbálom (muszály lesz, mert már sír a szája hogy too long). a tömbös témát közben kiokosítottam én is, de majd kiderül hogyan tudom összehozni a dolgot. valszeg csak tömböt fogok használni mert akkor a function-re már nem lesz különösebben szükség.
-
lapa
veterán
úgy látszik a munka kíváncsivá tesz, megint kérdezek:
azt szeretném, hogy egy ciklus mondjuk a következő változóértékekkel fusson le: 1, 3, 2
olyat szeretnék, mint a for x to y, csak nem növekedve hanem az általam taxatíve megadott lista értékei szerint.
elméletileg vmi for ... each ... next kéne csak nemtom hogyan kellene tömböt(?) csinálni. tud vki egy mintát írni a tömb feltöltésére és ciklusban való alkalmazásra? köszönöm. -
lapa
veterán
ilyet is találtam hozzá de még mindig nemtom hogyan kapható vissza vagy visszakapható-e egyáltalán. Bővebben: link
-
lapa
veterán
a meghívás működik és le is fut(na), csak az a baj, hogy az előtte feltöltött változó a meghívott eljárásban üres, mert harmincezer mittudomén.
elméletileg valahogy úgy kéne, hogy a ''run masik()'' sor végére beteszem az x-et, és a masik subban meg ki lehetne olvasni az értékét, ha valahogy hivatkozok rá. csak nemtom hogyan kő. -
lapa
veterán
no csak összehozok egy értelmes kérdést. szeretnék egy kódot sokszor futtani, melynek egy változót kéne átadnom, ami alapján az eredményt adná:
sub egyik()
x = 3
run masik
msgbox y
end sub
-------------------
sub masik()
y = x + 1
end sub
szóval a fenti nem működik rendesen. aszongya a súgó, hogy csak pozíció alapján tudok a run parancsnak adatokat adni. ki tudna valaki segíteni, hogy hogyan kell ezt pontosan? köszi
[Szerkesztve] -
lapa
veterán
sziasztok, van egy remélhetőleg rövid kérdésem. egy szám cella karakterláncában (pl. 123,45600 kellene kicserélni a vesszőt pontra, hogy 123.45600 legyen belőle (a változóban).
odáig megvan, hogy a cellán tudok replace-et csinálni, de mivel nem akarom babrálni az eredetit, egy külön temp cellába kéne egymás után a sokezer cella tartalmát kopiznom, majd replacelnem majd a változóba írnom. ezt ha lehet elkerülném. van a vb-ben olyan funkció, amelyik a változóban képes vesszőt pontra cserélni?
nemtom mennyire érthető a helyzet: egy konverterről van szó, amely a számokat ilyen formában kéne szállítsa: 0000123.45600 nekem meg ugye a cellákban ''igazi'' számok vannak. ha megadom cellaformázással a tizedeseket már előbbre vagyok, mert a cells(x,y).text hála istennek azt adja vissza, amit látok, nem pedig a tényleges értéket (ugye a cells(x,y)value egész számoknál levágná a végződő nullákat). a vezető nullák sem jelentenek gondot. szóval már csak a vessző a probléma, de ezt eddig csak úgy tudtam áthidalni, ha a windows területi beállításokban állítottam át a tizedesjelölőt pontra. ez pedig nem alkalmazható a gyakorlatban...
előre is hálás. -
lapa
veterán
válasz
Digiti Dotto #6 üzenetére
huh ez megizzasztott. persze a vb helpben a harminezredik ''see also'' alatt bújt el ez: ''referring to multiple ranges''.
az alábbi mutyi kijelöli minden második sorban az első 10 oszlopot a 29. sorig...Option Explicit
Dim sor As Long, egysor, soksor As Range
Sub markol()
'itt egy kezdő értéket dobunk soksorra, hogy az első ciklusban is megegye
Set soksor = Range(Cells(1, 1), Cells(1, 10))
'itt cikázunk egyet minden 2. soron, de már csak 3-tól kezdünk
For sor = 3 To 30 Step 2
'megadjuk a következő elemét az újnónak
Set egysor = Range(Cells(sor, 1), Cells(sor, 10))
'hozzáadjuk az eddigiekhez vagyis saját magához
Set soksor = Union(soksor, egysor)
Next sor
'jól kijelöljük az összegyűjtött tematikát
soksor.Select
End Sub
mosmán ezt is tudjuk...
[Szerkesztve] -
lapa
veterán
most olvastam... nemtom még aktuális-e, de itt van egy megoldás egy hasonlóra: Bővebben: link olvasd el az előzményt abból kijön mire jó.
Aktív témák
- TCL LCD és LED TV-k
- IFA 2025: Telepcsere kikapcsolás nélkül
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Villanyszerelés
- Házimozi belépő szinten
- Háztartási gépek
- PROHARDVER! feedback: bugok, problémák, ötletek
- Víz- gáz- és fűtésszerelés
- Fotók, videók mobillal
- CPU léghűtés kibeszélő
- További aktív témák...
- Telefon felvásárlás!! Honor 400 Lite, Honor 400, Honor 400 Pro
- GeForce RTX 2060 (OEM HP) Garanciával
- GYÖNYÖRŰ iPhone 12 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS2927, 100% Akkumulátor
- Új Acer Predator 16 WQXGA 165Hz G-Sync i9-13900HX 16GB 1TB Nvidia RTX 4070 8GB 140W Win11 Garancia
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest