Keresés

Részletes keresés

Zoltika Creative Commons License 2023.10.14 0 1 335

Köszönöm szépen!

Előzmény: NevemTeve (334)
NevemTeve Creative Commons License 2023.10.13 0 0 334

Nyilván ahová 4-et írtam, oda változónevet is írhatsz, hogy 64+oszlopom
De a Google csodákra képes: https://stackoverflow.com/questions/12796973/function-to-convert-column-number-to-letter

Előzmény: Zoltika (333)
Zoltika Creative Commons License 2023.10.13 0 0 333

Köszönöm - bár egyelőre nem vagyok beljebb. Igaz, nem is fogalmaztam egyértelműen.

Ha oszlop_szám az oszlop számát jellemző változóm neve, akkor milyen szintaxisban kerül ez az oszlop_szám a képletbe?

Miben más, ha a CU oszlopig szeretném alkalmazni?

(De közben rájöttem egy kézenfekvő és egyszerű eljárásra, amivel az egész problémát meg tudom kerülni. De azért nagyon érdekelne a megoldás.)

Előzmény: NevemTeve (332)
NevemTeve Creative Commons License 2023.10.13 0 0 332

Hát, ha egybetűs oszlopnév elég (A-Z):

 

Sub Setter()
    Range("D" + "3").Value = Range("A3").Value
    Range(Chr(64 + 4) + "4").Value = Range("A4").Value
End Sub

Előzmény: Zoltika (331)
Zoltika Creative Commons License 2023.10.13 0 0 331

Nekem ennek egy olyan programban kell működnie, ahol egy munkalap oszlopaiból egymást követően kell adatokat beolvasni, ezeket dolgozza fel a számítás, majd a kapott eredményeket egy másik munkalapra kell egymás mellé kiírni.

Azaz a programban az oszlop számát kell dinamikusan változtatni. A parancssort a program jól működő részéből másoltam ki, ami parancssor egy makró rögzítésből származott. Ha a sorokat változtatom dinamikusan, azzal nincsen problémám, de az oszlopok változtatásának szintaxisát nem tudom, és az eddigi kísérletezéseimmel még nem is találtam meg.

Előzmény: NevemTeve (330)
NevemTeve Creative Commons License 2023.10.13 0 0 330

.Select helyett .Value ?

 

Range("Y" + CStr((b - 18) * 50 + 1)).Value = valami

valami= Range("Y" + CStr((b - 18) * 50 + 1)).Value

Előzmény: Zoltika (329)
Zoltika Creative Commons License 2023.10.13 0 0 329

Segítséget szeretnék kérni, ha még él ez a topic!

 

Ebben a parancssorban pl.:

Range("Y" + CStr((b - 18) * 50 + 1)).Select

dinamikusan változik, hogy a konkrét értéket a munkalapon az Y oszlop melyik sorába írja ki a program.

 

Mi a szintaxisa, ha a sor számát szeretném dinamikusan változtatni tartomány beolvasásakor és eredmények kiíratásakor?

Ghoost73 Creative Commons License 2021.09.25 0 0 328

Sziasztok!

Egy pici segítséget szeretnek kérni,

Egy szöveg falj tartalmat beolvasva, s annak tartalmat módosítva (sorok tömbösítve)
szeretnem CONSOLE-bol kinyomtatni.

Hogy tudok Printer objektumot létrehozni, s annak tulajdonságát változtatni

- Printer kiválasztat 
- Lap orientáció
- nyomtatás

Köszönettel, annak aki segít, megpróbál 5-letelni velem :)

Redlac Creative Commons License 2020.12.29 0 0 327

Köszönöm a válaszodat :-)

 

Éjjel őrült módon teszteltük, és úgy néz ki elcsíptük...

Jelentősen visszabontva kezdtük el az alapmegnyitást használni. Arra jutottunk, hogy a 10 lapból ha 4 megvolt, akkor a hiba jelentkezett. Ha azokat kitöröltem, nem jelentkezett a hiba.

 

Most építgetem vissza, és meglátom, hogy megtartja-e a működést.

 

Az adatok magában a munkafüzetben vannak 8 munkalapon. A form részben oda viszi be (részben a felhasználó által megadottakat, részben egyéb logika alapján), majd bizonyos feltételek alapján onnan olvas vissza adatokat, majd meghatározott helyen mappát hoz létre, abban egy másik Excel fájlt tatalommal feltölt, végül a körlevél gondolat alapján "jelentést" készít.

Előzmény: tarkaBarna (326)
tarkaBarna Creative Commons License 2020.12.29 0 0 326

Ez egy ismert bug (feature) Windowson. A hibaüzenet fura, de végső soron azt jelenti, hogy egy filet olyan applikációval próbálsz megnyitni, ami valamiért ezt nem tudja megtenni.

Néha win update után jelentkezik ez, mert valamiért átállítódnak a default applikáció megnyitások.

Az Excel az egyik olyan alkalmazás, ahol ezt a hibát sokan jelezték.

 

Próbálok segíteni, ha tudok.

 

Előszór is egy kérdés: az adatok, amiket használsz honnan jönnek? Valamilyen külső fájból?

 

 

 

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

Sziasztok!

 

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

 

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

 

With Userform1

   .MultiPage1.Value =0

   .textbox1=Date

   .textbox2=Felhasznalo

 

   .MultiPage1.Value =1

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

   .Shows

End With

 

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

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

 

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

 

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

 

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

 

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

 

Van valakinek ötlete?

B510 Creative Commons License 2019.02.26 0 0 324

Sziasztok!

 

Segitsetek legyszives :)

 http://forum.index.hu/Article/viewArticle?a=150642750&t=9112018

 

Kosoznom:

Sznida Creative Commons License 2013.10.30 0 0 323

Sziasztok,

Solidworks (3d modellező program) 2013-as programal illetve a VBA-val kapcsolatos kérdésem van. Van egy spline-om, amire ráhelyeztem 100 db pontot. Létrehoztam egy koordináta rendszert. A pontok koordinátái érdekelnek engem ebbez a koordináta rendszerben. A measure ablakban ezt meg is tudom csinálni. A gond az, hogy 10  db van, és egyesével copy/paste kicsit hosszadalmas. Ezért segítségül hívtam a VBA-t amivel szépen ki tudom gyűjteni a pontok koordinátáit egy excel munkafüzetbe. A probléma, hogy ezek a koordináták az Origin-hoz képest vannak, nem az én általam létrehozott koordináta rendszerhez.

A kérdés, hogyan tudom automatizálni a pontok koordinátáinak kimentését az általam megadott koordináta rendszerben?

Remélem érthető voltam...

Előre is köszönöm!!!

Üdv: Sznida

Törölt nick Creative Commons License 2013.09.15 0 0 322
D. Belloq Creative Commons License 2013.08.15 0 0 321

Sziasztok!

 

Problémám van, így felkeltem e szunnyadó topikot.

 

A problémám a következő: Basic-ben egy visszaszámlálót szeretnék írni. Ezt a timer paranccsal meg is tudtam oldani,

ám az idő múlását semmi sem mutatja. Erre egy loop-olt változós valami kéne szerintem (n-1=n). Hogy oldhatnám meg ezt?

 

(Ha ez számít, akkor leírom, hogy FreeBasic-kel próbálkozom.)

Skon26 Creative Commons License 2012.11.01 0 0 320

Igen ebben teljesen igazad van de én naivan azt hittem hogy csak egyszerűen létrehozom a táblázatokat feltöltöm őket texboxokkal utána pedig találok valami egyszerű megoldást a mentés kialakítására, de úgytűnik hogy tévedtem. Azt majdnem elfelejtettem hogy egy olyan funkciót is szeretnék bele, hogy ha betelt mondjuk egy adott oldal akkor egy gombra kattintva létrehozza a következő teljesen ugyan ilyen oldalt amibe folytatni lehetne a töltögetést, illetve lehessen is visszalapozni az előző oldalra. Erre esetleg valmai ötlet? 

És tényleg nem tudom elégszer megköszönni hogy segítesz!  

Előzmény: ghoezeke mate (318)
Skon26 Creative Commons License 2012.11.01 0 0 319

Microsoft Visual Studio 2010et használok és azért nem tudsz semmit az eddigi munkáimól mert ez lenne az első :)  Elküldtem a projectet tömörítve és köszi szépen hogy megnézed!  A bal felső sarokban a gombok elhelyezése/kinézete nem végleges csak ott próbálkoztam a mentés funció életre keltésével. 

Előzmény: ghoezeke mate (317)
ghoezeke mate Creative Commons License 2012.11.01 0 0 318

Mindamellett megjegyzem, hogy a programozás megtanulásához nem a legjobb módszer egy elég fogós feladaton tépelődni, a lépésről lépésre módszer nagyobb hasznot ad.

Előzmény: Skon26 (316)
ghoezeke mate Creative Commons License 2012.11.01 0 0 317

Nem ismerem még azt sem, hogy milyen vb verziót használsz, az eddigi munkádról meg semmi fogalmam.

Azt látom, hogy egy többtáblázatos asztalt szeretnél, amelyben az adatcellák helyben javítható szövegek lennének.

Ha gondolod, csomagold össze zip-be a projectfoldert és küldd el a geler kukac freemail pont hu címre, belenézek.

Előzmény: Skon26 (316)
Skon26 Creative Commons License 2012.11.01 0 0 316

És az meglehet csinálni hogy amit létrehoztam projektet azt összehozom valahogyan az activex-el vagy totál előlről kell kezdenem az egészet? (A táblázatok létrehozása textboxokkal feltöltése stb) 

Előzmény: ghoezeke mate (315)
ghoezeke mate Creative Commons License 2012.10.31 0 0 315

Google keresés erre:

 

table activex control vb

 

Majdnem 10 millió találatot ad.

Előzmény: Skon26 (314)
Skon26 Creative Commons License 2012.10.31 0 0 314

Hát magamtól biztos nem fogom tudni megírni a mentés töltés kódját mert tényleg segghülye vagyok hozzá. De akkor végül is miféle activeX vezérlőtjavasolsz? Vagy van esetleg másik megoldás is?  Mert végül is nem csak a táblázatban szereplő adatokat szeretném ha elmentené hanem magát az összes táblázatot a módosításokkal együtt, szóval ha egyszer újra megnyitom akkor a módosításokkal együtt jelenjenek meg a táblázatok.

Amúgy köszi a gyors választ! 

Előzmény: ghoezeke mate (313)
ghoezeke mate Creative Commons License 2012.10.31 0 0 313

Az exe az executable = végrehajtható programfájl-típust jelenti, te viszont a táblázataidban lévő értékeket akarod elmenteni, vagyis csak adatot. Vagy magad megírod a mentés-visszatöltés folyamatát végrehajtó kódot, vagy keresel valami olyan activeX vezérlőt, amely előre programozottan és egyszerűsítetten kezeli az adathalmazt.

Ne törekedj arra, hogy az adatot kizárólag az exe tárolja, bár lehetséges ezt is megoldani. Csakhogy ekkor más programmal nem férsz hozzá saját adataidhoz, míg az exétől függetlenül tárolva ez lehetséges.

Előzmény: Skon26 (312)
Skon26 Creative Commons License 2012.10.30 0 0 312

Sziasztok! 

Egy kiss segítségre lenne szükségem!  A következő a helyzet. A programban amit készíteni próbálok, találtható 4-5 táblázat(tablelayoutpanel) amikben van egy csomó textbox. A következőt szeretném elérni:  Megnyitom a programot már *.exe-ként ,beírok valamit egy textboxba és a változtatást szintén .*exe formátumban szeretném ha elmentené azzal együtt amit a textboxba begépeltem.  Próbáltam utána járni a dolognak, de csak a SaveFiledialogról találtam dolgokat, de ha jól értelmeztem azzal csak képet illetve txt-t lehet elmentetni.   Mivel lehetne véghezvinni amit én szeretnék csinálni?

Bocsánat utólag is a hülye kérdésért de nem vagyok valami nagy visual basic mágus (de ez igaz bármelyik programozási nyelvre). Tulajdonképpen 0 alaptudással áltam neki a dolognak  egy tankönyv segítségével, de itt hátha tud nekem segíteni valaki!


Előre is köszönöma segítséget! 

 

Törölt nick Creative Commons License 2012.10.13 0 0 311
Előzmény: Tejgla (310)
Tejgla Creative Commons License 2012.10.11 0 0 310

Helló!

 

A gondom egy 9x9es táblázat lenne. Hogyan lehet ezt a legkönyebben megoldani? Sudoku készítéséhez kellene mert nem szeretnék 81db text boxot lerakni a 16x16 elem még időigényesebb lenne :) Visual basic 6.0ban kellene a megoldás mert ezt tanuljuk de osztályokat nem vettünk.

 

Válaszokat előre is köszönöm!

ghoezeke mate Creative Commons License 2012.08.31 0 0 309

Talán mert ez nem valódi elem, hanem majd a form előtt fog megjelenni előugróként, ha pl. egy megfelelő gombra kattintasz, és annak klikk eseményébe elhelyezted a kódot.

Előzmény: pck09 (308)
pck09 Creative Commons License 2012.08.31 0 0 308

Sziasztok!

 

Eddig csak Excelnek a visual basic felületén gyakorolgattam a programozást, viszont valamilyen "programkinézetet" ráhúznék, ezért leszedtem a Visual Basic 2008-as progit.

Olyan problémám van, hogy amikor a Formra rajzolnék pl. egy OpenFileDialog toolt, akkor nem teszi rá, hanem a Form alatt kiírja a nevét.

Az alap tooloknál nem csinálja ezt.

Mi lehet a probléma? Be kellene állítanom valamit?

 

Előre is köszi a választ!

Gülredy Creative Commons License 2012.08.30 0 0 307

Igen ez így jónak tűnik, bár a "Not" Intersect lemaradt! :)

Előzmény: Gerenda (306)
Gerenda Creative Commons License 2012.08.24 0 0 306

Látatlanba', a lenti (dicséretes módon eredeti:-)) dokumentáció alapján, fogja a Target ranget és az L:S oszlopok alkotta ranget (ebben elvileg az összes cellát, ami azért elég tetemes...) és veszi azokat a cellákat, amelyek mindkettőben szerepelnek, és valamit szöszöl velük -

 

a not és az is nothing viszont kicsit zavar, a trükkös szintakszisok miatt.

 

A not nehezen értelmezhető egy range-en, mert a not egy logikai operátor - de a visual basic sötétebb trükköket is csinált már.

 

Talán inkább az jelenti, hogy "ha az intersect eredménye nem Nothing " akkor csináljon valamit.

Vagyis ha a Target range belelóg az L:S oszlopokba.

 

Majd kérlek jelezd itt a jó megfejtést:-)

Előzmény: Gülredy (305)

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