Keresés

Részletes keresés

Retro Image Creative Commons License 2013.02.28 0 0 20549

Te meg minek OFFolsz bele?

:o)

Előzmény: ujszaszy (20546)
Retro Image Creative Commons License 2013.02.28 0 0 20548

Már elnézést, de ez nem a tökfőzelék hibája volt. Az óvónéni eseménykezelője rosszul volt megírva.

Előzmény: Sánta Kutya (SK) (20547)
Sánta Kutya (SK) Creative Commons License 2013.02.28 0 0 20547

Az óvó nénit milyen közelről érintette, mikor nem hitte el, hogy felmentésem van belőle, és meg akart tömni. Moshatta rendesen a ruháit utána... Én szóltam pedig.

Előzmény: Retro Image (20544)
ujszaszy Creative Commons License 2013.02.28 0 0 20546

A chandoo.org elég intenzíven foglalkozik mostanában a power pivottal. én még csak most ismerkedem vele.

Esetleg a http://www.powerpivotpro.com/

 

engem is érdekelnének a tapasztalatok

Előzmény: Törölt nick (20541)
pimre Creative Commons License 2013.02.27 0 0 20545

Engem is, nálam például válóok lenne:-)))

Előzmény: Retro Image (20544)
Retro Image Creative Commons License 2013.02.27 0 0 20544

Mesélj, mert ez engem közelről érint.

:o)

Előzmény: Sánta Kutya (SK) (20543)
Sánta Kutya (SK) Creative Commons License 2013.02.27 0 0 20543

Nem követtem az eseményeket, de tény, hogy a tökfőzelék már sok bajt hozott a világra.

Előzmény: wawabagus (20542)
wawabagus Creative Commons License 2013.02.27 0 0 20542

Retro Image, RHCPgergo, ujszaszy!

 

Szerintem a tökfőzelék miatt volt :-DDDDDDDDDDD.

 

Na szóval...olyan is van, hogy az excel rossz lábbal ébred és összeesküdik ellenünk...vagy csak merő szórakozásból szivatja az embert, mert csak mi képzeljük hogy egy logikusan felépített program...neki lelke van :-D, hóbortos.

 

Ez egy xls volt, nem xlsx, ahogy mondtam...

 

Nos, a megoldás az volt, hogy ebből csináltam xlsm-et...macro enabled file-t 2007-es verziót...

Így már nem volt semmi baja a szerencsétlennek.

 

Volt benne pivot chart és olyan chart is, ami pivotból összeolvasott sorokra hivatkozott, továbbá macro...

Úgy tűnik 2003-as verzió képessét már meghaladta ez a dolog :-).

 

De most úgy tűnik összeszedte magát én meg megnyugodtam :-D!

Köszi a segítséget!

 

Ps. Mennyi új arc :-D...látszik rég jártam erre :-D...

 

 

Előzmény: Retro Image (20489)
Törölt nick Creative Commons License 2013.02.26 0 0 20541

olapkocka készítés területen mozog valaki? (powerpivot bővítményhez kapcsolódóan is)

Szuper jó dolog, csak pár dolgot nem értek, ami a háttérben történik.

Sánta Kutya (SK) Creative Commons License 2013.02.25 0 0 20540

1 pont az OOO-nak!

Előzmény: SQLkerdes (20536)
mimi_bacsi Creative Commons License 2013.02.25 0 0 20539

Nagyon köszönöm Mindenkinek, így már működik! :-))

Előzmény: KelemenGy (20538)
KelemenGy Creative Commons License 2013.02.25 0 0 20538

Tényleg a regular expression-ben van elásva a megoldás.

 

=DARABTELI(B2:B3;"........-.-..")

 

Így jó értéket ad vissza.

Előzmény: SQLkerdes (20536)
Jozsef Creative Commons License 2013.02.25 0 0 20537

Ez  érdekes... A "jól számoló" Excelt lementve (xls), megnyitva a legfrissebb LibreOffice 4.0-ban, az eredmény tényleg nulla. Nesze neked Excel-kompatibiltás :(

Előzmény: SQLkerdes (20536)
SQLkerdes Creative Commons License 2013.02.25 0 0 20536

És itt is van a megoldás:  http://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_COUNTIF_function

 

Azt mondja az openoffice wiki, hogy a countif regular expression-t használ.

Előzmény: SQLkerdes (20535)
SQLkerdes Creative Commons License 2013.02.25 0 0 20535

Ha rossz nyelven írná be a függvényt akkor hibát kapna, nem pedig nullát mint eredményt.  Bár sose dolgoztam Open Office-ban, szóval csak találgatok.  A kérdező majd pontot rak ennek a kérdésnek a végére mert megmondja, hogy milyen szoftver milyen nyelvű változatával dolgozik.

Előzmény: KelemenGy (20533)
SQLkerdes Creative Commons License 2013.02.25 0 0 20534

Nem valószínű, mert ha szám lenne benne akkor különleges formázás esetén is szám maradna.

Ezzel szemben a screenshot-on jól látszik, hogy a cellatartalom balra van rendezve ami a szöveges tartalom jellemzője.

 

Szerintem ez nem MS Excel és ezért nem úgy működnek a dolgok ahogy MS Excel tanács alapján várnánk.

Előzmény: Jozsef (20532)
KelemenGy Creative Commons License 2013.02.25 0 0 20533

A wildcard egy dolog, annak illene működni, én inkább a magyar nevű függvényben kételkedem.

Előzmény: SQLkerdes (20531)
Jozsef Creative Commons License 2013.02.25 0 0 20532

Megnéztem Excel 2007-tel, a képen lévő adatot beírva, nekem jól számol a DARABTELI.

Én arra gyanakszom, hogy 12345678110 van beírva a cellába, és az adószám formátum van rá beálítva (Cellaformázás/Szám/Különleges kategória)

 

Előzmény: mimi_bacsi (20527)
SQLkerdes Creative Commons License 2013.02.25 0 0 20531

Én is arra gyanakszom, hogy ez nem MS Excel.  Érdemes utánanézni, hogy abban a környezetben hogyan működnek a wildcard-ok.

Előzmény: KelemenGy (20530)
KelemenGy Creative Commons License 2013.02.25 0 0 20530

OpenOffice-nak látszik. A DARABTELI helyett COUNTIF-fel kellene megpróbálni.

Előzmény: SQLkerdes (20529)
SQLkerdes Creative Commons License 2013.02.25 0 0 20529

Ez milyen excel?

Előzmény: mimi_bacsi (20527)
tbando Creative Commons License 2013.02.25 0 0 20528

Igaz! Félreértettem a problémát.

 

mimibácsi!

 

Számoltasd meg a karakterek számát a HOSSZ függvénnyel.  Ha nem 13, akkor már csak a rejtett karaktert kell megkeresned. De ha 13 akkor passz.

Előzmény: pimre (20524)
mimi_bacsi Creative Commons License 2013.02.25 0 0 20527

 

Valamit nem értek...Minden látszólag helyes, mégsem hoz jó eredményt...:-(

 

 

Előzmény: Törölt nick (20519)
Sánta Kutya (SK) Creative Commons License 2013.02.25 0 0 20526

Lehet, hogy én vagyok a sötét, mert most esett le, hogy a munkahelyi gépen mindig Excel 2007-ben nyitom meg, itt meg Excel 200-ban. Lehet, hogy a 2007 autmatikusan konvvertálja a CSV-t és a 2000 meg nem?

Előzmény: Sánta Kutya (SK) (20525)
Sánta Kutya (SK) Creative Commons License 2013.02.25 0 0 20525

Misztikus jelenség, érti ezt valaki?

pgAdminból exportálom a lekérdezés eredményét csv-be. Eddig ez gond nélkül megnyílt Excelben. Most viszont egy másik gépen futtatva megmarad pontosvesszős formátumban. Ahányszor megnyitom Excelben, mindig újra konvertálni kell oszlopokká, mintha nem ismerné fel a CSV-t.

pimre Creative Commons License 2013.02.25 0 0 20524

Ez nem jó, mert bármit elfogad, ha egyébként két kötőjel van benne. Pl: qwertzuiop-qwertzuiop-qwertzuiop is jó találatot ad.

 

Előzmény: tbando (20523)
tbando Creative Commons License 2013.02.25 0 0 20523

Próbáld ki, hogy a kérdőjelek elé is teszel egy csillagot, meg utánuk is.

Előzmény: mimi_bacsi (20518)
Sánta Kutya (SK) Creative Commons License 2013.02.25 0 0 20522

Ilyenkor érzi az ember keservesen a reguláris kifejezések hiányát, pedig az ma már nem számít luxusfelszerelésnek, mint a napfénytető.

Előzmény: pimre (20521)
pimre Creative Commons License 2013.02.25 0 0 20521

Sőt, nemcsak ha az adószámon belül csúszott be egy szóköz, hanem ha az adószám előtt, vagy után áll egy szóköz, akkor sem találja. Ebben az esetben célszerű az egész tartományt előzőleg a trim függvénnyel a bevezető és a követő szóközöktől megtisztítva átmásolni valahová, és ott hajtani végre a keresést.

Előzmény: KelemenGy (20520)
KelemenGy Creative Commons License 2013.02.25 0 0 20520

Nálam tökéletesen működik az így megadott függvény. Arra tippeltem, hogy talán vmi formázás billenthette ki a nyugalmából, de nem. Még az ilyen értékeket is kezeli: '12345678-9-00

 

Talán a tartomány megadásánál lehet még gond, esetleg önmagára mutat a függvény, vagy valahol szóköz lett ütve kötőjel helyett, ilyesmi triviális hibák tudják alaposan megszivatni az embert néha.

Előzmény: mimi_bacsi (20518)
Törölt nick Creative Commons License 2013.02.25 0 0 20519

Nem tudom mi lehet a gond. A képletednek az összes ehhez hasonló cellaértéket meg kéne találnia:

 

12345678-1-12

asdfasdf-a-as

1234asdf-1-1a

Előzmény: mimi_bacsi (20518)
mimi_bacsi Creative Commons License 2013.02.24 0 0 20518

A javaslatodat megfogadtam.

A függvény így néz ki: =DARABTELI(A2:A48;"????????-?-??")

Sajnos nem lett jó az erdemény....  Behelyettesítettem a "?" "*"-ra is, azzal sem lett helyes eredmény

(Az adószám nyolc karakterből áll)

 

 

Előzmény: Törölt nick (20517)
Törölt nick Creative Commons License 2013.02.24 0 0 20517

Használj wildcardokat ("helyettesítő karakterek"). Pl.

? egy darab bármilyen karakter

* akárhány akármilyen karakter

 

Nem tudom hogy néz ki egy adószám, de ha mondjuk 4 szám, kötőjel, négy szám és az A1:A5 cellákban keresel akkor:

=COUNTIF(A1:A5,"????-????")

vagy magyarul:

DARABTELI(A1:A5;"????-????")

 

ui.: azt hittem, hogy a # karaktert is lehet használni (egy db szám karakter helyett), de egy rövid teszt után úgy tűnik, hogy nem.

Előzmény: mimi_bacsi (20516)
mimi_bacsi Creative Commons License 2013.02.24 0 0 20516

Ha olyan cellákat szeretnék összeszámolni, hogy mennyi cella tartalmaz (pl.: adószám) információt, akkor melyik függvényt használjam?

A darabteli a feltételnek megfelelőeket számolja össze, de egy adószámnál hogy adhatok meg feltételt?

 

SQLkerdes Creative Commons License 2013.02.24 0 0 20515

Na, véletlenül meg is leltem a megoldást.  Szóval a Microsoft azt mondja, hogy a VBA nem tud ciril karakterekkel mit kezdeni.  De az internet népe kitalálta, hogy ha a területi beállításoknál a nem-unicode karaktereket használó programok nyelvi beállítását átállítjuk akkor mégis meg lehet jeleníteni nem-unicode karaktereket.

 

Átállítottam, műxik.

 

Kiváncsian várom, hogy milyen váratlan következményei lesznek más programokban...

Előzmény: SQLkerdes (20514)
SQLkerdes Creative Commons License 2013.02.24 0 0 20514

Sziasztok, van valakinek tapasztalata nem-sztenderd karakterekkel.

 

Van egy munkafüzetem amiben ciril és angol betűs cellák vannak (egy cella vagy csak ciril vagy csak angol betűket tartalmaz, nem keverednek).

Egy MsgBox-ban kellene megjelenítenem cellatartalmakat, de a ciril tartalmak csak kérdőjelként jelennek meg.

 

Látott valaki már hasonlót?  Gúgli barátom azt mondta, hogy a Tools/Options/Editor format/Font-ot állítsam át, de nekem egyszerűen nem műxik...

pimre Creative Commons License 2013.02.24 0 0 20513

Nagyon köszönöm. Ebben már tényleg nincs csont. Pontosan azt teszi, amit szerettem volna.

Előzmény: Retro Image (20510)
pimre Creative Commons License 2013.02.24 0 0 20512

Semmi gond:-)

Előzmény: ujszaszy (20511)
ujszaszy Creative Commons License 2013.02.23 0 0 20511

bocs

Előzmény: pimre (20509)
Retro Image Creative Commons License 2013.02.23 0 0 20510

"Szeretem a banánt, mert nincsen benne csont..."

Izé. Tedd a makrót egy szűz munkafüzet Workbook_Open eseménykezelőjébe. Mentsd el a munkafüzetet úgy, mint Microsoft Office Excel bővítmény (*.xla), és legyen a neve pl. akármi.xla. Aztán az Eszközök/Bővítménykezelő menüben válaszd ki az akármi nevű bővítményt. Violá. Nem is. Voilá.

:o)

 

 

Előzmény: pimre (20506)
pimre Creative Commons License 2013.02.22 0 0 20509

Persze, hogy látom, hogy nyitva van. Ez volt a kérdésem. Hogy ha rányitok még egy Excelt, azaz nem egy új munkafüzetet, hanem magát az excelt nyitom újra.

"Nem lehet az excel applicationhoz rendelni?, vagy a personal megnyitásához a futást?" Kösz a kérdést, de hát pont ezt kérdeztem, hogy lehet-e, és hogyan. Mert hogy pont a personal megnyitásához rendeltem.

Előzmény: ujszaszy (20507)
ujszaszy Creative Commons License 2013.02.22 0 0 20508

Szia!

 

milyen grafikon? Pivot chart? Akkor lehet, mert a pivot tábla is átméretezi magát, ha nem utasítjuk az ellenkezőjére.

Nekem akkor szokott átméreteződni (excel 2007-2010 nél), ha a chart labeljeinek a hossza drasztikusan változik kattintásról kattintásra. Ez is radar és sáv diagrammoknál.

 

Ez nem lehet a gond?

 

Esetleg át tudod küldeni, vagy egy scrreenshotot előtte és utána? 

Előzmény: wawabagus (20483)
ujszaszy Creative Commons License 2013.02.22 0 0 20507

Szia!

 

ez akkor szokott előfordulni, ha van egy "nyitott" exceled (vagy egy addin, exetleg a personal.xls - lehet, hogy nem is látod, hogy nyitva van), és rányit még egy excel alkalmazást.

Nem lehet az excel applicationhoz rendelni?, vagy a personal megnyitásához a futást?

Előzmény: pimre (20506)
pimre Creative Commons License 2013.02.22 0 0 20506

Sziasztok, írtam egy kis programot, amit szeretnék lefuttatni az Excel minden egyes meghívásakor. Próbáltam önálló munkafüzetként az xlstart-ba tenni, működött is, csak egy apró mellékhatása volt, ami nem tetszett. Ez most mindegy.

Jobb megoldásnak találtam, hogy a Personal.xls-be teszem, és a munkafüzet megnyitáshoz (Private Sub Workbook_Open) rendelem. Le is fut rendesen, csak ennek is van egy apró mellékhatása. Ha valamiért ismételten meghívom az Excelt, akkor figyelmeztet arra, hogy a personal.xls zárolva van olvasásra.  Nem komoly gond, de szeretném ezt is elkerülni. Mi a megoldás? Esetleg a munkafüzet megnyitás helyett más eseményhez kellene rendelnem a program lefuttatását?

Delila10 Creative Commons License 2013.02.22 0 0 20505

SK, RI :)

Retro Image Creative Commons License 2013.02.21 0 0 20504

Brühühü :o(

Azért kihívásnak jó volt :o)

Előzmény: Delila10 (20502)
Sánta Kutya (SK) Creative Commons License 2013.02.21 0 0 20503

"Az amerikaiak egymillió dollárért kifejlesztették a súlytalanságban is író tollat. A szovjet űrhajósok ceruzát használtak." :-)

Előzmény: Delila10 (20502)
Delila10 Creative Commons License 2013.02.21 0 0 20502

Van egy sokkal egyszerűbb módszer.

 

Veszel egy vadiúj füzetet, ahol beállítod a kedvenc formátumaidat, adatokat nem írsz bele. A füzetet elmented sablonként, Munkafüzet névvel. Az Excel automatikusan abba a könyvtárba teszi, ahonnan az ilyen xlt, vagy xltx kiterjesztésű fájlokat olvassa be minden indításkor. Ezután mindegyik új füzeted ezzel a formátummal indul.

 

Érdemes minden lapra beállítani a formátumokat. Egyebeket is beállíthatsz, pl. az Excel jellemzően a függőleges igazítást lentre teszi, amit én középre tettem a sablonban.

Előzmény: Retro Image (20500)
Ketele69 Creative Commons License 2013.02.21 0 0 20501

Nagyon köszönöm, ki fogom próbálni. Sejtettem, hogy nem egyszerűen programból lehet beállítani.

 

Ketele

Előzmény: Retro Image (20500)
Retro Image Creative Commons License 2013.02.21 0 0 20500

Talán van egyszerűbb, de nekem csak ez jutott eszembe. Leírom lépésről-lépésre.

 

1. Kell egy egyéni makró-munkafüzet (personal.xls). Ha még nincs ilyened, rögzíts egy makrót, és a rögzítés előtt állítsd be, hogy ne "ebbe a munkafüzetbe", hanem "egyéni makró-munkafüzetbe" rögzítse. Akkor elvileg az Excel létrehozza a personal.xls-t.

2. Lépj át a VB editorba (Alt+F11)

3. A project explorerben keresd meg a personal.xls-t, jelöld ki.

4. Menüből válaszd a következő parancsot: Insert/Class Module

5. A project explorerben, a personal.xls-en belül keresd meg az új class module-t (feltehetően class1-nek hívják), kattints rá duplán.

6. A Properties ablakban írd át a nevét (Name) erre: clsApp

7. Ugyanitt állítsd át az Instancing tulajdonság értékét 2-re (2 - PublicNotCreatable)

8. A jobb oldali üres kódmezőbe másold be ezt:

 

Public WithEvents App As Application

Private Sub App_NewWorkbook(ByVal Wb As Workbook)
    Dim ws As Worksheet
    For Each ws In Wb.Worksheets
        ws.Cells.NumberFormat = "#,##0.0"
    Next
End Sub

Private Sub App_WorkbookNewSheet(ByVal Wb As Workbook, ByVal Sh As Object)
    Sh.Cells.NumberFormat = "#,##0.0"
End Sub

8. A project explorerben, a personal.xls-en belül keresd meg a ThisWorkbook nevű objektumot, kattints rá duplán.

9. A jobb oldali üres kódmezőbe másold be ezt:

 

Public Ex As clsApp
Private Sub Workbook_Open()
    Set Ex = New clsApp
    Set Ex.App = Application
    Debug.Print "Application caught"
End Sub

Zárj be mindent, és amikor kérdez, mentsd el a makró-munkafüzet változásait.

 

Az Excel következő indításakor már úgy lesz, ahogy akarod.

 

 

Előzmény: Ketele69 (20499)
Ketele69 Creative Commons License 2013.02.21 0 0 20499

Sziasztok!

 

Hogyan lehet azt beállítani, hogy új munkalap megnyitásakor a cellák alapértelmezése: szám formátum, ezer csoportosítás, egy tizedes legyen.

 

Köszönöm  

privateer Creative Commons License 2013.02.21 0 0 20498

OFF:ON

Milyet kérsz? :)

Esetleg így?

http://www.youtube.com/watch?v=S1ZZreXEqSY 

OFF: OFF 

Előzmény: Törölt nick (20490)
szláj70 Creative Commons License 2013.02.21 0 0 20497

Kedves RHCPgergo!

Nagyon köszönöm, működik. :)

Előzmény: Törölt nick (20496)
Törölt nick Creative Commons License 2013.02.21 0 0 20496

.InitialFileName = "C:\konyvtar\"

Előzmény: Törölt nick (20494)
Törölt nick Creative Commons License 2013.02.21 0 0 20495

Köszi! :)

Előzmény: Retro Image (20493)
Törölt nick Creative Commons License 2013.02.21 0 0 20494

Hali.

 

Elméletileg az .InitialFileName property-vel (mi ez magyarul?), amit használsz is. Valahogy így kéne kinéznie:

.InitialFileName = "C:konyvtar"

Előzmény: szláj70 (20492)
Retro Image Creative Commons License 2013.02.21 0 0 20493

Igazság szerint Windows API függvényekkel (elvileg) megoldható lenne a Reader bezárása, de az elég macerás, és sokkal egyszerűbben célt lehetne érni egy másik megközelítéssel. Én inkább Userform-ra  tenném az egész műveletsort. Lenne a form-on egy gomb a mappatallózáshoz, egy másik a mentéshez/átnevezéshez, illetve pár Combobox meg miegyéb az új fájlnév összerakásához. A form legnagyobb részét pedig egy AcroPDF nevű ActiveX vezérlő tenné ki. Ezzel Excelen belül lehetne megjeleníteni a pdf doksikat, nem kellene Adobe Reader ablakokat nyitogatni meg csukogatni. Az AcroPDF vezérlőnek csak a LoadFile metódusára lenne szükség.

 

Nem nagy kunszt, csak most egyrészt nincs rá időm (dolgozom), másrészt úgysem tudnám feltölteni, mert proxy papa nem engedi :o)

Előzmény: Törölt nick (20490)
szláj70 Creative Commons License 2013.02.21 0 0 20492

Sziasztok!

Érdeklődnék, hogyan lehetne "Mentés máskánt" panelt rögtön a mentésre kijelölt mappára állítani, hogy ne kelljen a felhasználónak oda vándorolnia.

Sub mentés()
Dim fldlg As FileDialog
Set fldlg = Application.FileDialog(msoFileDialogSaveAs)
With fldlg
.Title = "Mentés másként"
.InitialFileName = Date & "-" & Range("a20")
If Application.Version = "14.0" Then
.FilterIndex = 2
ElseIf Application.Version = "11.0" Then
.FilterIndex = 4
ElseIf Application.Version = "12.0" Then
.FilterIndex = 2
End If
End With
rv = fldlg.Show
If rv Then
ActiveWorkbook.SaveAs fldlg.SelectedItems(1)
End If

End Sub

Ez így müxik, de mindíg a "Dokumentum" könyvtárra állítja magát.

Köszi.

KelemenGy Creative Commons License 2013.02.21 0 0 20491

Eggyel lógtam én is:

 

 

Egészségedre és köszi még1* a segítséget!

Előzmény: Törölt nick (20490)
Törölt nick Creative Commons License 2013.02.21 0 0 20490

Hogyan csinálnád? Engem érdekelne, mert nem sikerült magamtól.

 

@privateer: virtuális sör megfelel :)

Előzmény: Retro Image (20488)
Retro Image Creative Commons License 2013.02.21 0 0 20489

Bizonyosat én sem tudok mondani, de azt pl. el tudom képzelni, hogy ha van benne jó sok képlet, amelyek valami okból (pl. külső hivatkozás frissítése címén) a fájl megnyitásakor automatikusan újraszámolódnak, akkor az újraszámolt adatok miatt újraformázza a grafikonokat is. Vagy az is lehet, hogy tökfőzeléket reggeliztem, nem tudom... :o)

Előzmény: wawabagus (20483)
Retro Image Creative Commons License 2013.02.21 0 0 20488

Érdekel még olyan megoldás, ahol nem kell az Adobe Readereket kézzel bezárogatni?

Van egy ötletem, de nem kezdem el kidolgozni, ha már fölösleges :o)

Előzmény: privateer (20487)
privateer Creative Commons License 2013.02.20 0 0 20487

Javítva, köszi!  

A Sheet1 volt a kulcs, mert hiába túrtam át a kódot a hiba után keresgélve.

Hány sörrel, vagy egyéb itókával jöhetek?

Előzmény: Törölt nick (20485)
Törölt nick Creative Commons License 2013.02.20 0 0 20486

Nem tudom mi lehet. Ha feltöltenéd a munkafüztetet valahova, szerintem nagyobb eséllyel tudna valaki segíteni.

Előzmény: wawabagus (20483)
Törölt nick Creative Commons License 2013.02.20 0 0 20485

Elnézést, a pdf-et automatikusan megnyitó makró nem működik, mert az L6 cellára hivatkoztam a K6 helyett. A Sheet1 munkalapon levő kódot kell megváltoztatni úgy, hogy a két helyen szereplő L6-ot K6-ra cseréled. Itt a helyes makró.

 

http://pastebin.com/L3wYMU8t

 

 

Előzmény: privateer (20484)
privateer Creative Commons License 2013.02.20 0 0 20484

Köszi mindenkinek aki írt.

 

Átrágom magam az eddig kapott infókon, és összerakok egy korrekt megoldást. 

Figyelembe véve többetek tanácsát, észrevételét.

Előzmény: Törölt nick (20481)
wawabagus Creative Commons License 2013.02.20 0 0 20483

Kedves Mindenki!

Van egy kis gondom.

Készítettem a remek riportot xlsx-ben. Jó sok automata grafikonnal.

A gond az, hogy valamilyen rejtélyes oknál fovba..ahányszor kinyitom újra a filet az excel gondol egyet és össze vissza méretezi a grafikont!

 

Felnagyítja, pedig senki sem kérte rá...minden elcsúszik-szétcsúszik.

 

Mi lehet a gond? Tök tanácstalan vagyok.

Be van állítva, hogy a cella méretének növelésével ne változzan a grafikon mérete...

 

Nem kéne ilyet csinálnia...

Van valami tippetek?

Előre is köszi!

J.

Törölt nick Creative Commons License 2013.02.20 0 0 20482

Egy kérdésem volna. Szépen működik a file megosztott fileként. A különböző gépekből lehet benne az engedélyezett módosításokat végrehajtani. Egy kicsi hibával: a módosítást a többi gépen csak akkor látják ha ha az a filet bezárják majd újra indítják. A kérdésem az: van-e lehetőség real time-ban azonnal mindenki láthassa a változásokat vagy szintén valós időben jelzést küldeni?

Törölt nick Creative Commons License 2013.02.20 0 0 20481

Szeva,

 

itt egy verzió, ami hasznos lehet. Választható mappából beírja a cellákba a fájlneveket, majd megadhatod, hogy mire nevezze át. Adatérvényesítést nem állítottam be. Bat file-t nem használ, csak az excelt.

 

http://data.hu/get/6229736/atnevezo_mod3.zip

Előzmény: privateer (20475)
szláj70 Creative Commons License 2013.02.20 0 0 20480

Igaz, köszi. Azóta rájöttem Én is, és megoldottam, de vszínűleg átírom a Te általad javasolt generálásra, mert ez elegánsabb.

 

Előzmény: Retro Image (20447)
Retro Image Creative Commons License 2013.02.20 0 0 20479

Tökre nem is értem, hogy hogy jut valakinek eszébe batch fájlt generálni Excelből erre a feladatra :o))))

Előzmény: Retro Image (20478)
Retro Image Creative Commons License 2013.02.20 0 0 20478

VBA parancs fájl átnevezésére:

 

Name "D:akármi.pdf" As "D:valami más.pdf"

 

Bármilyen fájlkiterjesztéssel működik, nem pdf-specifikus.

Az elérési útvonalak is szabadon változtathatók, tehát átnevezés mellett/helyett másik könyvtárba is át lehet mozgatni a fájlt.

Csak annyi a megkötés, hogy a célkönyvtárnak léteznie kell.

Előzmény: privateer (20475)
privateer Creative Commons License 2013.02.20 0 0 20477

Bocs, működik, csak az ékezeteket és szóközöket nem szereti. Még megpróbálom megmondani neki, hogy a batch fájl első sorába tegye be magától ezt "chcp 1250" Ugyanis az ékezeteket a batch fájl nem viszi be.

Köszi a privát levelet aki átküldte az infót. 

Előzmény: privateer (20476)
privateer Creative Commons License 2013.02.20 0 0 20476

Ez sajnos win7 és office 2007 alól nem működött. :(

Még keresem a megoldást. De továbbra is szívesen veszem a javaslatokat.

http://msexcel.freeblog.hu/archives/2009/06/09/Fajlok_atnevezese_excel_programmal/ 

Előzmény: privateer (20475)
privateer Creative Commons License 2013.02.20 0 0 20475

Retro Image:
Azért kell megnyitogatnom az exceleket,  bocs pdf-t, mert irattári szkennelések ezek.
Meg kell nézni az irattípust, valamint a dátumot. Majd azokat az információkat beadni.
Sajnos OCR programok nem tudnak megbírkózni vele. Ugyanis igen változatosak az iratmintasablonok, hiszen 1978-tól napjainkig bármi előfordulhat. Majd amikor olyan szinten lesz az AI, akkor megcsinálja helyettünk a gép. Ez még kb 10 év.

Viszont érdekelne a módszer, hogy lehet fájlokat átnevezni. Az is egy lépés lenne a tökéletesebb megvalósítás felé.
Tehát ha megtudod mondani a módját, megköszönöm. :-) 

Ha gondolod, váltsunk át emailos kommunkációba, vagy skypera, és a végén, majd ide betesszük a megoldást, hátha érdekelhet később mást is.

skájp:-) : privateer2
mail: biro pont tamas kukac gmail pont com

 

Előzmény: Retro Image (20473)
KelemenGy Creative Commons License 2013.02.20 0 0 20474

Nagyon sokat segítettél, örök hálám. Így már 100%-ig olyan a tábla, amilyet szerettem volna.

 

A B oszlopos mizériát megoldottam, nem fontos.

 

A másoló kódrészlet így adott helyes értékeket:

 

For Each Rng In Sheets("leltárlista").Range("G4:G" & Lr)
    If Rng.Value <> "" Then _
    Sheets(CStr(Rng.Value)).Range("B" & _
    Rows.Count).End(xlUp).Offset(1, 0).Resize(, 6).Value = _
    Rng.Offset(, -5).Resize(, 6).Value
Next Rng

Előzmény: Törölt nick (20468)
Retro Image Creative Commons License 2013.02.20 0 0 20473

Azt nem értem, minek nyitod meg a pdf-eket?

Amúgy Excelből simán lehet fájlokat átnevezni, nagyságrendekkel könnyebb, mint mondjuk Adobe Readert vezérelni.

Előzmény: privateer (20460)
Retro Image Creative Commons License 2013.02.20 0 0 20472

Azt próbáltad már, hogy day 1 helyére beírod, hogy 2013.02.19 18:00? Nekem úgy tűnik, hogy csak ennyi kell. 

Előzmény: lashodyes (20462)
Törölt nick Creative Commons License 2013.02.19 0 0 20471

Rendben.

Előzmény: Sánta Kutya (SK) (20470)
Sánta Kutya (SK) Creative Commons License 2013.02.19 0 0 20470

Hát már bocsánat, én sem vagyok nagy véleménnyel ennek a fórumnak a technikai színvonaláról, és 2000 óta nézem, ahogy egyre rosszabb és rosszabb verziókkal cserélik le, de kódokat inkább a pastebinbe írjál.

Előzmény: Törölt nick (20469)
Törölt nick Creative Commons License 2013.02.19 0 0 20469

Rémálom ez a fórum.

 

Nem lehet szerkeszteni.

Kilóg a sor vége az ablakból és nem lehet elolvasni, ha túl hosszú.

Nem lehet normálisan kódot bemásolni, mert ömlesztve értelmezi.

 

De legalább:

- egyszerű

- gyorsan betölt Magyarországon

- van

 

 

Ezt már egyszer kérdeztem, de nincs másik magyar exceles fórum?

Törölt nick Creative Commons License 2013.02.19 0 0 20468

Azért dobja a 'subscript out of range' hibaüzenetet, mert olyan munkalapra hivatkozik, aminek a neve egy üres string (szöveges változó), tehát egy üres cella tartalma a G oszlopban. Esetleg bele lehet tenni egy ha függvényt, hogy ne másoljon, ha a G oszlopban levő cella üres az adott sorban. Beleírtam a kódrészletbe.

 

Az nem teljesen tiszta nekem, hogy miért nem másol amikor üres a B oszlopban a cella, erre nem tudok mit mondani.

 

A G oszlop másolásához valóban a resize metódussal kell babrálni, ezt is beleírtam. Ha nem stimmel, szólj!

 

For Each Rng In Sheets("leltárlista").Range("G4:G" & Lr)

If Rng.Value <> "" Then _

Sheets(CStr(Rng.Value)).Range("B" & _

Rows.Count).End(xlUp).Offset(1, 0).Resize(, 6).Value = _

Rng.Offset(, -6).Resize(, 6).Value

Next Rng

 

Részletesen elmagyarázva:

- a For..Each ciklus végigmegy a "leltárlista" munkalap G oszlopán a negyedik sortól

az Lr-edik sorig.

- az Rng változó mindig az adott cellát jelenti (először G4, majd G5, stb.)

- If Rng.Value <> "" Then Ha a cella nem üres, akkor

- Sheets(CStr(Rng.Value)) a Rng cellában található érték nevével fémjelzett munkalap

(a CStr szöveges változót csinál belőle, hogy ne számként értelmezze)

- .Range("B" & Rows.Count).End(xlUp) B oszlop utolsó sorából indulva felfelé haladva

az első nem üres cella (pl. B3)

- .Offset(1,0) az eggyel alatta levő cella (pl. B4)

- .Resize(,6) a kijelölés átméretezése egy celláról hat cella szélesre jobbra(tehát pl. B4:G4)

- .Value és ennek az értéke

 

legyen egyenlő ezzel:

Rng.Offset(,-6).Resize(,6).Value magyarán a Rng cellától hattal balra levő cella

(a "leltárlista" munkalap G oszlopában van a Rng, mint emlékszünk, tehát pl. G4-ből lesz B4)

átméretezve jobbra hat cella széles területté (pl. B4:G4), és ennek az értéke.

 

Remélem segítettem.

Előzmény: Törölt nick (20467)
Törölt nick Creative Commons License 2013.02.19 0 0 20467

Azért dobja a 'subscript out of range' hibaüzenetet, mert olyan munkalapra hivatkozik, aminek a neve egy üres string (szöveges változó), tehát egy üres cella tartalma a G oszlopban. Esetleg bele lehet tenni egy ha függvényt, hogy ne másoljon, ha a G oszlopban levő cella üres az adott sorban. Beleírtam a kódrészletbe.

 

Az nem teljesen tiszta nekem, hogy miért nem másol amikor üres a B oszlopban a cella, erre nem tudok mit mondani.

 

A G oszlop másolásához valóban a resize metódussal kell babrálni, ezt is beleírtam. Ha nem stimmel, szólj!

 

For Each Rng In Sheets("leltárlista").Range("G4:G" & Lr)

If Rng.Value <> "" Then _

Sheets(CStr(Rng.Value)).Range("B" & _

Rows.Count).End(xlUp).Offset(1, 0).Resize(, 6).Value = _

Rng.Offset(, -6).Resize(, 6).Value

Next Rng

 

Részletesen elmagyarázva:

- a For..Each ciklus végigmegy a "leltárlista" munkalap G oszlopán a negyedik sortól az Lr-edik sorig.

- az Rng változó mindig az adott cellát jelenti (először G4, majd G5, stb.)

- If Rng.Value <> "" Then Ha a cella nem üres, akkor

- Sheets(CStr(Rng.Value)) a Rng cellában található érték nevével fémjelzett munkalap (a CStr szöveges változót csinál belőle, hogy ne számként értelmezze)

- .Range("B" & Rows.Count).End(xlUp) B oszlop utolsó sorából indulva felfelé haladva az első nem üres cella (pl. B3)

- .Offset(1,0) az eggyel alatta levő cella (pl. B4)

- .Resize(,6) a kijelölés átméretezése egy celláról hat cella szélesre jobbra(tehát pl. B4:G4)

- .Value és ennek az értéke

 

legyen egyenlő ezzel:

Rng.Offset(,-6).Resize(,6).Value magyarán a Rng cellától hattal balra levő cella (a "leltárlista" munkalap G oszlopában van a Rng, mint emlékszünk, tehát pl. G4-ből lesz B4)

átméretezve jobbra hat cella széles területté (pl. B4:G4), és ennek az értéke

 

Remélem segítettem.

Előzmény: KelemenGy (20464)
Sánta Kutya (SK) Creative Commons License 2013.02.19 0 0 20466

A replace kiiktatása nem is a sebesség miatt kell, csak a programozói egóm kívánja. :-)

Előzmény: Retro Image (20465)
Retro Image Creative Commons License 2013.02.19 0 0 20465

Ha az utolsó helyett a Z oszlopba teszed a képleteket, azzal szerintem semmit nem nyersz.

A képlet módositása úgy, hogy a Replace feleslegessé váljon, járható útnak tűnik. Ki kell próbálni, hogy működik-e. Azért én nem várnék tőle túl sokat. A Replace elég gyors dolog egy 60-80 soros táblázatnál.

A futtatás előtti aktiv cellát meg úgy őrzöd meg, hogy:

Dim Talon As Range

Set Talon = Activecell

 

aztán jön a program többi része

a végén pedig

Range("A1").Activate

helyett

Talon.Activate

kell.

 

A vessző és a pontosvessző körüli kavarodás pedig azért van, mert a VBA részt nem magyaritották az Excel többi összetevőjével. (Hála Istennek :o))

Előzmény: Sánta Kutya (SK) (20461)
KelemenGy Creative Commons License 2013.02.19 0 0 20464

Azt csinálja, amit szeretnék, de van egy érdekesség. Ennél a sornál Subscript out of range-dzsel kiszáll ha a G oszlopban üres cellába fut:

 

Sheets(CStr(Rng.Value)).Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Resize(, 5).Value = _
        Rng.Offset(, -5).Resize(, 5).Value

 

Másik furaság, hogy csak akkor másolja át a sorokat, ha a B oszlopban a cella nem üres. Ezeket egyszerű megoldani, nem hagyunk üres cellákat :)

 

Azt még megkérdezhetem, hogy mit kell átírjak ahhoz, hogy a G oszlop celláit is másolja? Gondolom valahol a resize-ok körül lesz a megoldás.

 

A helységlapoknak is van fejlécük, az adatos sorok ott is a 4. sorban kezdődnek, ezt írtam át, így jót töröl:

 

Sh.UsedRange.Offset(1, 0).ClearContents 'kitöröl az első soron kívül mindent

 

helyett


Sh.UsedRange.Offset(3, 1).ClearContents 'kitöröl az első három soron és az első oszlopon kívül mindent

 

Egyébiránt nagyon gyorsan lefut.

Törölt nick Creative Commons License 2013.02.19 0 0 20463

Ezer köszönet. Nagy segítség volt. Valóban.

 

Esetleg a csoport név is lekérdezhető?

Előzmény: Retro Image (20444)
lashodyes Creative Commons License 2013.02.19 0 0 20462

Sziasztok! Szeretnék egy pici segítséget kérni, excelben szeretnék vérnyomásnaplót vezetni. Ehhez találtam egy majdnem minden szempontból megfelelő template-et, amin egy dolgot szeretnék megváltoztatni: azt szeretném, hogy ne day 1, day 2 stb. legyen, hanem pl 2013.02.19, 18:00, és mindez a charton is így legyen, így változzon. Azért szeretném így, mert egy nap többször is mérek. Hogyan volna ez lehetséges? A template linkje: http://raywinstead.com/bp/BPMonthOnceADayFormExcel.xls

 

Nagyon fontos volna, hálás köszönet annak aki hajlandó volna segíteni.

Sánta Kutya (SK) Creative Commons License 2013.02.19 0 0 20461

Aha, köszi, tehát jól láttam, hogy valóban ír a táblázatba! Csak éppen az utolsó oszlopba. Na most ha megmondom, hogy az utolsó oszlop mondjuk a P, és még ha írnak is mellé, a Z oszlop már biztosan szabad, azzal lehet gyorsítani?

És hogy tudom az elején eltárolni a kurzor helyét, hogy ne A1-re álljon vissza?

Ha a SUM(G4,I4,K4,M4,O4) helyett IF(SUM(G4,I4,K4,M4,O4)=0,"",1)-et írnék, azzal megspórolnám a külön cserét, nem? Akkor felesleges lenne az
Rng.Replace what:="0", replacement:="", lookat:=xlWhole

Meg kell szokni, hogy itt vessző van a pontosvessző helyett, furcsa, és nem is értem, miért nem az van az Excelben is.

Előzmény: Retro Image (20459)
privateer Creative Commons License 2013.02.19 0 0 20460

Sziasztok!

Nem írtam még ide sosem.  

 

Feladat a következő. Van egy excel fájl, meg mondjuk 6 darab vegyes pdf. Ezeket akarom átnevezni.

 

Jelenleg a következőképp csinálom.
Van egy excel táblám, benne két makró.

Az egyik a mondjuk  ctrl+a-val a könyvtárban lévő pdf fájlok neveit listázza be.
A másik pl. ctrl+d-vel megnyitja a beállított pdf olvasót.

Utána én kitöltöm pl a dátumoszlopot, majd az irattípust automatikus kiegészítés segítségével gépelve kiválasztom.

Ha végeztem, a kívánt tartalmat copy paste módszerrel át viszem egy sima bat fájlba, ott a wordpad++ makrójával kiszedem a tabulátorokat. És az elkészült sima dosos rename bat fájlal átnevezem a pdf-eket.

Kérdésem a következő

1. Hogy lehetne megnyitni a pdf fájlokat, úgy, hogy ne nyisson meg újabb pdf ablakot. Azaz előzőleg megnyitott fájlt, ha van olyan zárja is be. Tudom, lehet hogy a viewer beállításán múlik. De gyanítom, hogy excelből vezérelhető.
2. Hogy lehetne az irattípust egyfajta legördülő listából kiválasztani. Jelenleg alt+le nyíllal választom ki, vagy beírom az első 1-2 betűt.
- Nem nem jött be az adatok - érvényesítés - beállítások fülön a Megengedve (lista), majd forrás megadása. + legördülő lista bepipálása.  - Ugyanis szeretném minimalizálni az egerezést, és itt hiába gépelek be bármit, nem működött.

3. Dupla egér kattra nem lehetne elindítani a makrót? Ne kelljen állandóan kombózni? Azaz adott cellára duplán kattintok, hívja be a pdf olvasót.
4. hogy tudnám kiírni egy bat fájlba az excel tartalmát (csak a kívánt területtel)? Megspórolhatnám a copy paste wordpad++ makrós pucolást. 

Excel tudom, hogy sosem fog fájlokat átnevezni, ezért kellene nekem egy külső bat fájlt kreálni és elindítani.
Ebből adódik az ötös kérdésem

5. hogy tudnám elindítani excelből az elkészült bat fájlt, hogy lefuthasson, átnevezve a pdf fájlokat?

Mellékeltem az eddig elkészült excel táblám.
http://data.hu/get/6226455/fileatnevezo.rar 

Megjegyzem, hogy a makrónak meg kell adni az pdf olvasó helyét, hogy megtudja nyitni!

Retro Image Creative Commons License 2013.02.19 0 0 20459

Itt van újra, kommentekkel.

 

Sub b()
   Dim EndCell As Range, Rng As Range, LastCol As Range

 

   Set LastCol = Cells(1, Columns.Count).EntireColumn

   'Megkeresi az utolsó oszlopot a munkalapon (remélve, de nem ellenőrizve, hogy az nincs használatban :o))

   'Ezt az oszlopot segédoszlopként használjuk a továbbiakban


   Set EndCell = Range("A:A").Find(what:="XXX", After:=Range("A4"), LookIn:=xlValues, lookat:=xlWhole)
   If EndCell Is Nothing Then Exit Sub

   'Megkeresi az első XXX tartalmú cellát az A oszlopban, A4 után. Eddig kell elrejteni a kritériumnak megfelelő sorokat.

   'Legyen ez pl. az $A$129 cella.

   Set Rng = Range("A4").Resize(EndCell.Row - 4)

   'Ez definiálja  a teljes tartományt, amelyre a vizsgálatot el kell végezni (az A4-től az XXX előtti celláig). Pl. $A$4:$A$128

   Set Rng = Intersect(Rng.EntireRow, LastCol)

   'Ez definiálja az előbb meghatározott teljes tartománynak megfelelő cellákat az utolsó oszlopban.

   'Pl. Excel 2003 esetében az itolsó oszlo az IV, tehát a tartomány: $IV$4:$IV$128

 

   Rng.Formula = "=IF(OR(A4=""Eladások"",B4=""ÖSSZESEN"",B4=""valami""),1,SUM(G4,I4,K4,M4,O4))"

   'Az utolsó oszlop előbb meghatározott celláiba beletesz egy képletet, amely az elrejtendő sorokra nulla eredményt ad

   'A nem elrejtendő sorokra nullánál nagyobb számot.

 

   Rng.Copy
   Rng.PasteSpecial xlPasteValues

   'A képleteket irányított beillesztéssel értékre módosítja

 

   Application.CutCopyMode = False

   'Ez a sor nem kell :o)

 

   Rng.Replace what:="0", replacement:="", lookat:=xlWhole

   'Az értékek közül a nullákat (ezek jelölik az elrejtendő sorokat) lecseréli üres sztringre.

 

   Rng.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

   'Az üres sztringet tartalmazó sorokat egy lépésben elrejti.

   'Itt kimaradt a hibakezelés. Ha nincs üres cella, akkor hibát dob a program.

 

   Rng.ClearContents

   'Törli a segédoszlop tartalmát

 

   Range("A1").Activate

   'Visszahozza a fókuszt az A1-re, mert valahol időközben elmászott a segédoszlopra.

 

End Sub

 

 

Előzmény: Sánta Kutya (SK) (20458)
Sánta Kutya (SK) Creative Commons License 2013.02.19 0 0 20458

Szia! Ez drasztikusan gyorsabb! Csak nem értem, hogy működik. A Rng.Formula= olyan benyomást kelt bennem, mintha teleírná a munkalapot... Mit csinál ez tulajdonképpen?

Előzmény: Retro Image (20427)
Törölt nick Creative Commons License 2013.02.19 0 0 20457

Ha nem a második sortól kezdődik az adatod a helységek munkalapjain, akkor megváltoztatom majd a kódot.

Előzmény: Törölt nick (20456)
Törölt nick Creative Commons License 2013.02.19 0 0 20456

A Sheets(Rng.Value) hivatkozás azért nem működött rendesen, mert indexként és nem a munkalap neveként értelmezte, elnézést. Így már jónak kéne lennie.

 

Változtattam némileg a kódon. Ezt a ThisWorkbook modulba kell bemásolni. Nem frissül automatikusan, amikor változtatsz egy cellát, az túl sok futtatást eredményezne szerintem.

Ehelyett minden alkalommal le fog futni, amikor elmented a munkalapot. Minden futás alkalmával az első sor kivételével kitöröl minden adatot a helységneveket tartalmazó munkalapokról, majd újra bemásol mindent. Elméletileg nem kéne, hogy sok időbe teljen, kíváncsi vagyok, mennyi idő alatt fut le neked.

 

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim Rng As Range
Dim Lr As Long ' utolsó sor
Dim Sh As Worksheet
Lr = Sheets("leltárlista").Range("G" & Rows.Count).End(xlUp).Row

For Each Sh In ThisWorkbook.Worksheets
    If Sh.Name <> "leltárlista" Then _
    Sh.UsedRange.Offset(1, 0).ClearContents 'kitöröl az első soron kívül mindent
Next Sh
For Each Rng In Sheets("leltárlista").Range("G4:G" & Lr)
    Sheets(CStr(Rng.Value)).Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Resize(, 5).Value = _
        Rng.Offset(, -5).Resize(, 5).Value
Next Rng

End Sub

Előzmény: KelemenGy (20454)
pigee Creative Commons License 2013.02.19 0 0 20455

Nem, 1.1 - 1.12 megy rendben, de pl. 2.1-re mar 1900.1.12 az eredmeny, stb.

Előzmény: tbando (20441)
KelemenGy Creative Commons License 2013.02.19 0 0 20454

Köszönöm! Minimális belepiszkálást igényelt a tesztkörnyezetbe betéve, egy munkalappal odébb tájolta magát, ezt ennek "Sheets(Rng.Value)" a módosításával megoldottam.

Viszont már látom mi lesz ezze a bajom. Ez valóban ahányszor lefut, annyiszor duplázza be a tételeket. Ez megint nem az, amit tőlem szeretnének. Eredetileg az volt a kérdés, hogy az megoldható-e, hogy a leltárlistán szereplő tételek sorában a helység számát változtatva automatikusan, mindenféle futtatás és piszkálás nélkül változzanak a mögöttes helységleltár lapok. Ezért is kell ez külön, mert négy helységnél még szűrök és nyomtatom a leszűrt listát, mint helységleltárt, de ebben feltöltés után lesz egy 300+ tételes anyaglista az első lapon és utána még vagy 20 lap.

A 20449-ben bemutatott rendszer ennek a célnak megfelel. Két problémám van vele: 1: iszonyú redundáns, ahány helység, annyiszor tartalmazza a teljes méretű táblázatot, 2: nem jó a folyószámozás, de ez a kisebbik gond, nyomtatás előtt rendbe lehet tenni.

Előzmény: Törölt nick (20453)
Törölt nick Creative Commons License 2013.02.19 0 0 20453

Én előre szóltam. :D Itt a makró. A leltárlista egyes sorait másolja a B-től F oszlopig (5 cella) a G oszlopban megadott munkalapra. Ahányszor futtatod, annyiszor másolja. Nem hibabiztos, szólj ha valami gond van vele. Javaslom, azért hagyd meg a leltárlistában az eredeti sorokat - annak ellenére is, hogy így kétszer tárolod ugyanazt az adatot.

 

Sub CopyRows()

Dim Rng As Range
Dim Lr As Long ' utolsó sor

Lr = Sheets("leltárlista").Range("G" & Rows.Count).End(xlUp).Row

For Each Rng In Sheets("leltárlista").Range("G4:G" & Lr)
    Sheets(Rng.Value).Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Resize(, 5).Value = _
        Rng.Offset(, -5).Resize(, 5).Value
Next Rng

End Sub

 

 

Előzmény: KelemenGy (20452)
KelemenGy Creative Commons License 2013.02.19 0 0 20452

Üdv! Ez is egy megoldás, nekem jó is lenne akár az autoszűrős, akár a jelenleg meglévő módszer, de a kérés felém úgy hangzott, hogy azt oldjam meg, amit lejjebb megfogalmaztam :)

A könyvcímet köszönöm!

Előzmény: Törölt nick (20450)
Törölt nick Creative Commons License 2013.02.19 0 0 20451

szednéd*

Előzmény: Törölt nick (20450)
Törölt nick Creative Commons License 2013.02.19 0 0 20450

Szia!

 

Meg lehet csinálni, de minek szednét szét több munkalapra az adatodat? Sokkal több előnye van, ha egyben van az egész. Könnyen tudsz rá szűrni, kimutatást, grafikont, pivottáblát csinálni. Ha csak egy helység adatait akarod látni, akkor egyszerűen szűrsz arra az oszlopra. Több munkalapon tárolni ugyanolyan felépítésű adatot eléggé előnytelen.

 

Én John Walkenbach egyik könyvéből tanulgattam a makrók alapjait: VBA programming for dummies a címe, ha jól emlékszem.

Előzmény: KelemenGy (20449)
KelemenGy Creative Commons License 2013.02.19 0 0 20449

Sziasztok!

 

Agyalok, hogy hogyan tudnám tökéletesíteni a leltáros táblámat.

 

A táblázat felépítése ugyanaz, mint eddig volt.

 

Sorszám / HETK (ez egy kódszám) / Megnevezés / Mennyiség / Mennyiségi egység / Azonosító / Helység szám

 

A valódi adatsor a 4. sorban kezdődik, addig fejléc van. Minden lap ugyanilyen felépítésű, lapokból most van öt (leltárlista, 1, 2, 3, 4). A helységszám a teszttáblán 1-4-ig terjed, az élesben ennél jóval több lesz, minden helységhez külön munkalappal. A cél az volna, hogy a sorszámozás maradjon meg minden lapon az eredeti állapotban, de az kezdő lapról (leltárlista) az egyes sorokból a B:F tartomány adatai kerüljenek át arra a munkalapra, amit a G oszlopban lévő egész megad.

 

Jelenleg van egy működőképes megoldás rá, de nem az igazi, ugyanis egy HA függvénnyel átvetettem a megfelelő lapokra az adatokat, de ez szaggatott sorszámozást eredményez az 1-4-ig számozott munkalapokon. Azt szeretném elérni, hogy egyrészt értsem, hogy a makró melyik sora mit művel, másrészt meglegyen az eredeti cél is, azaz a leltárlistáról vegye át a megfelelő értékeket úgy, hogy a sorszámozás minden további munkalapon 1-nél kezdődjön és folyamatos legyen, ha lehet, mindezt automatikusan.

 

Jelenleg ezt a HA függvényt használom:

 

=HA(leltárlista!$G4=26;HA(leltárlista!B4="";"";leltárlista!B4);"")


(azért egymásbaágyazott, hogy ha a leltárlistán egy adott cella üres, akkor a függvény ne 0, hanem üres értékkel térjen vissza)

 

Illetve ezt a makrót:

 

Sub Auto_Open()
With Application
    .ScreenUpdating = False
End With
    Dim sor%, sorok%, lap%
    
    For lap% = 2 To Worksheets.Count
        Sheets(lap%).Select
        sorok% = Cells.SpecialCells(xlLastCell).Row
        
        'Felfedjük mindegyiket
        Rows("1:" & sorok%).Hidden = False
        
        '4. sortól rejtünk csak ha 2. oszlop értéke hamis
        For sor% = sorok% To 4 Step -1
            If Cells(sor%, 3).Value = "" Then _
               Rows(sor%).Hidden = True
        Next
    Next
With Application
    .ScreenUpdating = True
End With
End Sub

 

Elképzelhető, hogy sikerül ezt a makrót úgy átírni, hogy megoldja a feladatot? Hangsúlyozom, érteni is szeretném, így ha elmondja valaki, hogy mit írja át benne, az is tuti lenne (már ha nem 0-ról kell újraírni, annyira nem értek sajna hozzá). Van egyébként valakinek jó tippje, hogy honnan lehetne normális tananyagot szerezni ehhez?

Sánta Kutya (SK) Creative Commons License 2013.02.19 0 0 20448

Pont elkaptam még a lap alján. Cenkinek cemmi ötlete? Nem tapasztaltatok hasonlót? Lehet, hogy a légnyomáskülönbség?

 

Megosztott munkafüzet, user elrejti a sorokat, elmenti, egy emelettel feljebb megnyitva a rejtett sorok felfedv jelennek meg. Hogy lehet? Excel 2007.

Előzmény: Sánta Kutya (SK) (20398)
Retro Image Creative Commons License 2013.02.19 0 0 20447

"Valóban azzal a sorral van a bibi valószínűleg, csak azt nem tudom, hogy micsoda!"

 

De hát mondom: nincs olyan munkafüzet, amire a program hivatkozik. Létre kell hozni előbb, és csak azután hivatkozni rá.

Ha mondjuk van egy sablon munkafüzeted, akkor mondd neki, hogy SaveAs, pl. így:

 

Workbooks("sablon.xls").SaveAs Filename:="C:\mappa\útvonal többi része\KIR" & Format(Date, "éééé.hh.nn") & ".xls"

 

aztán már tudsz rá hivatkozni.

 

Egyébként a programodban a Range hivatkozások egyike sincs adekvát módon definiálva, ezért csak szerencsés együttállások esetén fog működni. Arra számítani, hogy hogy az adott munkafüzetben mindig pontosan a szükséges munkalap legyen aktív, nagy bátorságra vall. :o)

Szerintem ezeket ki kellene javítani, ahhoz viszont a feladat megfogalmazása továbbra is elégtelen.

Előzmény: szláj70 (20446)
szláj70 Creative Commons License 2013.02.18 0 0 20446

Igen, hasonló, de ahová bemásolnám, annak a munkafüzetnek változó a neve, mindíg a "KIR" + az aktuális dátum. A munkalap neve mindíg ugyanaz, innen is indítanám a makrót.

Azt, hogy egy adott és ÁLLANDÓ nevű munkafüzetbe másolja, nincs gond, csak nem tudom, milyen módon tudnám úgy összefűzni a munkafüzet nevét, a "KIR" szóval és az aktuális dátummal, hogy azt értelmezze a makró.

Valóban azzal a sorral van a bibi valószínűleg, csak azt nem tudom, hogy micsoda!

 

Előzmény: Retro Image (20445)
Retro Image Creative Commons License 2013.02.18 0 0 20445

A kérdésfeltevés szerintem nem igazán jó.

Valahogy így kellene megfogalmazni:

  • Van egy X nevű munkafüzet, annak Y nevű munkalapja, ahonnan szeretném kimásolni a

             -   B3:L48 fix tartományt

             -   A B:L oszlopokban, a 3. sortól kezdődő, összefüggő tartományt

             -   valami más módon definiált tartományt,

  • és szeretném beilleszteni az A nevű munkafüzet B munkalapjára, az így és így definiált cellától kezdődően (itt is többféle definíció lehetséges, nem sorolom fel újra)
  • a kód pedig

             -   az X munkafüzetben

             -   az A munkafüzetben

             -   egy harmadik munkafüzetben (név szerint:...) legyen elhelyezve.

 

Erre már lehetne egy jól működő kódot írni, mert maga a feladat nem nehéz.

 

Ami a konkrét hibaüzenetet illeti, erős a gyanúm, hogy az alábbi sor a ludas (egyébként a hibaüzenettel párhuzamosan azt is érdemes megemlíteni, hogy hol akad ki a program):

Windows("KIR " & j5 & ".xlsm").Activate

Mégpedig az lehet a gond, hogy nem létezik ilyen munkafüzet, amikor a sor végrehajtódik. Valami sablon munkafüzettel dolgozol, amit előzőleg el kellene a KIR+dátum más néven.

Esetleg a kiterjesztésekkel lehet gond, hogy xls vagy xlsm.

Ennyiből nem lehet kideríteni.

Előzmény: szláj70 (20442)
Retro Image Creative Commons License 2013.02.18 0 0 20444

Delila tudja :o)

 

(Na jó, elárulom: lásd 19877)

Előzmény: Törölt nick (20443)
Törölt nick Creative Commons License 2013.02.18 0 0 20443

Kérdésem volna.

Van egy megosztott file amibe két helyről léphetnek be a dolgozók és kétféle lehetőségük van a filebe írni, azaz két oszlopba csoportba írhatnak de úgy, hogy mondjuk az egyik az A-C másik társaság a D-F oszlopba. Hogyan tudom megkülönböztetni őket illetve az ehhez szükséges paraméterek hogyan kérdezem le?

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

szláj70 Creative Commons License 2013.02.18 0 0 20442

Kedves Segítők!

Köszönöm az eddigi segítséget, amivel rávezetődtem dolgokra. Most ismét megakadtam:

Szeretném, ha egy cellába megjelenne az adott munkafüzet neve. Ez eddig nem nagy probléma, bár csak a teljes útvonalas függvény akar működni, de nem nagy baj, megoldható másképpen is, de...

Szeretném elérni, hogy egy másik munkafüzetből, (Napi kocsikiadás KIVONAT.xls”) EBBE, a naponta (a dátummal változó) változó nevű („KIR ”+dátum elnevezésű) munkafüzetbe másoljon át adatokat.

Próbáltam így:

Sub Makró5()

'

' Makró5 Kocsikiadás bemásolás

'

 

'

    Windows("Napi kocsikiadás KIVONAT.xls").Activate

    Range("B3:L48").Select

    Selection.Copy

    Windows("KIR " & j5 & ".xlsm").Activate

    ActiveWindow.SmallScroll Down:=-3

    Range("C10:M55").Select

    ActiveWindow.SmallScroll Down:=-39

    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _

        xlNone, SkipBlanks:=False, Transpose:=False

    ActiveWindow.SmallScroll Down:=-3

    Range("A16").Select

End Sub

 

Nem sikerült, majd írtatok másikat Nekem, amibe behelyettesítettem a nevet (tán nem jól?) és így sem jó.

Sub Kocsikiadas()

    Windows("Napi kocsikiadás KIVONAT.xls").Activate

    Range("B3:L48").Copy

    Windows("KIR " & j5 & ".xlsm").Activate

    Range("B" & Cells(Rows.Count, "A").End(xlUp).Row + 4).Select

    Selection.PasteSpecial Paste:=xlPasteValues

    Selection.PasteSpecial Paste:=xlFormats

    Range("A16").Select

    Application.CutCopyMode = False

End Sub

Mi lehet a baj? „subscript out of range” hibával megáll.

Köszi.

 

tbando Creative Commons License 2013.02.18 0 0 20441

viszont veletlenszeruen megcsereli a honapot es napot vagy orat, nem jottem ra.

 

Biztos, hogy véletlenszerűen? Nem esetleg úgy, hogy növekvő sorrendbe rendezi őket? 

Előzmény: pigee (20440)
pigee Creative Commons License 2013.02.18 0 0 20440

Feladtam, tobb orat szenvedtem vele es jo par kepernyokepet lementettem, de nem farasztalak vele titeket.Barmilyen datum formatumot probaltam definialni, beiras utan 1900-as evet alapul veve ev.ho.nap ora.perc formatumra irja at, csak megjelenitesnek hasznalja az altalam beirt 4-5 karakteres format, viszont veletlenszeruen megcsereli a honapot es napot vagy orat, nem jottem ra.

Az egerut az egyeni beallitasok kozott 00.00 formatum hasznalata, ami nem datum, tehat figyelni kell a nem letezo datumokra.

Előzmény: pigee (20431)
pimre Creative Commons License 2013.02.17 0 0 20439

Azért utal rá, ha nem is teljesen egyértelműen: http://office.microsoft.com/hu-hu/excel-help/ket-datum-kozotti-kulonbseg-kiszamitasa-HP003056111.aspx

 

A leírás alatt ott áll a szöveg: " MEGJEGYZÉS:    A dátumoknak számként való megjelenítéséhez jelöljük ki a cellát, majd válasszuk a Formátum menü Cellák parancsát. A Szám panellapon a Kategória mezőben kattintsunk a Szám elemre."

Előzmény: tbando (20438)
tbando Creative Commons License 2013.02.17 0 0 20438

Asszem fején találtad a szöget.  Úgy történhetett, ahogy írtad. Úgy gondolhatták, hogy a dátumkülönbségre nem szűkséges külön képletet kreálni, mert minek, amikor egy sima kivonással megoldható. Míg a networkdays számítása lényegesen komplikáltabb. 

 

De az egy kicsit mulatságos, ahogy sunyin elkenik a súgóban a formátumváltás szükségességét. 

Előzmény: pimre (20437)
pimre Creative Commons License 2013.02.17 0 0 20437

A networkdays az Analysis toolpack része. Feltehetően későbbi szerzemény, mint az Excel eredeti elképzelése. És ott már talán gondoltak erre, és arra, hogy ha már a nevében szerepel, hogy days, azaz napok, akkor talán célszerű az eredményt - a napok számát - numerikusan megjeleníteni.

Előzmény: tbando (20436)
tbando Creative Commons License 2013.02.16 0 0 20436

A networkdays számításnál is két dátum operandust kap, oszt általános formátumban adja  vissza az eredményt. Sőt, mint írtam az excel sugójában megadott dátumkülönbség mintapéldában is. Ezért gondolom, hogy kell lennie valamilyen beállítási lehetőségnek is.  

Előzmény: Sánta Kutya (SK) (20434)
tbando Creative Commons License 2013.02.16 0 0 20435

Akkor csaka feltételes rangeket másold. Természetesen csak ott ahol a többi formátum beállítás is egyezik. Bár ami azt illeti, gyakran egyszerübb a nem feltételes formátumok újbóli beállítása, mint a feltételesé. 

Előzmény: Sánta Kutya (SK) (20432)
Sánta Kutya (SK) Creative Commons License 2013.02.16 0 0 20434

Miért? Egyszerűen így működik. Talál két azonos formátumú operandust a műveletben, és beállítja az eredményt is arra a formátumra. Ez majdnem mindig kényelmes is, pont a dátum kivétel. Nem hiszem, hogy érdemes sok energiát fektetni ebbe, át kell állítani, ez van.

Előzmény: tbando (20433)
tbando Creative Commons License 2013.02.16 0 0 20433

Hogy nem reagált senki, az azt jelenti, hogy a dátumkülönbség formátumát nem lehet beállitásilag  változtatni?  Elég hihetetlennek tűnik.

Előzmény: tbando (20395)
Sánta Kutya (SK) Creative Commons License 2013.02.16 0 0 20432

Ja, csak nem mindig passzol olyan lapoknál, amelyek más tekintetben egészen különböző formázásúak.

Előzmény: tbando (20430)
pigee Creative Commons License 2013.02.16 0 0 20431

Ezeket probaltam, nem mukodott. Latom, most makroztok, jovo heten beirok egy osszefoglalot, mire jutottam.;)

Előzmény: pimre (20387)
tbando Creative Commons License 2013.02.16 0 0 20430

Azt sem tudom, miért nem lehet több kijelölt munkalapra egyszerre feltételes formázást beállítani, és miért kell egy 22 fülű munkafüzeten egyenként végigmennem undorító kulimunkával.

 

A ctrl+c + beillesztes formátum  másolja a feltételes formázást is. Ha a beillesztésre több munkalapot jelölsz ki, akkor egy füst alatt mindegyikre.

Előzmény: Sánta Kutya (SK) (20428)
Retro Image Creative Commons License 2013.02.16 0 0 20429

Na közben kicsit pontosítottam az előzőleg jelzett érdekességet.

Nem arról van szó, hogy 32775 vagy 32776 sor, hanem hogy mennyit kell egyszerre elrejteni.

Ez a kulcs sor:

Rng.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

Ez olyan tartomnányt jelöl ki és rejt el, amely nem feltétlen összefüggő. Ha a tartomány több mint 8192 résztartományból áll, akkor produkálja a hibát.

Tehát ha pl. minden 4. sor megfelel az elrejtés kritériumának, (mint a teszttáblázatomban,) akkor a 8193. elrejtendő sor a 32776-os, és itt már fejreáll az Excel.

Ahol az elrejtendő sorok szomszédosak, az összefüggő résznek számít, tehát akkor több sort tud elrejteni egyszerre.

Nemtom mennyire érthető.

 

Ami a másik dolgot illeti. Írtam egy progit a feltételes formázások másolására. Talán tudod majd használni.


Sub CopyConditionalFormat()
   Dim wsSrc As Worksheet, wsCur As Worksheet, Rng As Range, c As Range
   
   Set wsSrc = ThisWorkbook.Worksheets("Innen kell másolni")
   Set Rng = wsSrc.Cells.SpecialCells(xlCellTypeAllFormatConditions)
   For Each wsCur In ThisWorkbook.Worksheets
      If wsCur.Name <> wsSrc.Name Then
         For Each c In Rng
            c.Copy
            wsCur.Range(c.Address).PasteSpecial xlPasteFormats
         Next
      End If
   Next
End Sub

Előzmény: Sánta Kutya (SK) (20428)
Sánta Kutya (SK) Creative Commons License 2013.02.16 0 0 20428

Nekem Excel 2007-ben, egy megosztott munkafüzet egyik lapján, nagyságrendben 60-80 sornyi adaton 4-5 másodperc. Én abban a hitben éltem, hogy ekkora adatmennyiséggel bármilyen interpretált programnak is szemvillanás alatt kéne végeznie.

 

Kedden tudom kipróbálni, köszi! Ezt a megközelítést nem ismertem.

Hiába programozom ezer éve, az Excel az más, Kovalcsikot annak idején nem vettem, mert nem hittem, hogy kelleni fog, most meg antikváriumban is csak előjegyezni lehet, így nincs egy átfogó képem a lehetőségekről, hanem hályogkovács módjára próbálom megvalósítani az elképzeléseimet. Az én scriptem BASIC-személetű, a tiéd excelesebb.

 

Egyébként érdekes kihívás fejleszteni egy olyan táblázatban, amit megosztva egész nap használhatnak négyen, de csak megosztás nélkül lehet látni a makrókat. Nem is tudom, miért van ennyi korlátozás az Excelben a megosztott füzetekre.

Azt sem tudom, miért nem lehet több kijelölt munkalapra egyszerre feltételes formázást beállítani, és miért kell egy 22 fülű munkafüzeten egyenként végigmennem undorító kulimunkával.

Előzmény: Retro Image (20427)
Retro Image Creative Commons License 2013.02.15 0 0 20427

Mit értesz az alatt, hogy "kegyetlen lassú"? Lefuttattam a kódodat, 61440 soron, és 10 másodperc volt :o)

Azért összeraktam én is egyet, íme:

 

Sub b()
   Dim EndCell As Range, Rng As Range, LastCol As Range
   
   Set LastCol = Cells(1, Columns.Count).EntireColumn
   Set EndCell = Range("A:A").Find(what:="XXX", After:=Range("A4"), LookIn:=xlValues, lookat:=xlWhole)
   If EndCell Is Nothing Then Exit Sub
   Set Rng = Range("A4").Resize(EndCell.Row - 4)
   Set Rng = Intersect(Rng.EntireRow, LastCol)
   Rng.Formula = "=IF(OR(A4=""Eladások"",B4=""ÖSSZESEN"",B4=""valami""),1,SUM(G4,I4,K4,M4,O4))"
   Rng.Copy
   Rng.PasteSpecial xlPasteValues
   Application.CutCopyMode = False
   Rng.Replace what:="0", replacement:="", lookat:=xlWhole
   Rng.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
   Rng.ClearContents
   Range("A1").Activate
End Sub

Szerintem elég gyors, de van egy szépséghibája. Ha az "XXX" az A32776 cellában van, vagy annál lejjebb, akkor mintent eltüntet, nem csak azokat a sorokat, amiket kellene.

Ha az "XXX" az A32775 cellában van vagy feljebb, akkor jól működik.

 

Az igazat megvallva kicsit el vagyok képedve ettől a viselkedéstől, és ha valaki rá tudna világítani a titok nyitjára, azt felállva megtapsolnám :o)

Amúgy Excel 2003 alatt tapasztaltam a fentieket.

Előzmény: Sánta Kutya (SK) (20426)
Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20426

Tetszetős, köszönöm!

Előzmény: SQLkerdes (20425)
SQLkerdes Creative Commons License 2013.02.15 0 0 20425

Nézd meg még ezt a cikket, elég jónak tűnik:  http://www.excelitems.com/2010/12/optimize-vba-code-for-faster-macros.html

Előzmény: Sánta Kutya (SK) (20410)
Törölt nick Creative Commons License 2013.02.15 0 0 20424

Az nem feltétlenül. Pár példa ilyen "eseményre":

- megváltozik a cellakijelölés

- megváltoztatod egy cella tartalmát

- megnyitod a munkafüzetet,

- bezárod

- elmented

- duplakattintás

- kattintás jobb egérgombbal

- stb.

 

Meg tudod nézni ezeket, ha bemész a munkalap vagy a munkafüzet kódablakába és a lenyíló menüt böngészed. Ld. kép.

Előzmény: Sánta Kutya (SK) (20419)
SQLkerdes Creative Commons License 2013.02.15 0 0 20423

Hát akkor nem tudom.  Lehet, hogy sok oszlopd meg sorod van, azért lassú.

Előzmény: Sánta Kutya (SK) (20414)
Tie Creative Commons License 2013.02.15 0 0 20422

Ez egy ilyen szakma. :)

Ment mail.

Előzmény: Delila10 (20421)
Delila10 Creative Commons License 2013.02.15 0 0 20421

Jó lenne, ha megadnád a címedet, mert lesznek itt bajok.

Csak belekukkantottam, és már 2 lapot is találtam, ahol nem azonos sorban kezdődnek az adatok, mint a többi lapon.

 

Van lapod bőségesen!

Előzmény: Tie (20420)
Tie Creative Commons License 2013.02.15 0 0 20420

Áttoltam toldacuccottal.

Előzmény: Delila10 (20415)
Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20419

Köszi! Ezek szerint a gombnyomásra induló makró kötelezően az Excel Objectsbe kerül.

Előzmény: Törölt nick (20418)
Törölt nick Creative Commons License 2013.02.15 0 0 20418

Excel Objects-ben van a munkalapoknak meg a munkafüzetnek a kódablaka. Ide lehet úgynevezett "event macro"-kat is írni, ami akkor fut le, ha az adott munkalapon vagy munkafüzetben valamilyen "esemény" történik. A modulokba ilyet nem lehet. Ha nem event macro, akkor viszont érdemes modulba rakni, mert akkor lehet tudni, hogy ott van a script.

Előzmény: Sánta Kutya (SK) (20417)
Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20417

Izé, mi a különbség a makróablakban az Excel Objects és a Modules között? Rémlik, hogy volt egyszer fogalmam róla...

Delila10 Creative Commons License 2013.02.15 0 0 20416

Ennek örülök, szívesen.

Előzmény: KelemenGy (20408)
Delila10 Creative Commons License 2013.02.15 0 0 20415

Az a makró nem követhetett el ilyen gyalázatot.

Küldd el a füzetet!

Előzmény: Tie (20413)
Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20414

Elvileg csak számtani függvények vannnak, a szumha a legbonyolultabb, és egyáltalán nem gyorsít (sőt, még picit lassabbnak is tűnt). Köszi a tippet!

 

Előzmény: SQLkerdes (20412)
Tie Creative Commons License 2013.02.15 0 0 20413

De azt nem én másoltam oda, az akkor került oda, amikor lefuttattam a makrót, azt a makró pakolta oda. Mint ahogy a makró törölte üresre az 11-es sor fölötti dolgokat is.

Előzmény: Delila10 (20402)
SQLkerdes Creative Commons License 2013.02.15 0 0 20412

Én a screenupdate-mellé még beraknék egy Application.Calculation = xlCalculationManual-t és a kód végén állítanám vissza automatikusra.

 

Nekem volt, hogy már csodát tett.  Bár a makród nem ad semmi input-ot a munkalapnak, de a .hide a volatilis függvényeket (ha vannak ilyenek a munkalapon) újraszámoltatja, ami akár durván is lelassíthatja a futást.

 

Próbáld ki, bajod nem lehet belőle.

Előzmény: Sánta Kutya (SK) (20410)
pirxike Creative Commons License 2013.02.15 0 0 20411

Sziasztok. 

 

Szükségem lenne egy olyan makróra, amely excel-ben egy munkalapon megkeresi az összes 0-át, ( de csak azokat a cellákat, amik semmi más számot, csa 1 db nullát tartalmaznak) és kitörli, majd a munkalapot csv formátumba elmenti, de úgy, hogy az első oszlopot kihagyja belőle. 

 

Ha vki tudna egy ilyet írni nekem, azért nagyon hálás lennék.

Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20410

Nem baj, hozzáadtam egy szöveges feltételt.Köszi!

 

Most így néz ki:

    Application.ScreenUpdating = False
    i = 4
    Do While Cells(i, 1) <> "XXX"
        If Cells(i, 1) <> "Eladások" And Cells(i, 2) <> "ÖSSZESEN" And Cells(i, 2) <> "valami" Then
            s = 0
            For j = 7 To 15 Step 2
                Rem On Error Resume Next
                If IsNumeric(Cells(i, j)) Then
                    s = s + Cells(i, j).Value
                End If
            Next j
            If s = 0 Then
                Rows(i).Hidden = True
            End If
        End If
        i = i + 1
    Loop
    Application.ScreenUpdating = True

Működik, de kegyetlen lassú. Meg lehet ezt gyorsítani valahogy?

Előzmény: Sánta Kutya (SK) (20409)
Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20409

Majdnem jó, csak úgy látszik, a dátumos sort is eltünteti. Pedig szerintem nem nulla dátumok vannak benne...

Előzmény: Delila10 (20406)
KelemenGy Creative Commons License 2013.02.15 0 0 20408

Örök hálám! Így már teljesen azt teszi, amit szeretnék.

Előzmény: Delila10 (20405)
Delila10 Creative Commons License 2013.02.15 0 0 20407

A végéről lehagytam egy zárójelet. :(

Előzmény: Delila10 (20405)
Delila10 Creative Commons License 2013.02.15 0 0 20406

if isnumeric(cells(i,j) then  ez csak a "számos" celláknál csinálja azt, amit mondasz neki.

Előzmény: Sánta Kutya (SK) (20403)
Delila10 Creative Commons License 2013.02.15 0 0 20405

Próbáld így:

 

Sub Auto_Open()
    Dim sor%, sorok%, lap%
    
    For lap% = 1 To Worksheets.Count
        Sheets(lap%).Select
        sorok% = Cells.SpecialCells(xlLastCell).Row
        
        'Felfedjük mindegyiket
        Rows("1:" & sorok%).Hidden = False
        
        '4. sortól rejtünk csak ha 2. oszlop értéke hamis
        For sor% = sorok% To 4 Step -1
            If Cells(sor%, 2).Value = "" Then _
               Rows(sor%).Hidden = True
        Next
    Next
End Sub



Előzmény: KelemenGy (20399)
Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20404

Mégsem úsztam meg, került az összegzés elé egy On Error Resume Next, most ronda és lassú, de működik.

Előzmény: Sánta Kutya (SK) (20403)
Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20403

De jó, hogy itt vagy, egy gyors kérdés, hátha megúszom a guglizást:

 

        For j = 7 To 15 Step 2
            s = s + Cells(i, j).Value
        Next j

Ezt kéne átírni, hogy a szöveges cellákat ne vegye figyelembe, mert leáll típushibával.

Az egyik sorban sajnos van pár egyesített cella is az útjában, remélem, kibírja.

Előzmény: Delila10 (20402)
Delila10 Creative Commons License 2013.02.15 0 0 20402

Az A4:E9 tartományt átmásoltad a H14:K19 tartományba, ezzel ott is lett egy egyesített rész, a H14:H17. Az egyesített cellákba nem tudja a makró beilleszteni az egyes lapokról érkező adatokat.

Előzmény: Tie (20401)
Tie Creative Commons License 2013.02.15 0 0 20401

Na de az az összevont mező miért okoz gondot?

Egyrészt az A11-től főfelé van, tehát nem kéne vele foglalkoznia, másrészt meg nincs az A mezőjében 'A' érték, tehát megint csak nem kéne vele foglalkoznia.

Előzmény: Delila10 (20394)
KelemenGy Creative Commons License 2013.02.15 0 0 20400

Még szebb lenne, ha meg lehetne adni, hogy mely lapokon fusson le.

Előzmény: KelemenGy (20399)
KelemenGy Creative Commons License 2013.02.15 0 0 20399

Küzdök a szeren... :)

 

Elvileg ennek a fájl megnyitására automatikusan le kellene futni. Most azokat a sorokat rejti, amit szeretnék, de el kellene érni, hogy ne csak az aktív lapon dolgozzon, hanem minden lapon.

 

Sub Auto_Open()
Dim sor%, sorok%
    sorok% = ActiveSheet.UsedRange.Rows.Count
    For sor% = 1 To sorok% 'Felfedjük mindegyiket
        Rows(sor%).Hidden = False
    Next
    For sor% = 4 To sorok% '4. sortól rejtünk csak ha 2. oszlop értéke hamis
        If Cells(sor%, 2).Value = "" Then _
           Rows(sor%).Hidden = True
    Next
End Sub

Sánta Kutya (SK) Creative Commons License 2013.02.15 0 0 20398

Megosztott munkafüzet, user elrejti a sorokat, elmenti, egy emelettel feljebb megnyitva a rejtett sorok felfedv jelennek meg. Hogy lehet? Excel 2007.

KelemenGy Creative Commons License 2013.02.15 0 0 20397

Lemaradt: a 20383-ra válaszoltam az imént.

Előzmény: KelemenGy (20396)
KelemenGy Creative Commons License 2013.02.15 0 0 20396

Úgy látom, hogy nem jó makróval próbálkoztam én eddig a leltárlistámmal.

Valami ehhez hasonló kigyűjtés kéne nekem is.

Alapból olyan a lista,, hogy adott sheeten van egy pár (3) soros fejléc + rovatfej, majd az adatok.

Ilyen a fej:

Sorszám / HETK (ez egy kódszám) / Megnevezés / Mennyiség / Mennyiségi egység / Azonosító / Helység szám

Tulajdonképp helységenként kell kigyűjtenem külön sheetekre az összesítőben lévő sorokat. Az utolsó oszlop adja meg, hogy az adott sornak hol a helye.

tbando Creative Commons License 2013.02.14 0 0 20395

Két dátum különbségét az excelem konzekvensen dátumformában adja meg, ami elég zavaró. És babrás, hogy a korrekt eredményért a cellaformátumot manuálisan kell átváltanom általános számformátumra. Nincs arra valami beállítás, hogy ez szükségtelen legyen? 

 

Megjegyzem a networkdays használatánál magától átvált, és az excel súgójában adott dátumkülönbség példa szerint is meg kéne történnie a formátumváltásnak. De nálam nem csinálja. Mit lehet tenni, hogy csinálja?

Delila10 Creative Commons License 2013.02.14 0 0 20394

A mostani képed szerint működnie kell a makrónak. Gyomláld ki azt a fránya összevonást.

Figyelj rá, hogy az adatok a 11. sorban kezdődnek.

Előzmény: Tie (20392)
Tie Creative Commons License 2013.02.14 0 0 20393

Látom, miről beszélsz.

A makró futtatása után a H14-H17 valóban összevont cella lett... az főleg érdekes, hogy az ott hogy jött létre, hiszen a makró futtatása előtt ott még nem volt olyasmi, azt valami oknál fogva valamelyik keresés alá vetett tábláról vehette át... vagy nem tudom...

Előzmény: Delila10 (20390)
Tie Creative Commons License 2013.02.14 0 0 20392

Az adattáblák, amikből keresni és kinyerni kell, azok így néznek ki pl.

 

Az adatsorok szigorúan egymás után jönnek, nincsenek köztük foghíjak, de minden oldalon az első adatsor a 12. sor. A fölötte lévő dolgok magukat az oldalakat különböztetik meg.

 

Előzmény: Tie (20391)
Tie Creative Commons License 2013.02.14 0 0 20391

h14:17 nem összevont cellák. Széltében össze vannak vonva, minden sorban, pl. a D12:H12, D13:H13 és így tovább.

 

Az adatok valóban az A12-K69 tartományban vannak, de nem az ASSET LIST sheeten, hanem az összes többin. Azok pont ugyanígy néznek ki, azokról kéne ugye az 'A' oszlopban az A12-től lefelé lévő mezőkben A értéket tartalmazó sorokat kilopni, és összesíteni mindet egymás után az ASSET LIST sheeten.

 

"Meg lehet azt is oldani, csak lassúbb lesz, mert minen lapon minden sor A oszlopát egyenként kell vizsgálni, hogy megfelel-e a feltételnek."

 

Hát, igen, épp ez lenne a cél. Minden lapon az A12-K69 tartományon belül az A oszlop minden mezőjét egyenként megvizsgálni, és ha valahol "A" érték van, akkor a hozzá tartozó teljes sort copyzni az ASSET LIST lap A12-K1000 tartományában a következő szabad sorba. De csak azokat, olyan sorokat, amiknél az A oszlop mezője nem tartalmaz "A" értéket (és csak azt, tehát ha bármi mást tartalmaz, akkor nem kell), azokat nem kívánjuk másolni.

Előzmény: Delila10 (20390)
Delila10 Creative Commons License 2013.02.14 0 0 20390

Az összevont cellák is okozhatják a hibát. Ha jól látom, a H14:H17 cellákat összevontad, de lehet, hogy csak a formázás miatt néz úgy ki. A vízszintesen összevont D11:H11 és D12:H12 sort simán átmásolja.

 

Az adatokat a A12:K69 tartományba írod egy előbbi hsz-edben, de a kép szerint a 12-es az utolsó kitöltött sor. A szűrő addig szűr, míg a tablázatban nem talál egy teljesen üres sort, az alatta lévő sorokat külön táblázatnak értelmezi.

 

Ha ilyen foghíjasak a táblázatok az egyes lapokon, tejesen más makró, nem szűrésen alapuló kell hozzá. Meg lehet azt is oldani, csak lassúbb lesz, mert minen lapon minden sor A oszlopát egyenként kell vizsgálni, hogy megfelel-e a feltételnek.

Előzmény: Tie (20389)
Tie Creative Commons License 2013.02.14 0 0 20389

 

Na, lehet,h ogy én csinálok valamit rosszul...

 

 

Így néz ki a cél-táblám a makró futtatása előtt:

 (ez az asset list nevű fül, a fülek között a második, ezért a for lap = után a 2-t 3-ra változtattam, és  az if lap = -nél is)

 

Így pedig a makró futtatása után:

 

 

A makró az alábbi (a gyűjtőket írtam át benne assetlistre, és az A1-et A11-re, ahogy javasoltad.

 

Az A jelű tesztadatokat ki is másolja, de csak az első keresendő tábláról, aztán az általam vastagon szedett sornál 1004 hibával (cannot change a part of a merged cell) leáll, és nem lép tovább a második keresendő táblázatra.

 

 

Valamint ugye az is probléma, hogy a fejléc részét is üresre törli a céltáblázatnak, meg utána beszúr még olyan dolgokat, amiket nem kéne, ahogy látszik is.

 

Sub ASSETLIST()
     Dim Rng As Range, lap As Integer, usorGy As Integer
    Application.ScreenUpdating = False
    
    Sheets("ASSET LIST").Columns("A:K") = ""
    
    For lap = 3 To Sheets.Count
        Sheets(lap).Select
        If lap = 3 Then Rows(11).Copy Sheets("ASSET LIST").Range("A11")
            
        Selection.AutoFilter Field:=1, Criteria1:="A"
        Set Rng = Range("A12:K69")
        Set Rng = Rng.SpecialCells(xlCellTypeVisible)
        usorGy = Sheets("ASSET LIST").Cells(Rows.Count, "A").End(xlUp).Row + 1
        Rng.Copy Sheets("ASSET LIST").Range("A" & usorGy)
    Next
    
    Sheets("ASSET LIST").Select
    Application.ScreenUpdating = True
End Sub

Előzmény: Delila10 (20384)
pimre Creative Commons License 2013.02.14 0 0 20388

Off: "formátumozni" Ez csúnya volt tőlem. Formázni lett volna a helyes kifejezés.

Előzmény: pimre (20387)
pimre Creative Commons License 2013.02.14 0 0 20387

Szerintem próbáld meg a cellákat beírás előtt formátumozni. A cellaformátumnál válaszd az egyénit, és ezen belül a hh.nn szöveget írd a formátumkód mezőbe! A magyar office-nak ezt értenie kellene. (Ha angol lenne az office, akkor feltehetőleg a mm.dd kellene).

Ezzel azt éred el, hogy úgy a hónapok, mint a napok két karakterrel kerülnek a cellákba. Fenn a szerkesztőlécen ugyan az év is megjelenik, de gondolom, ez nem baj.

Előzmény: pigee (20385)
default6 Creative Commons License 2013.02.14 0 0 20386

Köszönöm a választ, ezekkel tényleg jobb lesz

Előzmény: tbando (20372)
pigee Creative Commons License 2013.02.14 0 0 20385

Bocsanat, most massal voltam elfoglalva. :-(

Igen, ilyenek nalam is vannak, de ezek szokozt hagynak maguk utan es beiras utan atvaltoznak mas adatra. Tartok tole, hogy azert, mert az oprendszer angol, es hiaba magyar office van rajta, es magyar sema beallitva, valami nem tetszik neki.

Olyat szeretnek, ami fix 5 karakteren hozza egymas alatt a "01.01" - "12.31" sort.

Ha beszenvedem a nalad levo elso adatot, az ilyeneket ir:

"3. 4"

"5. 21"

"11. 2"

"12. 30"

azaz 2 karakteres elteresu hullamzo oszlop a vegeredmeny, es egyesevel kell gepelnem, es figyelnem, hogyan valtozik, mert a szerkeszto mezoben mindig "1900. 3. 4" jelenik meg. :-((

 

Előzmény: _Nyuszi (20271)
Delila10 Creative Commons License 2013.02.14 0 0 20384

Az If lap = 2 Then Rows(11).Copy Sheets("Gyűjtő").Range("A1") sorban az A1-et írd át A11-re.

Előzmény: Delila10 (20383)
Delila10 Creative Commons License 2013.02.14 0 0 20383

Ha a címsorod van a 11. sorban, akkor változatlanul használhatod a makrót, ha az első, adatot tartalmazó sor a 11., akkor a  Set Rng = Range("A12:K69") sorban a 12 helyett írj 11-et.

 

Sub A_kigyujtes()
    Dim Rng As Range, lap As Integer, usorGy As Integer
    Application.ScreenUpdating = False
    
    Sheets("Gyűjtő").Columns("A:K") = ""
    
    For lap = 2 To Sheets.Count
        Sheets(lap).Select
        If lap = 2 Then Rows(11).Copy Sheets("Gyűjtő").Range("A1")
            
        Selection.AutoFilter Field:=1, Criteria1:="A"
        Set Rng = Range("A12:K69")
        Set Rng = Rng.SpecialCells(xlCellTypeVisible)
        usorGy = Sheets("Gyűjtő").Cells(Rows.Count, "A").End(xlUp).Row + 1
        Rng.Copy Sheets("Gyűjtő").Range("A" & usorGy)
    Next
    
    Sheets("Gyűjtő").Select
    Application.ScreenUpdating = True
End Sub

Előzmény: Tie (20382)
Tie Creative Commons License 2013.02.14 0 0 20382

Mit változtassak a makrón, ha azt szeretném, hogy minden keresett oldalon csak az A11:A69 sorokban keresse az A-kat? (gyakorlatilag az A11:K69 területen vannak az adatok) A felette lévő dolgok nem adatrekordok, csupán egyfajta fejléce a különböző sheeteknek.

 

Ugyanígy, a célsheetnek is van ilyen "fejléce", tehát az eredményül kapott adatrekordokat ott is az A11 lenne az első sor, ahová kapott eredményt írunk be.

Előzmény: Delila10 (20380)
Tie Creative Commons License 2013.02.14 0 0 20381
Sorry, igen, az aktuális munkafüzetben van a cél sheet is.

Köszönöm, jövök egy sörrel. :)
Előzmény: Delila10 (20380)
Delila10 Creative Commons License 2013.02.14 0 0 20380

Nem írtad, hogy a kigyűjtés eredménye az aktuális-, vagy egy másik füzetbe kerüljön.

A makrót az első szerint írtam meg. Első lap legyen egy egyelőre üres, Gyűjtő nevű.

 

Sub A_kigyujtes()
    Dim usor As Integer, Rng As Range, lap As Integer, usorGy As Integer
    Application.ScreenUpdating = False
    
    Sheets("Gyűjtő").Cells = ""
    
    For lap = 2 To Sheets.Count
        Sheets(lap).Select
        If lap = 2 Then Rows(1).Copy Sheets("Gyűjtő").Range("A1")
            
        Selection.AutoFilter Field:=1, Criteria1:="A"
        usor = Cells(Rows.Count, 1).End(xlUp).Row
        Set Rng = Range(Rows(2), Rows(usor))
        Set Rng = Rng.SpecialCells(xlCellTypeVisible)
        usorGy = Sheets("Gyűjtő").Cells(Rows.Count, "A").End(xlUp).Row + 1
        Rng.Select
        Selection.Copy Sheets("Gyűjtő").Range("A" & usorGy)
    Next
    
    Sheets("Gyűjtő").Select
    Application.ScreenUpdating = True
End Sub

 

Előzmény: Tie (20379)
Tie Creative Commons License 2013.02.14 0 0 20379

Sziasztok, az alábbi feladatra keresem a megoldást Excel 2010-ben.

 

Adott egy táblázat, amiben van több lapfül.

Minden lapfül tartalmaz adatokat, az alábbi elrendezésben

 

Attribútum | Név | PO | Megnevezés | Code | HUF | USD

 

Minden lapfülön azonos strukturában tároljuk az adatsorokat.

 

A feladat az, hogy mindegyik lapfülről kigyűjtsük azokat az adatsorokat, amelyeknek az Attribútum mezőjében 'A' érték található (ebben a mezőben igazándiból csak igen-nem állapot van, tehát vagy üres a mező, vagy tartalmaz 'A'-t), és ezeket az adatsorokat a többi mezőjével együtt kimásoljuk egy másik lapfülre.

 

Ha manuálisan csinálnám, úgy csinálnám, hogy auto-szűrővel leszűröm az attribútum mezőre, majd a kapott szűrt táblát CTRL-C - CTRL-V-vel átmásolom arra a lapfülre, ahol szeretném látni őket. Hangsúlyozom, az ÖSSZES lapfülről szeretném összeszedni a keresett adatsorokat.

 

Megúszom-e én ezt makró nélkül, van-e valami függvény, vagy más megfejtés erre?

szláj70 Creative Commons License 2013.02.13 0 0 20378

Köszi, mindenkinek a válaszokat, most értem haza, a munkahelyi gépen produkálta a lentieket, itthon is lepróbálom.

Előzmény: tbando (20377)
tbando Creative Commons License 2013.02.13 0 0 20377

Ha csak így nem. 

 

És az hogy lehet, hogy a rejtett sor cellájának sima Copy/Paste-je nála rejtett sort eredményez, nálam meg - mint most utólag rájöttem - nem?

Előzmény: Retro Image (20376)
Retro Image Creative Commons License 2013.02.13 0 0 20376

Biztos úgy akar rejtett lapról másolni, hogy

Sheets("Rejtett lap neve").Select

Az meg nem fog menni.

Előzmény: tbando (20374)
Delila10 Creative Commons License 2013.02.13 0 0 20375

Mi nem az igazi? Mik a tünetek?

 

Meg tudod (ha akarod) oldani a közvetlen címzést, ha meghatározod a makróval a beillesztés helyét. Erre írtam a példát, ami megállapítja, hogy az utolsó kitöltött sorod a 13, és ez alá 4-gyel kell beszúrnod a következő adatodat.

Előzmény: szláj70 (20369)
tbando Creative Commons License 2013.02.13 0 0 20374

Ha rejtett sort másolsz és nem akarod, hogy a másolat is rejtett legyen, akkor az irányitott beiilesztés képlet/értéke-t használd.

 

Azt nem értem, hogy a rejtett lapról miért nem tudsz másolni. Nálam minden további nélkül megy. Sőt, a legnagyobb meglepetésemre a sima Paste a rejtett lap rejtett sorait sem rejtve másolta.

 

Az nem képzelhető el, hogy hibásan írtad be a lap nevét?

Előzmény: szláj70 (20369)
Retro Image Creative Commons License 2013.02.13 0 0 20373

Meg lehet csinálni, amit akarsz, de én személy szerint pl. lusta vagyok tesztkörnyezetet kreálni a problémádnak.

Tölts fel valahová egy minta munkafüzetet, vagy küldd el email-ben.

Előzmény: szláj70 (20371)
tbando Creative Commons License 2013.02.13 0 0 20372

Tudtommal nem lehet. De a HELYETTE vagy a CSERE függvény alkalmazásánál nem vált át dátumra. Aztán a módosított oszlop visszamásolható az eredeti oszlopra.

Előzmény: default6 (20368)
szláj70 Creative Commons License 2013.02.13 0 0 20371

A forrás állandó, de a cél az változó lenne, így nemigen tudom, hogy tudnám.

 

Előzmény: SQLkerdes (20370)
SQLkerdes Creative Commons License 2013.02.13 0 0 20370

Próbáld meg elkerülni a másolást-beillesztést és közvetlenül címezd meg a forrás és a cél cellákat.

Előzmény: szláj70 (20369)
szláj70 Creative Commons License 2013.02.13 0 0 20369

Köszi, de sajnos nem az igazi.

Más:

Érdeklődöm, megoldható-e, hogy makróval rejtett sorból, netán rejtett munkalapról másolhassak ki cellákat.

Ha rejtett sorból másolom ki, akkor a beillesztés után is rejtett lesz, ha rejtett munkalapról próbálom, akkor hibát jelez, mert nem találja a lapot.

Előre is köszi.

Előzmény: Delila10 (20338)
default6 Creative Commons License 2013.02.13 0 0 20368

sziasztok, a bajom a következő:

beírom egy cellába pl 13/1/2 Eleve szövegként formázom hogy ne csináljon belőle dátumot mert ez valamilyen pozíció, pl raktári sorok oszlopok polcok száma. Eddig jó. Amikor viszont "csere" funkcióval le akarom  mondjuk cserélni a 13 at 14 re akkor az eredményt dátumként formázza és 2014.01.02 -t ír be. Miért akar mindenképp dátumot csinálni mindenbő?

Persze megoldja aproblémát ha aposztróffal kezdem pl '13/1/2 de nem lehetne alapból kikapcsolni azt a funkciót hogy mindenből dátumot próbáljon csinálni? Elég idegesítő.

<Tycoon> Creative Commons License 2013.02.12 0 0 20367

köszi, ez már megy, szupi, csak én beszúrást nyomtam jobbra tolás helyett

Előzmény: pimre (20365)
pimre Creative Commons License 2013.02.12 0 0 20366

kényelmez helyesen kényelmes

Előzmény: pimre (20365)
pimre Creative Commons License 2013.02.12 0 0 20365

Akkor még egyszer ugorjunk neki: Felejtsd el, hogy oszlop beszúrással akarj cellákat beszúrni! Válaszd külön magadnak a két fogalmat. Az oszlop beszúrást (vagy törlést) a cellák beszúrásától (vagy törlésétől). Amit Te akarsz, az cellák beszúrása az alsó oszlopokba a 21. sortól kezdődően. Tehát a 21. sortól lefelé kijelölöd az összes cellát (abban az oszlopban, amelyik elé be akarsz szúrni), majd az egér jobb gombjával a beszúrást választod. Erre megkérdezi, hogy mi legyen a beszúrás módja. Ekkor válaszd azt, hogy cellák eltolása jobbra! És láss csodát, beszúródott egy új oszlop, miközben a felső rész maradt.

 

Egy kis elmélet: A sorok és oszlopok rögzítése nem azt jelenti, hogy nem tudod módosítani (beszúrás/törlés), hanem azt, hogy a képernyőn rögzül, miközben lapozol. Más szóval a fejléc, vagy a bal oldali oszlopok egy része mindig látható. Nagy segítség ez, ha több oldalas táblázattal dolgozol.

 

Megjegyzés: A ctrl +, vagy hasonló megoldást nem ismerem. Ettől még létezhet, de én nem találkoztam vele.

 

Még valamit: Ha az a gond, hogy a fent leírt módszer nem kényelmez, mert a táblázat több ezer soros, és nehézkes a 21. sor alatti cellák kijelölése, arra is ven megoldás. Csak most itt nem akarom bonyolítani, de ha kell, majd elmondom. 

Előzmény: <Tycoon> (20362)
tbando Creative Commons License 2013.02.12 0 0 20364

Nem elég felosztanod a táblát. A törlendő cellákat ki is kell jelölni. Ahogy egyébként pimre írta is. 

Előzmény: <Tycoon> (20363)
<Tycoon> Creative Commons License 2013.02.12 0 0 20363

Nem tudom leírni túl érthetően, szóval van egy munkafüzetem, egymás alatt 2 táblázattal.

 

Ha a felső táblába +1 oszlopot kell bevinnem akkor az alsóba is berakja a beszúrásnál, és törlésnél ugyanúgy egyszerre törli az egymás feletti táblázatok celláit, hiába rögzíttetem az ablaktáblát vagy a felosztásban hiába osztom fel a két táblázatot.  

 

Valami ötlet esetleg volna erre?

Előzmény: <Tycoon> (20362)
<Tycoon> Creative Commons License 2013.02.12 0 0 20362

Szia, én bárhogy rögzítem a felső 20 sor ablaktábláját, ha új oszlopot akarok beszúrni akkor felül is meg alul is bezeszúrja.   Pedig még nagyon régen tudtam hogy hogy lehet megoldani hogy csak alulra vagy felülre szúrja be valami ctr és + vagy mi volt de most ezen ez sem műlödik :(

Előzmény: pimre (20339)
tbando Creative Commons License 2013.02.12 0 0 20361

A makrós változat ha működik,  annyiban jobb, mint az én feltételes formázásom, hogy eltünteti a szükségtelen sorokat, így megakadályozza a véletlen felülírásukat, pl. ha összegezni kéne valamelyik rubrikát.

Előzmény: pimre (20359)
tbando Creative Commons License 2013.02.12 0 0 20360

Nálam van valami zűr. Roppant meglepő és abszolut érthetetlen.  Ugyanis az van, hogy kattingatással kijelölve nálam is müködik <>HAMIS szűrés. Autófilterrel is, irányítottal is.  Csakhogy van egy default makróm a szűrésre, amit általában használok a kattingatások helyett.  Még a 2003-as excelre csináltam, de müködik a 2007-en is.  Elég univerzális, csak arra kell ügyelni, hogy a táblázataim  a 10-sortól kezdődjenek és a 2. sorba csak kritérium kerülhet

 

Sub keres()

' Billentyûparancs: Ctrl+k

    Range("A10:zz65536").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _

        Range("a1:zz2"), Unique:=False

End Sub

 

Na most ez a makró, miután letoltam a leltáros táblázatot a 10. ik sorra

 

az E oszlop e1:e2 'Me.' és  'db' kritériumára jól szűrt,

a HAMIS-ra szintén,

DE a <>HAMIS-ra süket.

 

Kattintgatva viszont mindhármat korrektül szűrte. Egyszerűen érthetetlen. Ötlete valakinek, hogy miért müködik másképp a kattigatás és a makró? 

 

Aztán kiderült, hogy a <HAMIS sem müködik mindegyik oszlopban, mert az meg a HAMIS 'h'-betűjére szűr. Tehát pont az E-oszlopban gubancol mert ott a 3-ik sorban m-betű van, ami ugyebár nem kisebb mint a h-betű. De hogy még kuszább legyen, csak a makrós változatban. A kattingatósnál egyetlen sor se marad, kiszűri az összest :))).

 

Ha nincs ez a leltáros példa, ki tudja mikor és hogyan derülnek ki ezek?  

 

 

Előzmény: pimre (20356)
pimre Creative Commons License 2013.02.12 0 0 20359

Az If Cells(sor%, 2).Value = Empty Then _  sorban az Empty-t cseréld False-ra, és működni fog.

Előzmény: KelemenGy (20357)
KelemenGy Creative Commons License 2013.02.12 0 0 20358

Ja és persze köszönöm mindenkinek a segítséget! :)

KelemenGy Creative Commons License 2013.02.12 0 0 20357

A szűrés amolyan félautomata módszer, de a semminél mindenképp jobb. A gond ott adódik vele, hogy a leltárlistában, ha bővítem valamelyik helység leltárát, az nem vezetődik rá automatice a helység lapjára, hanem újra kell szűrni. Végső soron megoldás ez is, de az igazi az automata lenne.

 

Kipróbálom ezt a feltételes formázós megoldást is, hátha ez azt csinálja, amit szeretnék.

 

Találtam valahol egy üres sorokat elrejtő makrót is, de az meg nem azt teszi, amit én szeretnék tőle, mert csak a tényleg üres sorokat rejti, nálam meg képlet van a sorokban, ergo nem üres.

 

Ez a makró:

 

Private Sub Worksheet_Change(ByVal Target As Range)

Dim sor%, sorok%

sorok% = ActiveSheet.UsedRange.Rows.Count

For sor% = 1 To sorok% 'Felfedjük mindegyiket

Rows(sor%).Hidden = False

Next

For sor% = 4 To sorok% '4. sortól rejtünk csak ha 2. oszlop üres

If Cells(sor%, 2).Value = Empty Then _

Rows(sor%).Hidden = True

Next

End Sub

 

Ez kb. azt csinálja a ténylegesen üres sorokkal, amit szeretnék. Rá lehet venni, hogy ne a cella tényleges tartalmát (HA függvény), hanem az értékét ("") vizsgálja?

Előzmény: tbando (20353)
pimre Creative Commons License 2013.02.12 0 0 20356

Nálam jól működik. Legalábbis ha az E oszlopba írom, hogy =g4<>1, akkor a 4-6. sorokban hamis az eredmény, a többiben igaz. A szűrést is próbáltam (autoszűrés), és nálam ott is működik. 

 

Előzmény: tbando (20354)
István Gyuri Creative Commons License 2013.02.12 0 0 20355

tbando, köszi a segítséget! :)

Előzmény: tbando (20352)
tbando Creative Commons License 2013.02.12 0 0 20354

Ha pimre képletét használva rászűrsz akármelyik oszlop üres stringet tartalmazó celláira, eltünteti a sorokat.

 

Egy kérdés a fentiekhez.

 

Ha nem használjuk pimre üresstring kiegészítését KelemenGy =HA(leltárlista!$G$4:$G$13=1;leltárlista!A7;"") képletében, akkor ha g4:g13<>1 hamis cella eredményeket ad. A hamis cellákat nem szűri ki a <>hamis kritérium. MIÉRT?

 

Amikor a <Hamis viszont kiszűri?

Előzmény: tbando (20353)
tbando Creative Commons License 2013.02.12 0 0 20353

Ha pimre képletét használva rászűrsz akármelyik oszlop az üres stringet tartalmazó celláira, eltünteti a sorokat.

 

De megoldható feltételes formázással is: Az a4 cellat feltételeses formázod ezzel a képlettel: =a4="", a formátum meg szegélyek nélkül. Majd az a4 formátumot speciális beilesztéssel végigmásolod a táblázatodon. 

Előzmény: KelemenGy (20346)
tbando Creative Commons License 2013.02.12 0 0 20352

Ott tedd be a <>-t, ahol a kritériumokat írod be az A1:A40-be.

 

Az általad citált CriteriaRange:=Sheets("del").Range("A1:A40") nem ír be semmit, csak kijelöli a critériumrange-t. 

Előzmény: István Gyuri (20351)
István Gyuri Creative Commons License 2013.02.12 0 0 20351

Na, de ez a kódon belül hol? Mert az, OK, hogy nem lista esetén a "<>valami" az működik, de itt akárhová teszem be a tagadást, hibát jelez a vba:

 

CriteriaRange:=<>Sheets("del").Range("A1:A40")

CriteriaRange<>Sheets("del").Range("A1:A40")

CriteriaRange:<>Sheets("del").Range("A1:A40")

 

stb.

Előzmény: tbando (20350)
tbando Creative Commons License 2013.02.12 0 0 20350

A megadott kritériumot tagadd a nem egyenlővel. Tehát: <>a kiszedi az összes nem a-t.

Előzmény: István Gyuri (20348)
NeomatiK Creative Commons License 2013.02.12 0 0 20349

Az a helyzet, hogy nem publikus az a forrásoldal. Már megszületett a megoldás (lásd lentebb). Köszönöm  segítséget.

Előzmény: ujszaszy (20342)
István Gyuri Creative Commons License 2013.02.12 0 0 20348

Lehet, hogy kissé láma kérdés, de a neten nem találtam rá megoldást (feltételezve, hogy van...):

Excel-2010-ben (97-2003-as xls-verzióban lementett) táblázatban, VBA-makróban Advanced Filter használatánál kellene segítség, hogy megoldható-e, hogy a megadott kritériumnak NEM megfelelő elemeket szűrje le?

 

A "pozitív" szűréssel semmi gond nincs, pl.:

Sheets("alap").Range("A3:AO131").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("del").Range("A1:A40"), Unique:=False

 

(Azért nem jó a pozitív lekérdezés, mert a megfelelő elemek száma folyamatosan nőhet, míg a nem megfelelőké viszonylag stabil - de legalábbis könnyebb kordában tartani...)

 

NeomatiK Creative Commons License 2013.02.12 0 0 20347

Köszi! Így fogom használni, így már jó!

Előzmény: pippancs (20335)
KelemenGy Creative Commons License 2013.02.12 0 0 20346

Köszönöm! A makró egy picit magas nekem, de a hamis ág kitöltése már segít. Talán valami feltételes formázással rejthetőek a sorok utána.

Előzmény: pimre (20345)
pimre Creative Commons License 2013.02.12 0 0 20345

Ahogy én látom, a HA() függvényednek csak az "IGAZ" ágát töltötted ki, a másikat nem. Javasolnám például a =HA(leltárlista!$G$4:$G$13=1;leltárlista!A7) helyett a =HA(leltárlista!$G$4:$G$13=1;leltárlista!A7;"") képlet használatát. Ez megoldja azt, hogy ne látsszanak az ilyen adatok.

 

Hogy bele se kerüljenek, arra a így kapásból makró nélkül nincs ötletem.

 

Előzmény: KelemenGy (20343)
pimre Creative Commons License 2013.02.12 0 0 20344

Ejnye már! Az előbb magyaráztam el, hogy hogyan lehet cellákat törölni, illetve beszúrni, azaz az általad említett 5 táblázat valamelyikének "oszlopait" a többitől függetlenül kezelni.

 

És ne haragudj meg, de javasolom, hogy először alapszinten tanuld meg az Excel használatát, és ezután fogalmazd meg, hogy mik benne a hiányosságok, melyek azok a megoldások, amelyek "életszerűtlenek"!

Előzmény: <Tycoon> (20341)
KelemenGy Creative Commons License 2013.02.12 0 0 20343

Sziasztok!

 

Kérnék egy kis segítséget, ha lehet :)

 

Van egy ilyen táblázatom:

 

http://data.hu/get/6197647/leltarozo.xlsx

 

Azt már nagyjából megoldottam, hogy a leltárlistából átkerüljenek az adatok a megfelelő helyekre, de azt vajon hogyan lehetne elérni, hogy a "HAMIS" értéket tartalmazó sorok ne látsszanak, esetleg bele se kerüljenek az 1-4-ig számozott lapokra.

 

Végső soron ez egy leltárnyilvántartó lenne, amit szeretnék, ha úgy működne, hogy csak a leltárlista lapon kelljen felvinnem, módosítanom az adatokat, az 1-4-ig lapokat pedig töltse ki az excel automatikusan a megfelelő adattartalommal. Ezek egyébként helységleltárak lesznek. Így 10 tétellel még elbánnék kézzel is, de többszáz tétel van és legalább 15 iroda.

 

Van erre valakinek ötlete? Egyáltalán képes az excel ezt lekezelni?

ujszaszy Creative Commons License 2013.02.12 0 0 20342

Ha nem titkos, esetleg át tudnád küldeni a weboldal címét, ahonnan leszeded az adatokat?

mert kehet, hogy az excel beépített, külső adatok importálása funkcióval sokkal jobban jársz, az ugyanis formázatlan adatokat is képes behúzni

 

Ha nem megy a fenti megoldás, akkor sajnos semmiképpen nem lehet megúszni a plusz oszlopot, de egy segédoszloppal simán működik, ha beteszed az alábbi függvényt a "C" oszlopba

 

=HA(C6<>"Free";HELYETTE(HELYETTE(C6;"€ ";"");".";",")-0;0).

 

Az 1-el való szorzás sem segített :-(


 

 

Előzmény: NeomatiK (20332)
<Tycoon> Creative Commons License 2013.02.12 0 0 20341

Köszi, majd megnézem ezt is.

Azt hittem ilyen alap dolgokat simán lekezel egyszerűbben az excell.

 

Vagy olyan életszerűtlen hogy van mondjuk 5 táblázatod egymás alatt, és abból az egyikből törölni kell adatokat / oszlopokat úgy hogy a többi ne változzon :) :) :)

Előzmény: pimre (20339)
pimre Creative Commons License 2013.02.11 0 0 20340

Ugyanúgy, mint a fejléc rögzítést. Csak ekkor a b4-re állsz, és így rögzíted az ablaktáblát. (És persze ugyanígy lehet 2, 3 stb. oszlopot is rögzíteni)

Előzmény: <Tycoon> (20334)
pimre Creative Commons License 2013.02.11 0 0 20339

"...nekem úgy kéne hogy a felső 30 sor, megmarad fix, az alsóban meg oszlopot szúrok be vagy törlök, akkor a felső nem változik": Ez így közvetlenül idegen az Excel szemléletétől, mert ez oszlop beszúrás, az oszlop beszúrás, nem pedig fél oszlop beszúrás. De 2 lépésben meg tudod oldani, amit akarsz:

 

1. Beszúrod az új oszlopot. (Mondjuk a C oszlop helyére egy új C oszlopot.)

2. A felső részen kijelölöd az új oszlopban azokat a sorokat, amik nem kellenek. (3 soros fejléc esetén a C1:C3 tartományt), majd kéred a cellák törlését (egér jobb gomb), és a kérdésre, hogy hogyan, válaszd az eltolást balra.

 

Elvileg lehetne fordítva, hogy az alsó részen jelölöd ki a fejléc alatt a C oszlop elemeit (a C4-től lefelé az összeset), majd a beszúrást választod, és a kérdésre azt választod, hogy cellák eltolása jobbra. 

Előzmény: <Tycoon> (20333)
Delila10 Creative Commons License 2013.02.11 0 0 20338

Sok módja van az alsó sor kikeresésének. Pl. az

usor = Cells(Rows.Count, "A").End(xlUp).Row eredménye 13 a csatolt kép szerint, mikor az A oszlopban még csak a "Második tartomány" adatai szerepelnek. Az oszlopazonosítók nem szerepelnek a képen, csak feltételezem, hogy az A oszlopban vannak az adataid.

 

Mivel a következő tartományt a 17. sorban akarod kezdeni, a makróba

usor = Cells(Rows.Count, "A").End(xlUp).Row+4 -et írj. Az usor változó értéke lesz a másolás helyének a sora.

 

A másolás egyszerűbb módja:

range("A1:G8").copy range("A" & usor)

Előzmény: szláj70 (20337)
szláj70 Creative Commons License 2013.02.11 0 0 20337
A kép az előzőről lemaradt.
szláj70 Creative Commons License 2013.02.11 0 0 20336

Sziasztok! Az alábbi probléma előtt állok, remélem, tudtok segíteni. A lapon van több, elkülönült tartomány, melyeket gombnyomással szeretnék másolni, mindig a saját típusú tartománya alá.

Ezt makróval próbáltam megoldani, ami sikerült is látszólag, ám amint egy felső tartományt saját maga alá másoltam, az alatta lévők rossz helyre másolódtak, kaotikus lett a kinézete, mivel a makróban a sorok adatai, számai nem illeszkedtek a változásokhoz, ahogy az a normál képletekben megszokott $ jel nélkül.
Szeretném, ha valahogy meg lehetne vizsgáltatni, hol van annak a blokknak, tartománynak a vége, utolsó sora és mindig az alá beilleszteni az új tartományt, melyben a cellákat (a kitöltendőket) ezután törölni is kellene. Jelenleg ilyen az egyik tartomány másoló makrója, de nem jó így.
Sub Makró2()
'
' Makró2 Makró
'

'
Rows("75:84").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=3
Rows("85:85").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll Down:=9
Application.CutCopyMode = False
Range("C86:M86").Select
End Sub


Remélem, érthetően sikerült leírnom, mit is szeretnék, köszönöm segítségeteket.

 

pippancs Creative Commons License 2013.02.11 0 0 20335

Cserénél például a "€ 0.060" -ból a "€ " másold ki a cellából, így beilleszted a Keresett szöveg mezőbe és már tudod  őket cserélni.

Aztán a "." "," csere már jó eredményt ad.

Előzmény: NeomatiK (20332)
<Tycoon> Creative Commons License 2013.02.11 0 0 20334

Ja meg hogy lehet megoldani hgy az első oszlop legyen rögzítve és a felső 3 sor?  Mert most vagy az egyiket vagy a másikat engedi csak :(

Előzmény: <Tycoon> (20333)
<Tycoon> Creative Commons License 2013.02.11 0 0 20333

Ja így rögzíti, de ha az alsó részre szúrnék be mondjuk egy új oszlopot, akkor a felsőbe is beszúródik. 

Szóval nekem úgy kéne hogy a felső 30 sor, megmarad fix, az alsóban meg oszlopot szúrok be vagy törlök, akkor a felső nem változik.

 

Vagy azt nem így kellene valahogy beállítani?

Előzmény: pimre (20323)
NeomatiK Creative Commons License 2013.02.11 0 0 20332

Szia, sziasztok! :) Köszönöm a válaszokat.

Ez a 1-gyel való irányított beillesztéses szorzás nem akar nálam működni. Mert marad az eredeti eredmény, azaz nem akar számmá alakulni. A státusz sorban sem mutatja az összeget (és mást sem) ha ezeket a számokat kijelölöm.

 

ujszaszy - vagy bárki aki letölti a xls fájlt - megkérhetlek, hogy megnézd nálad működik-e nálad ez a fajta 1-gyel való szorzás?

 

A HELYETTE fv. külön oszlopot igényel, emiatt nem annyira szimpatikus.

 

 

még annyit tennék hozzá Delila megjegyzéséhez, hogy a nem nyomtatható karatkterekkel kezdődő tartlalnaknál nem mindig működik.

Jelen esetben is van minden cella előtt egy 160-as kódú valamilyen karakter.

így inkább képlettel csinálnám

 

=HELYETTE(L6;KARAKTER(160);"")-0

 

Így működik

:-)

 

 

pl. az eredeti C7 cellában "€ 0.060" volt. A cserék alkalmával az € jelet cseréltem (Ctrl+F) semmire. Tehát az € után volt egy szóköz, ami megmaradt.

Először a "€ " (tehát szóközt írva utána) akartam cserélni, de így nem engedte, az az üzenet jön, hogy a "Microsoft nem talált egyezést". Emiatt kényszerültem csak a "€" karaktert cserélni.

És úgy is ez az üzenet jött, ha az "€ 0"-t akartam cserélni, mert jellemzően 1-nél kisebb számok vannak az oszlopban. "€ 0.060"-ból lett volna így 0.06.

Nem tudom, hogy mi lehet a baj, mert "€ 0.060" ebben benne van ez: "€ 0" 

Előzmény: Delila10 (20325)
<Tycoon> Creative Commons License 2013.02.11 0 0 20331

köszi holnap megnézem

Előzmény: pimre (20323)
ujszaszy Creative Commons License 2013.02.11 0 0 20330

köszi :-)

Előzmény: Sánta Kutya (SK) (20329)
Sánta Kutya (SK) Creative Commons License 2013.02.11 0 0 20329

160= shift szóköz

Előzmény: ujszaszy (20326)
ujszaszy Creative Commons License 2013.02.11 0 0 20328

csak a biztonság kedvéért tettem be a -0 -át a végére, mert ez biztosan számmá alakítja a számnak lázszó stringeket

Előzmény: Delila10 (20327)
Delila10 Creative Commons License 2013.02.11 0 0 20327

Nem töltöttem le, csak írtam a szorzást. A HELYETTE függvény alkalmazása után már nem is kell szorozni, azonnal számokká alakítja az oszlopot.

Előzmény: ujszaszy (20326)
ujszaszy Creative Commons License 2013.02.11 0 0 20326

még annyit tennék hozzá Delila megjegyzéséhez, hogy a nem nyomtatható karatkterekkel kezdődő tartlalnaknál nem mindig működik.

Jelen esetben is van minden cella előtt egy 160-as kódú valamilyen karakter.

így inkább képlettel csinálnám

 

=HELYETTE(L6;KARAKTER(160);"")-0

 

Így működik

:-)

 

Előzmény: Delila10 (20325)
Delila10 Creative Commons License 2013.02.11 0 0 20325

Másolásoknál előfordulhat, hogy bár általános formátumúak a cellák, mégis szövegként szerepelnek a benne lévő számok. Ezt legegyszerűbben úgy tudod ellenőrizni, hogy kijelölsz néhány cellát, és ha a státuszsorban szerepel az összegük, akkor számok, másképp nem.

 

Ilyenkor egyszerűen számokká alakíthatod. Egy üres cellába beírsz egy 1-est, Ctrl+c-vel másolod. Kijelölöd a kérdéses oszlopot. Jobb klikk, irányított beillesztés, szorzás. Már át is alakultak, az 1-est törölheted.

Előzmény: NeomatiK (20324)
NeomatiK Creative Commons License 2013.02.11 0 0 20324

Sziasztok!

Értetlenül állok egy probléma előtt.

Egy weboldalról másolok ki adatokat Excel 2002-be.

Szeretném összeadni az egy oszlopban lévő számokat a "pénz" oszlopban, de nem működik, azaz 0 (zöld) az eredmény.

Feltettem egy tárhelyre:

http://data.hu/get/6193365/szumma_kerdes_excel.xls

 

Azért leírom, hogy mi a helyzet. A cellák "általános" formátumúak. 3 változtatás oszlop van van, azaz összesen 4 oszlop van.

az első az eredeti kimásolt

a másodikban a szöveg feliratot 0-ra cseréltem

a harmadikban az € jelet töröltem cserével

a negyedikben a tizedes pontot tizedes vesszőre cseréltem.

 

Tehát a 4. változatban az összes cella az oszlopban megfelelő lenne szerintem a művelethez (összeadáshoz), és még így sem jó valami miatt.

 

Légyszi segítsetek! Nem tudok rájönni, mi okozza a hibát :-/ Kézzel meg nem akarom átírni mindet.

pimre Creative Commons License 2013.02.10 0 0 20323

Ez tévedés, valamit rosszul csinálsz. Mivel van Excel 2007-esem is (csak nem használom), megnéztem. A nézet menüben válaszd az ablaktábla rögzítést úgy, hogy a kívánt soron állsz! Tökéletesen működik. Ha a 31. soron állsz, akkor az első 30-at, ha a 180. soron, akkor az első 179-et rögzíti. Az más kérdés, hogy az utóbbinak kevés gyakorlati értelme lehet.

 

Nem tudom, hogy Te mit csinálsz másképp. Próbáld meg még egyszer!

 

 

Előzmény: <Tycoon> (20322)
<Tycoon> Creative Commons License 2013.02.10 0 0 20322

köszi.

2007-esem van.  

Sőt ott meg csak a felső első sort rögzíti, a régi meg a felső 3 sor fejlécét is tudta rögzíteni. Ezt se találom hogy lehet megmahinálni :(  mire jó ezt változtatgatni folyton :(

Előzmény: pimre (20321)
pimre Creative Commons License 2013.02.10 0 0 20321

Ha jól értelmezem a kérdésedet, akkor ez a megoldás: Ráállsz az utolsó rögzítendő sor utáni első sor (a Te esetedben a 31.) első oszlopára, majd a fenti menüben az 'ablak' gomb kiválasztása után a legördülő menüben: 'ablaktábla rögzítése'.  Ekkor az első 30 sor fix, és a 31-től scrolloznak a sorok. Ha nem az első oszlopon állva rögzíted az ablaktáblát, akkor a kiválasztott cellától balra lévő oszlopok is rögzítődnek, a többi pedig bal-jobb irányba scrolloz.

Mindez a 2003-as verzióban van így. A későbbiekben kicsit máshogy érhető el. Pl.: http://office.microsoft.com/hu-hu/excel-help/sorok-es-oszlopok-rogzitese-vagy-zarolasa-HP010342542.aspx#_Toc265665192

 

Előzmény: <Tycoon> (20318)
ekinid Creative Commons License 2013.02.10 0 0 20320

ekinid Creative Commons License 2013.02.10 0 0 20319

Sziasztok! A képen látható problémám van Excelben (2007). Találkozott valaki hasonlóval, valahogy orvosolható?

Köszi a válaszokat!

 

<Tycoon> Creative Commons License 2013.02.10 0 0 20318

sziasztok, megint egy menetrendi kérdés:

 

csinálok menetrendeket excellben (kb olyan mint a vasúti)

 

Egyik táblázatba megírom az oda irányt, aztán egy új munkalapon megírom a vissza irányt.

 

Namost kellene hétvégi oda és hétvégi vissza irány is, de nem akarok +2 munkalapot készíteni.

 

El lehet-e valahogy különíteni a felső  (kb 30 sort) az alsó soroktól, tehát ha mondjuk be kéne szúrnom vagy törölnom kéne az alsó táblázatból sorokat akkor a felsőben ne változzon semmi? 

Valami lakat vagy rögzítés nincs erre? 

Sánta Kutya (SK) Creative Commons License 2013.02.08 0 0 20317

Igen, ez is eszembe juthatott volna magamtól. De már mindegy, mert úgysem tudom lekérdezéshez használni a lentiek miatt.

Előzmény: ujszaszy (20314)
Sánta Kutya (SK) Creative Commons License 2013.02.08 0 0 20316

Na ez lesz a vége, pont most jutottam idáig, mert a B adatbázis csak webes phpmyadminon érhető el, az meg simán hátast dob a 123 ezer számtól, hiába egyszerű a lekérdezés. Lesz egy CSV export, aztán vagy írok rá egy programot, mert van egy txt és egy csv, vagy megy mind a kettő Accessbe.

Előzmény: Retro Image (20315)
Retro Image Creative Commons License 2013.02.08 0 0 20315

Ha mindkét adatbázisból becsatolod a szükséges táblákat egy Access mdb-be, akkor sem lehet direktbe lekérdezni?

Előzmény: Sánta Kutya (SK) (20310)
ujszaszy Creative Commons License 2013.02.08 0 0 20314

Esetleg még egyszerűbb, ha az egymás alatt levő számokat átteszed Wordbe, vagy bármely olyan szövegszerkesztőbe, ami tud speciális karaktereket is cserélni, és ott lereplaceled a paragrafusokat vesszőre. A Wordben. Ctrl + H >> a Keresett Szöveg mezőbe a ^p , a Csere erre mezőbe pedig a , (vessző, vagy amit szeretnél) írod. A beírható karakterek száma egyébként tök mindegy, mert pl a csere és keresésnél továbbra is csak 255 karakter.

Előzmény: Sánta Kutya (SK) (20313)
Sánta Kutya (SK) Creative Commons License 2013.02.08 0 0 20313

Ó, erre nem gondoltam! Azt tudtam, hogy a 2003-asban szégyenletesen kevés, de hogy még most is...

Mindegy, közben áttettem txt-be, és összedobtam egy scriptet, ami most fut, és elvileg megcsinálja ugyanezt.

Hát nem egyszerű így az élet két adatbázissal.

Előzmény: Delila10 (20311)
Delila10 Creative Commons License 2013.02.08 0 0 20312
Előzmény: Sánta Kutya (SK) (20310)
Delila10 Creative Commons License 2013.02.08 0 0 20311

Limitálva van az 1 cellába írható karakterek száma, és ez különböző a verziók szerint.

Nem rég volt szó róla itt a fórumon.

Előzmény: Sánta Kutya (SK) (20310)
Sánta Kutya (SK) Creative Commons License 2013.02.08 0 0 20310

A script a következő:

 

Function SQL() As String
    Dim s As String
    s = Worksheets("f").Cells(1, 1).Value
    For i = 2 To Worksheets("f").Cells(Rows.Count, "A").End(xlUp).Row
        s = s & ", " & Worksheets("f").Cells(i, 1).Value
    Next
    s = "in (" & s & ")"
    SQL = s
End Function

 

Na ez a következőt csinálja: egymás alá írt számokat vesszővel elválasztva egymás mellé tesz, előállítva egy SQL kódrészletet a lekérdezéshez. 5-6 egymás alatti számnál működik is. Tehát a kód jó. De ha ráeresztem miond a 123 ezret, akkor tíz percre lefagy az Excel, és utána #ÉRTÉK hibát ad. A szokott módszeremet, hogy egyszerű konkatenációval rakom össze sorról sorra, meg se mertem próbálni ekkora mennyiségnél.

 

Mit rontottam el? Most én tehetek róla, hogy ennyi szám van? Elvileg ez nem olyan sok Excel 2007 alatt.

 

(Sajnos két adatbázisunk van, és az egyikben futtatott lekérdezés eredményét kéne a másikban felhasználni, ezért nem tudok közvetlen allekérdezést használni.)

Virgo0828 Creative Commons License 2013.02.08 0 0 20309

Küldtem mailt az itt megadott e-mailedre!

Köszönöm!

Előzmény: ujszaszy (20308)
ujszaszy Creative Commons License 2013.02.08 0 0 20308

esetleg át tudsz küldeni egy részletet az excelből?

belenéznék, ha lehet

 

köszi

Előzmény: Virgo0828 (20307)
Virgo0828 Creative Commons License 2013.02.08 0 0 20307

Reggel óta ezt a képletet próbálom, de sajnos egyelőre nem jön össze. A képlet alapján semmit nem mutat, még ott sem, ahol van kép.

Pedig már elvi szinten azt is kidolgoztam, ahol több kép van (gyerek neve + számozás), hogy ezeket hogy tudom a képlettel megcsinálni több oszlopban. Most már csak oda kellene eljutni, hogy csak ott mutassa a hivatkozást, ahol valóban van kép.

Próbáltam azt is, hogy csak a HA függvénnyel jelezze, ha van kép, de az sem működik. Minden cellában azt jelzi, mintha lenne kép, holott nincs.

Előzmény: ujszaszy (20303)
SQLkerdes Creative Commons License 2013.02.08 0 0 20306

Fogalmam sincs milyen a 2013-as, nekem is csak 2007-es és 2010-es van...  De a lenti dolog műxik mindkettőn.

Előzmény: ujszaszy (20305)
ujszaszy Creative Commons License 2013.02.08 0 0 20305

jajaja, bár én még nem tettem fel a 2013-ast, sokat hallottam róla. Ilyen megbrutál függvényeket ritkán használok, és eddig a jól bevált "T" függvényt használtam a függvény részek kommentelésére :-)

 

 

a legdurvább nekem eddig az alábbi kis színes volt

 

=VÁLASZT(HÓNAP([@NAP]);0,0163685261378081-0,00712965243959048*[@Tmax]+S("001");0,12338815588125-0,0145560741393731*[@Tmax]-0,0181459787510039*[@SunDur]+S("002");0,326591216537542-0,0295259847026201*[@Tmax]+0,0174054319940571*[@[Tmax_22y53_DIFF]]+S("003");0,606071445356346-0,0322072140849042*[@Tmax]+0,0130516990262426*[@[Tmax_22y53_DIFF]]+S("004");0,198220820614486+0,0219878166198061*[@[Tmin_22y53_DIFF]]-0,000103373449023303*[@GlobDur]+S("005"); -0,77428474815553+0,0527166501042358*[@Tmin]+S("006");0,0461158675683933+0,0831894886486357*[@[Tmin_22y53_DIFF]]+S("007"); -0,250648042934858+0,0280930763069031*[@[Tmea_22y53_DIFF]]+0,0177567221245167*[@Tmin]+S("008");0,00558461973089192+0,00781609588827864*[@[Tmin_22y53_DIFF]]+S("009");0,429680376026047-0,0259227761553638*[@Tmax]+0,0198868373722241*[@[Tmea_22y53_DIFF]]+S("010");0,189328567268207-0,000274531072207966*[@GlobDur]-0,0110329269151986*[@Tmea]+S("011"); -0,111696615007572-0,00027910728275485*[@GlobDur]-0,0928523167370676*[@Tmin]+0,0847411091179068*[@[Tmin_22y53_DIFF]]+S("012"))

 

Milyen a 2013? Azt olvastam, hogy sok feature mellett igen sok idegesítő szolgáltatása is van 

Előzmény: SQLkerdes (20304)
SQLkerdes Creative Commons License 2013.02.08 0 0 20304

Formula indentation normál excel user interface-ben.  Tudott erről valaki?  Nem olyan dolog amit mindennap használni fogok, de vannak hosszú egymásba ágyazott függvényeim, amiknél jó lehet.

 

ujszaszy Creative Commons License 2013.02.07 0 0 20303

Igen, ez a hivatkozás lehet, hogy a sérült exceleknél visszaállításkor vmilyen semleges mappára állítja vissza a linket.

 

Szerintem egyszerűbb a függvényes linkelés, bár tény, hogy a színekkel nem lehet operálni.

Esetleg az adatbázisba egy plusz oszlop, hogy van-e kép, lehet, hogy hatékonyabb megoldás, mivel arra tudsz szűrni.

 

Továbbfejlesztve az ötletet, azokra a rekordokra, ahol lelzi az oszlop, hogy nincs kép, esetleg meg sem csinálja a linket.

Pl ha a kép megléte 1 és 0, akkor egy sima HA függvénnyel megoldható =HA(D2=1;HIPERHIVATKOZÁS("elérési út";"megjelenítendő szöveg");"")

 

Előzmény: Virgo0828 (20302)
Virgo0828 Creative Commons License 2013.02.07 0 0 20302

Igen - eddig egyesével állítottam be a hivatkozásokat, évek alatt folyamatosan, ahogy jött az anyag hozzá.

Általában akkor szokott elszállni az össze hivatkozás, ha valami miatt meghal a gép, miközben meg van nyitva az Excel. Régen volt pl. áramszünet miatt (rossz volt a szünetmentes), volt, hogy sima kék halál miatt.

XP van a gépemen, és nem is engedem másra cserélni. ;)

Eddig azért volt jó, hogy egyesével csináltam a hivatkozásokat, mert így rögtön látni lehetett a kék betű miatt, hogy kinek van beszkennelt igazolványa. Most a függvénnyel viszont az összes gyereknél úgy tűnik, mintha lenne valós hivatkozás.

Előzmény: ujszaszy (20301)
ujszaszy Creative Commons License 2013.02.07 0 0 20301

Örülök, hogy segíthettem.

 

Nem tudom, hogyan állítottad be eddig a hivatkozásokat, ahogy olvastam a leveled, valószínűlek kézzel, egyenként.

 

Több oka is lehet, pl áttértél Win XP-ről Win7-re, ami néha felülírja a user beállításokat, lehet, hogy egy frissítést tölöttél le az excelhez, és az írja felül az ilyen profilokat.

Nem tudom, de biztos, hogy ha így "be van égetve" függvénnyel a link, az addig nem változik, amíg a képletben át nem írod.

 

Sajnos makro nélkül nem nagyon tudod megnézni, hogy egy adott file létezik-e, vagy sem, és azzal is bonyolult.

Esetleg azt tudom javasolni, hogy azoknak a gyerekenek, akiknek nincs képe, csinálj egy üres képet, saját nevével, a megfelelő mappába, így minden hivatkozáshoz lesz képed, véletlenül sem akad bele az excel.

Előzmény: Virgo0828 (20300)
Virgo0828 Creative Commons License 2013.02.07 0 0 20300

Sikerült! :) Az "apróbb" technikai problémák miatt még nem tökéletes - amit írtam, hogy vannak olyan gyerekek, akikhez több kép is tartozik,  és kb 90%-nál csak a gyerek neve a kép neve is, csak ott van megadva az anyja neve is, ahol névegyezőség van. Csak hogy gyorsabb legyen, valószínűleg sorszámozom a gyerekeket, akiknek azonos a neve - lesz Szabó 23 László :D, és a hozzá tartozó képet is sorszámozom, így nem kell minden képet átnevezni gyerek neve-anyja neve névre. Ez lényegesen kisebb munka.

Most már csak azt kell megoldani, hogy azoknál a gyerekeknél, akiknek nincs beszkennelve adata, valahogy jelezze az Excel - de mintha a Hivatkozás függvény erre készült volna, ahogy ránéztem.

Nagyon köszönöm a segítséged!

Azt nem tudod véletlenül, hogy miért mászik el a hivatkozás???? Miért változtatja meg önkéntesen az Excel, hogy hova mutat az össze hivatkozás?

Előzmény: ujszaszy (20291)
ujszaszy Creative Commons License 2013.02.07 0 0 20299

nem (teljesen).

 

abba az adattáblába, amiből készíted a kimutatást, (ami gondolom olyasmi struktúrában van hogy az A oszlop az ID, B a dátum, stb, szúrj be egy új oszlopot, ahol minden ID-hoz hozzárendeled a doboz számot. ez a része mehet akár Fkeres-sel, akár ofszet-tel, index-el, mindegy).

Így lesz egy olyan adattáblád, ami az adatokon kívül egy új oszlopot is atartalmaz, minden ID-hoz, a hozzá tartozó darabszámot.

 

Ebből az új táblából kérsz egy ugyanolyan kimutatást, mint amit eddig is csináltál, csak beszúrod a számított mezőt, amit írtam.

 

Vagy egy másik megoldás: a számított mezőbe képletként a VÁLASZT függvényt alkalmazod, ami 255 paramétert tud kezelni, és akkor nem kell megbolygatni az eredeti adattábládat

 

Előzmény: djmorphy (20298)
djmorphy Creative Commons License 2013.02.07 0 0 20298

Na mindjárt kipróbálom! :)  Fkeres függvénnyel vagy mivel kellene?

Előzmény: ujszaszy (20297)
ujszaszy Creative Commons License 2013.02.07 0 0 20297

szerintem ha az eredeti adattábládba (amiből a kimutatás készül), felveszel egy plusz oszlopot, amiben az ID-hez hozzárendeled a doboz mennyiségeket, akkor zsírság.

 

Akkor már automatikusan tudsz szorozni a kimutatásba beszúrt képlettel

Előzmény: djmorphy (20295)
ujszaszy Creative Commons License 2013.02.07 0 0 20296

Köszi

Előzmény: Sánta Kutya (SK) (20293)
djmorphy Creative Commons License 2013.02.07 0 0 20295

Ez a "95 csippantás", "104 csippantás"... dobozokat jelent. Amiben van a termék. A termék mennyisége egy dobozra vetítve az ID-től függ.
És azt szeretném automatizálni, hogy 2013.01.02.-án legyártottunk 95 dobozzal ami darabszámra vetítve(95*18)1710db. 2013.01.07.-én legyártottunk 51 dobozzal ami 1020db(51*20). 

Szóval azt akarom, hogy ne nekem kelljen egyesével kikeresni hogy az adott sorszámban hány darab termék van amit az adott napon legyártottunk.

 

Amit írtál "második lehetősget" szerintem erre van szükségem! :)  Ide kellene valahogy olyan képlet ami a G oszlopban lévő sorszámhoz társítja a H oszlopban lévő értéket és megszorozza vele. Ha egy termék lenne akkor ugye sima szorzás lenne az egész ami menne is szerintem de az a baj, hogy 12 fajta különböző ID van és mindegyik más mennyiség.

Előzmény: ujszaszy (20290)
Sánta Kutya (SK) Creative Commons License 2013.02.07 0 0 20294

A heberál sokkal jobban hangzik. Ha neked nem kell, majd én használni fogom, már értem is a jelentését.

Előzmény: ujszaszy (20283)
Sánta Kutya (SK) Creative Commons License 2013.02.07 0 0 20293

Mindig kettesével rakd, mert escape karakter.

\\-->\

Előzmény: ujszaszy (20287)
ujszaszy Creative Commons License 2013.02.07 0 0 20292

Előzmény: ujszaszy (20291)
ujszaszy Creative Commons License 2013.02.07 0 0 20291

Nekem megnyitja a képet.

a függvény szintaktikája:

 

=HIPERHIVATKOZÁS(cím;megjelenítendő üzenet)

 

Ahol a  cím a konkrét file eléri útvonala "idézőjelek között", majd szintén idézőjelek között a cellában megjelenítendő szöveg, jelen esetben "MUTASD A KÉPET"

 

 

Próbáltam egy kis minta excelt csinálni a képletekkel

 

Természetesen ez azt feltételezi, hogy a mappa elnevezések konzekvensek legyenek pl Gyereknév_AnyjaNeve

Előzmény: Virgo0828 (20289)
ujszaszy Creative Commons License 2013.02.07 0 0 20290

Szia,

 

nem teljesen értem. Jól gondolom, hogy a munkalapon szeretnéd megszámolni, hogy hány darab 400667-es kód van?

A szorzás/osztásra, vagy bármilyen műveletre pedig az egyénileg kalkulélt oszlopok jelenthetnek megoldást.

HA igen, akkor az eredeti adattáblából is könnyedén ki lehet ezeket az aggregátumokat számolni.

 

Egyébként vana amásik lehetőség, a pivot táblába való egyedi kalkuláció beszúrása. Ezt 2010-ben úgy éred el, hogy rákattintasz a kimutatásra, akkor megjelenik a "Kimutatáseszközök" menü.

Itt a Beállítások fül, majd a Számítások menü Mezők, elemek és halmazok opcióját választod.

Majd a Számított mező menüpontot. Itt gyakorlatilag minden az excel által használható képlet bármilyen kombinációját meg tudod határozni, és ez a kimutatásban egy új "oszlopként" jelenik meg. Ami azért jó, mert mindig a kimutatás méretével együtt változik.

 

 

Előzmény: djmorphy (20288)
Virgo0828 Creative Commons License 2013.02.07 0 0 20289

Továbbra is csak a mappát nyitja meg, kb. 5000 kép hivatkozását kellene megcsinálni, úgy hogy felismerje a neveket a mappában, és hozzárendelje a cellához. Mi ez a MUTASD A KÉPET?? Ilyen függvényt nem találtam.

 

Előzmény: ujszaszy (20287)
djmorphy Creative Commons License 2013.02.07 0 0 20288

Sajnos magát az Excelt nem küldhetem csak egy képpel tudok szolgálni.

 

https://lh6.googleusercontent.com/-6uHOu491Rpk/URODr7NjBEI/AAAAAAAAGRc/3LEndO4Dtg0/s1024/excel2.jpg

 

 

Az 1710,1872,1800,1020-as értékeket szeretném automatizálni valahogy :) Igaz a képen csak 2 darab van de amúgy 14 termék és elég sok munkanap van egy évben(sajnos :D)

Előzmény: ujszaszy (20281)
ujszaszy Creative Commons License 2013.02.07 0 0 20287

valamiért kiszedte a backslasheket az elérési útból

 

=HIPERHIVATKOZÁS("c:Documents and SettingsUSERAsztalME.jpg";"MUTASD A KÉPET")

Előzmény: ujszaszy (20286)
ujszaszy Creative Commons License 2013.02.07 0 0 20286

nem a mappát, hanem egy fájlt is megnyit egy külön ablakban

=HIPERHIVATKOZÁS("c:Documents and SettingsUSERAsztalME.jpg";"MUTASD A KÉPET")

Előzmény: Virgo0828 (20285)
Virgo0828 Creative Commons License 2013.02.07 0 0 20285

A Hiperhivatkozással az egész mapppát nyitja meg, és én azt szeretném, ha csak az adott nevű gyerek beszkennelt adatait nyitná meg. Mit csinálok rosszul???

Előzmény: ujszaszy (20282)
Virgo0828 Creative Commons License 2013.02.07 0 0 20284

Köszönöm a válaszod! Hát próbálom értelmezni!! :) Őszintén - a heberál újmagyar szó okozta a legkisebb fennakadást eddig! :)

Mindig is utáltam a függvényeket. :( Megnézem, hogy mire jutok a Hiperhivatkozással.

Előzmény: ujszaszy (20282)
ujszaszy Creative Commons License 2013.02.07 0 0 20283

bocs, nem heberál, hanem generál. gépelni még nem tudok :-)

Előzmény: ujszaszy (20282)
ujszaszy Creative Commons License 2013.02.07 0 0 20282

Szia!

 

próbáltad már az excel beépített HIPERHIVATKOZÁS képletét? Ez egy linket heberál a megadott címre(amibe be lehet égetni az E megjatót). A hivatkozás lehet weblap, bármilyen file a gépeden, vagy a szerveren, esetleg az excel egy adott pontja.

 

Képlettel arra is van lehetőség, hogy összefűzd a neveket mappanevekké, és akkor cska le kell húzni a képletet, nem is kell makro.

 

Csak arra kell figyelni, hogy a gyerekek mappái konzekvensen legyenek elnevezve, amiket az excel adataiból is le tudsz generálni pl az ÖSSZEFŰZ függvénnyel

Előzmény: Virgo0828 (20279)
ujszaszy Creative Commons License 2013.02.07 0 0 20281

Szia!

 

esetleg át tudnál küldeni egy mintát, mert azon gondolkozom, hogy a kimutatás lehet, hogy csak egy felesleges lépés

 

Köszi

Előzmény: djmorphy (20280)
djmorphy Creative Commons License 2013.02.07 0 0 20280

Excel 2010.

 

Van egy mf amin 3 oszlop van csak. Idő dátum és ID. Ezen a munkafüzeten nyomtam a Beszúrás/kimutatást. Ezt egy új munkafüzetre kértem.

Ahol A oszlopban van a dátum(A4) alatta(A5)az ID mellete hogy aznap hányat talált(B5). Majd következő dátum(A6)ID(A7)darabszám(B7)

A C oszloptól pedig tudom szorozni/osztani az értékeket. 

Előzmény: ujszaszy (20278)
Virgo0828 Creative Commons License 2013.02.07 0 0 20279

Sziasztok!

A segítségeteket szeretném kérni!

Van egy Excel (Office 2010) táblázatom, amiben évek óta gyűlnek az adatok tanulókról (minden évben másik munkalapon).

Nagyon sok gyereknek be vannak szkennelve az igazolványai, az összes képfájlt mindig ugyanabba a mappába mentem az E meghajtóra.

Ezekre a fájlokra szoktam hivatkozásokat létrehozni az Excelben, ami most már több, mint 5000.

Általában másolásnál követi a hivatkozásokat az Excel, de néhány alkalommal már volt olyan, hogy az egész elszállt , és a hivatkozások mind a C:Documents and SettingsuserApplication DataMicrosoft mappára mutattak, ahol persze egyetlen képfájl sincs.

Eddig sikerült megoldani úgy a problémát, hogy az egész mappát, amiben a képek, és az Excel volt,  átmásoltam a fenti mappába, aztán vissza, és így helyreálltak a hivatkozások. Előfordult, hogy nem elsőre, de sikerült megcsinálni.

Most viszont már negyedik napja másolgatom a mappa tartalmát ide-oda, és semmi változás.

Kérdésem, hogy van-e valami lehetőség, amivel be tudom állítani, hogy a hivatkozások melyik mappára mutassanak, és mindig ott keresse őket – és persze most is találja meg ezeket, mert egyesével végigmenni a több mint 5000 hivatkozáson egy agybaj lenne.

A mezőfrissítést próbáltam, valamint a speciális tulajdonságoknál a Hivatkozások alapja is az a mappa, ahol a képek vannak – bár nem tudom, hogy ez a két lehetőség erre vonatkozik-e.

 

Másik kérdésem: lehetséges-e egy makrót írni a hivatkozások helyett, miszerint mondjuk Almási Márta adatait egy mappában keresse, és a talált képet rendelje hozzá a névhez, amit ugyanúgy, mint a hivatkozásnál meg lehetne nyitni.

Ami viszont megbonyolítja a dolgot – mivel jelenleg kb. 3000 gyerek van egy évben – van néhány olyan, akinek a neve ugyanaz, így a „gyerek neve - anyja nevével” szoktam elmenteni a képet.

Másik probléma, hogy vannak olyanok is, akihez nem egy kép tartozik, hanem több.

Ezeket a képfájlokat általában „név+sorszámmal” szoktam elnevezni, tehát van olyan gyerek, akinek a nevéhez akár 3-4 hivatkozás is kapcsolódik, csak más-más cellában abban a sorban, ahol az adatai vannak.

Megoldható-e az, hogy ha egyszerre berakok ebbe a mappába teszem fel 60 nevet, akkor a makró lefuttatásával megtalálja a hozzá tartozó tanulót, és létrehozzon egy automatikus hivatkozást, és esetleg egy gyerekhez nem csak egy hivatkozást, hanem többet is?

 

Segítségeteket előre is köszönöm!

Szép napot Mindenkinek!

ujszaszy Creative Commons License 2013.02.07 0 0 20278

A pivot táblákba is be lehet tenni egyedi függvénnyel számolt oszlopokat.

Milyen verziójú az exceled?

Előzmény: djmorphy (20276)
ujszaszy Creative Commons License 2013.02.07 0 0 20277

Szia!

 

tegyük fel, hogy a B2 cellában van a kezdő idő (8:00), a c2 ben a vég (12:45) és az óradíjad 2000,-, akkor a D2 Cella képlete

 

=(C2-B2)*24*2000 >> 9500 Ft

 

Előzmény: radon (20246)
djmorphy Creative Commons License 2013.02.07 0 0 20276
Tudnál írni egy pontos képletet? Mert nekem #HIV-el elszáll :(A oszlopban vannak az ID-k (pl 12345,54321...)B oszlopban a mennyiség(100,110,120)G4:G17 az IDH4:H14 az ID-hez tartozó kontsans.
Előzmény: djmorphy (20274)
ujszaszy Creative Commons License 2013.02.07 0 0 20275

Szia!

 

az excel beállításai, speciális szeekció, a megjelenítés részben van egy választókapcsoló "alapértelmezett irány" felirattal. Ezt állítsd át "balról jobbra" állásba

:-)

 

 

Előzmény: Wattocsak (20264)
djmorphy Creative Commons License 2013.02.07 0 0 20274

14 ID-m (Termékem) van és napi szinten ezeket gyártjuk tehát idén már olyan 2500 sornál járok :D

 

Szóval köszi megnézem ezt VLookup-ot. :D

Előzmény: SQLkerdes (20273)
SQLkerdes Creative Commons License 2013.02.07 0 0 20273

Hát a pivot részeként nem tudod megcsinálni, de a pivot mellé tehetsz egy oszlopot ott simán megoldható.

 

Attól függően, hogy hány ID-d van és ahhoz hány konstans tartozik az új oszlopban az IF (HA) vagy a VLOOKUP függvényt kell használni, hogy az ID-hez tartozó konstanst meghatározhasd.

Előzmény: djmorphy (20272)
djmorphy Creative Commons License 2013.02.07 0 0 20272

Sziasztok!

 

Van egy kimutatásom(azt hiszem Pivot a neve) ami tartalmaz egy időpontot egy dátumot és egy ID-t. A különböző ID-ket szeretném megszorozni konstanssal és a konstans az ID-től függ. 

Azt hittem, hogy Fkeressel meg lehet oldani de valahogy nem akar összejönni. Egyáltalán jó irányba tapogatózok? :)

_Nyuszi Creative Commons License 2013.02.06 0 0 20271

A szerkesztőlécen valóban látszódik az évszám, de a cellában már nem.

Legalábbis nálam van olyan a Dátumok között, hogy:

"3. 14."

"március 14."

"márc.. 14."

Illetve az Egyéninél van pl. "hhh.nn", de van ilyen is: "[$-40E]hhhh n.;@".

 

Ha a szerkesztőlécen látszódik a dátum, az milyen problémát okoz? Nem működik valamilyen képlet esetleg?

Előzmény: pigee (20269)
tbando Creative Commons License 2013.02.06 0 0 20270

Van év nélküli számformátum. Nálam a mintában március 14 és 3.14. Ettől persze az excel elég intelligensen hozzáképzeli az évet, amit nem tudsz kiküszöbölni. Alkalmazkodni kell hozzá. Nem okoz különösebb problémát.  

Előzmény: pigee (20269)
pigee Creative Commons License 2013.02.06 0 0 20269

Pont ez a gondom, nincs ho.nap formatum, nem tudom kivalasztani.

Előzmény: _Nyuszi (20260)
radon Creative Commons License 2013.02.06 0 0 20268

Köszönöm!

Ez lett a megoldás. Így már oké. Tudja a negyed-fél-háromnegyed órákat is kezelni. :)

Előzmény: _Nyuszi (20249)
Wattocsak Creative Commons License 2013.02.05 0 0 20267

Megoldódott átírta VBA editorral

 

Előzmény: Wattocsak (20266)
Wattocsak Creative Commons License 2013.02.05 0 0 20266

És bezárja a szerkesztő lécet:-)

Előzmény: Delila10 (20265)
Delila10 Creative Commons License 2013.02.05 0 0 20265

A szerkesztőléc jobb felső sarkában kattints a felfelé mutató dupla nyílra. :)

Előzmény: Wattocsak (20264)
Wattocsak Creative Commons License 2013.02.05 0 0 20264

Excel araboknak!!:-)

 

 

 

Hogyan tudnám visszaállítani? 

 

Delila10 Creative Commons License 2013.02.05 0 0 20263

fegyél -> vegyél

Előzmény: Delila10 (20262)
Delila10 Creative Commons License 2013.02.05 0 0 20262

Mihez kellene makró?

A LinkedCell tulajdonsághoz beírtad, melyik cellában jelenjen meg a kiválasztott elem. Ezzel már azt kezdesz, amit akarsz.

 

Ha mégis űrlapvezérlőt szeretnél, a bemeneti tartomány előtti oszlopba fegyél fel sorszámokat. A csatolt cella számához egy FKERES függvénnyel megkeresteted a listában a nevet.

Előzmény: anno1969 (20261)
anno1969 Creative Commons License 2013.02.05 0 0 20261

hello

 

úgy nézem ez lehet a megoldás a problémámra (ActiveX), de...

úgy kéne megoldanom a feladatot, hogy macro-t ne kelljen alkalmazni

 

esélytelen?

 

Előzmény: Delila10 (20257)
_Nyuszi Creative Commons License 2013.02.04 0 0 20260

Ctrl+1 és ott kiválasztod a megfelelő dátumformátumot?

Előzmény: pigee (20258)
Sánta Kutya (SK) Creative Commons License 2013.02.04 0 0 20259

Ez nem rejtélyes eset, ez az Excel normál működése.

Előzmény: pigee (20258)
pigee Creative Commons License 2013.02.04 0 0 20258

Ujabb rejtelyes eset.;)

Excel cellaformatumoknal szeretnek beallitani datumot ho.nap formaban, de nem sikerul, mindenaron kell neki ev is. Ha nem irok be evet, akkor 1900-at ir be.

Delila10 Creative Commons License 2013.02.04 0 0 20257

Erre nem figyeltem fel. :)

 

Űrlapvezérlőnél a listában elfoglalt hely a kimenet, activex vezérlőnél a kiválasztott érték.

Előzmény: Retro Image (20256)
Retro Image Creative Commons License 2013.02.04 0 0 20256

Két oszlopot adtál meg bemeneti mezőnek. Gondolom, mindkettő megjelenik, de mivel egy értékkel tér vissza, azt az első oszlopból veszi. Nem erről van szó?

Előzmény: anno1969 (20254)
Delila10 Creative Commons License 2013.02.04 0 0 20255

A csatolt kép szerint űrlapvezérlőt alkalmazol. Azt hittem, activex-et. Persze itt sem lenne szabad ilyent tennie.

Előzmény: anno1969 (20254)
anno1969 Creative Commons License 2013.02.04 0 0 20254

kép lemaradt... bocs

itt

Előzmény: anno1969 (20253)
anno1969 Creative Commons License 2013.02.04 0 0 20253

hát pontosan ez történik... (lásd csatolmányt)

ezért bátorkodtam írni ide, hátha találkozott már vki ezzel a jelenséggel...

MS Office 2013 ról van szó

esetleg más ötlet?

Előzmény: Delila10 (20252)
Delila10 Creative Commons License 2013.02.04 0 0 20252

A ListFillRange tulajdonságnál beállítod a tartományt, pl. C1:C30.

A LinkedCell-nél adhatod meg, melyik cellába írja be a kiválasztott tételt.

A ListRows-nál add meg, hány tételt mutasson egyszerre.

Előzmény: anno1969 (20250)
_Nyuszi Creative Commons License 2013.02.04 0 0 20251

Gondolom a ListIndex-szel tér vissza, nem a Value vagy Text vagy mivel... Jól gondolom?

Előzmény: anno1969 (20250)
anno1969 Creative Commons License 2013.02.04 0 0 20250

sziasztok

 

megtudja vki mondani, hogy ha készítek egy vezérlő elemmel egy lenyíló listát akkor a kiválasztáskor miért nem a kiválasztott tétel jelenik meg hanem a listában elfoglalt tétel sorszáma...

 

pl.

kiválasztom, hogy processzor, akkor kiírja nekem hogy 25

 

WTF???

 

(mert hogy 25. a processzor tétel a sorban ezt értem de nem ez volt a feladat)

 

az a válasz nem jó hogy készítsek a cellára érvényességet és válasszam a lista opciót mert ebben az esetben max 8 sor magas lenyíló menüt kapok, ami több száz soros lista esetén igen kárcsú...

 

megoldás, ötlet?

 

thx

_Nyuszi Creative Commons License 2013.02.03 0 0 20249

Az lehet a problémád, hogy az Excel az időt egy 0 és 1 közötti számként tárolja?

Tehát a 0 számot úgy jeleníti meg, hogy 0:00:00, az 1-et úgy, hogy 24:00:00, a 0,5 például a 12:00:00 és így tovább.

Tehát ha órában szeretnéd kapni az idők különbségét, akkor meg kell szoroznod 24-gyel. És ez már szorozható az órabérrel.

Előzmény: radon (20246)
radon Creative Commons License 2013.02.03 0 0 20248

Köszönöm, próbálom.

Előzmény: tbando (20247)
tbando Creative Commons License 2013.02.03 0 0 20247

A időkülönbözetet órában add meg. Amit aztán szorozhatsz az óradíjjal.

 

=(ora(idokülönbözet)+perc(idokülönbözet)/60)*óradij

 

 

Előzmény: radon (20246)
radon Creative Commons License 2013.02.03 0 0 20246

Szasztok!

Hogy tudom kiszámoltatni az általam követelt összeget?

Azt szeretném, hogy beírom a kezdési időt, befejezési időt, ezek különbözete adja a munkával eltöltött időt. Ez megy.

Ezt az eredményt szeretném megszorozni az óradíjjammal (ebbe bicskám törött), ez lenne a munkámért járó pénz összege.

Az időt nem tudom számmal (Ft) szorozni. Excel 2007. Előre is kössz. SOS

Sánta Kutya (SK) Creative Commons License 2013.02.03 0 0 20245

Lehet, hogy az volt a baja, hogy egyáltalán nincs argumentuma? Most már mindegy, a felhasználói munkalapon csak egy szám és két szöveg van max. 100-200 sorban, és nem szerkesztik túl gyakran, nem fog gondot okozni a volatile sem. Az egész csak annyit csinál, hogy az A oszlopban egymás alá írt számokból a másik munkalapon elkészít egy SQL lekérdezést, amit a user bemásolhat az adatbázis-kezelő felületre.

Előzmény: Retro Image (20244)
Retro Image Creative Commons License 2013.02.02 0 0 20244

Szerintem, ha írsz a függvénybe még egy (Range típusú) argumentumot, és a képletben beadod neki az A oszlopot, akkor az A oszlop bármi változására számolnia kellene, függetlenül attól, hogy esetleg nem is kezd semmit az A oszlop tartalmával.

Valahogy így:

 

Public Function AzÉnSzámolásom(Arg1, Arg2)

 

End Function

 

helyett

 

Public Function AzÉnSzámolásom(Arg1, Arg2, Arg3 As Range)

 

End Function

 

és amikor cellából meghívod, akkora képlet:

= AzÉnSzámolásom(akármi, mégvalami, A:A)

Előzmény: Sánta Kutya (SK) (20241)
tbando Creative Commons License 2013.02.02 0 0 20243

Nekem ennél egy faramucibb szitum volt. Két cellám értéke egy harmadik értékétől függött, amit manuálisan vittem be. A beírás után az egyik cella minden további kiszámolódott, a másik azonban csak az általad leírt F2 Enter hatására.  Elég fura, nem?

 

Aztán valahogy megoldottam, csak már nem tudom felidézni, hogy miképp. Egy biztos: application.volatile nélkül.  Talán egyszer beugrik. Akkor majd megírom.

Előzmény: Sánta Kutya (SK) (20241)
Sánta Kutya (SK) Creative Commons License 2013.02.02 0 0 20242

OK, úgy látszik, szombat este hiába vár gyors választ az ember, így hát gugli az én barátom.

Bele kellett írni az első sorba, hogy Application.Volatile, és így most már F9 sem kell, folyton frissül.

Habár ez meg a ló túloldala, de nem baj, nem nagy a táblázat.

Előzmény: Sánta Kutya (SK) (20241)
Sánta Kutya (SK) Creative Commons License 2013.02.02 0 0 20241

Van egy felhasználói függvényem, az A oszlopba írt számokkal csinál valamit. Viszont ha hozzáírok az A oszlophoz vagy törlök a végéről, akkor nem frissül a függvényérték, hiába nyomkodom az F9-et. Csak akkor frissül, ha megnyitom szerkesztésre azt a cellát, ahova a függvényt beillesztettem, és entert nyomok.

Hogy lehetne rávenni, hogy F9-re is számolja újra a sorokat? Vagy mi a frissítés módja?

_Nyuszi Creative Commons License 2013.02.01 0 0 20240

Csak közvetetten működik: beállítod a képet, a méretét a cella méretéhez igazítod, és azt mondod, hogy a cella méretétől és helyétől függően jelenjen meg a kép. (Így úgy működik, mintha a cella háttérképe lenne, de a valóságban nem az.)

Előzmény: roley (20238)
tbando Creative Commons License 2013.02.01 0 0 20239

Kösz. A jelzett helyen van a 2007-ben is. 

Előzmény: Törölt nick (20237)
roley Creative Commons License 2013.02.01 0 0 20238

Sziasztok!

 

 

 

ogyan lehet megcsinálni azt, hogy egy adott cellának a háttere egy kép legyen. Nem arra gondolok, amikor az egész dokumentumnak ad egy átteret, hanem konkrétan egy cella hátterét akarom megváltoztatni egy képeel.

Törölt nick Creative Commons License 2013.02.01 0 0 20237

Excel 2003: Tools --> Options --> View --> (uncheck) Page Breaks,

későbbi verziók (nem ellenőriztem): http://blogs.mccombs.utexas.edu/the-most/2010/02/17/hidepagebreaks/

Előzmény: tbando (20236)
tbando Creative Commons License 2013.01.31 0 0 20236

Sajna a módszered nem univerzális. Nálam nem müxik.

Előzmény: Törölt nick (20235)
tbando Creative Commons License 2013.01.31 0 0 20234

Ha rákattintok az oldaltörés megtekintésére, majd visszaváltok a Normálnézetre, oldaltörést jelző szaggatott vonalak maradnak a lapon. El lehet ezeket tüntetni a filementés/újrahívás nélkül?

Tyűha Creative Commons License 2013.01.31 0 0 20233

megpróbáltam elképzelni a táblázatodat, de ennyi info alapján nekem nem megy, túl sok variáció lenne lehetséges. Egy kicsit több info kellene nekem legalábbis.

Előzmény: djmorphy (20228)
SQLkerdes Creative Commons License 2013.01.30 0 0 20232

Nem tudom mennyit gúgliztál ebben a témában, de én olyan hozzászólásokat látok, hogy helyenként a nyelvi vagy regionális beállítások okoznak problémát.  Nézd meg mindkettőt, abból baj nem lehet.

Előzmény: Rása Rudolf (20231)
Rása Rudolf Creative Commons License 2013.01.30 0 0 20231

Ha a Skydrive-on keresztül az Excel Web App-ban dolgozom, ott alapból .xlsx a fájl kiterjesztése, úgy tudom, azt nem is tudom átnevezni .xls-re. Az az érdekes, hogy 1 éve használom így a szolgáltatást, eddig rendben működött. Egyik napról a másikra történt ez.
Ha van másnak is Windows Phone-os telefonja, és kipróbálta az általam leírtak, és ugyanezt tapasztalta, megoszthatná velem a véleményét. Nagyon jól jött nekem eddig a munkámnál, és most elég körülményes minden, hogy nem tudom szerkeszteni a korábban az Excel Office App-ban szerkesztett fájlokat.

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

Rudolf

Előzmény: Törölt nick (20230)
Törölt nick Creative Commons License 2013.01.30 0 0 20230

sima *.xls-ként is próbáltad?

Előzmény: Rása Rudolf (20229)
Rása Rudolf Creative Commons License 2013.01.30 0 0 20229

Szeretném kérni valaki segítségét abban, hogy mi lehet az oka, hogy a hét eleje óta nem tudom szerkeszteni a Nokia Lumia 800-as telefonomon az olyan Excel fájlokat, amelyeket előtte a Skydrive-ban módosítottam.
Üzenet: "Nem szerkeszthető a munkafüzet"

Ha létrehozok a neten a Skydrive-ban az Excel Web Apps-ban egy Excel fájlt, és csak 1 betűt írok bele, már akkor sem tudom szerkeszteni a mobilomon a Mobile Office-ban. Már alaphelyzetbe is visszaállítottam a Mobile Office-t, de hiába. A fájl kiterjesztése .xlsx, tehát még ez sem lehet gond.

Kérem valaki próbálja ki, és jelezzen vissza, hogy más is tapasztalja-e, mert nagyon nagy segítség lenne a munkámhoz, ha újra működne.

Köszönettel:

Rudolf

djmorphy Creative Commons License 2013.01.29 0 0 20228

Sziasztok!

 

 

A 19982 kérdésemben segítettetek, hogy egyszerűen beírom a legnagyobb értéket és addig a legördülő listából átvált raktáron felirattal(egy sima ha() fgv-el)

Most az lenne a kérdésem, hogy meg lehet-e oldani valahogy ne a listából kelljen nekem egyesével kiválogatni a sorszámhoz tartozó "visszahozva" feliratot hanem csak beírom egy cellába egymás után az értékeket és átváltja mert nagyon széles a táblázat.

 

Példával(hátha értelmesebb :D)

 

 

E:KR-ig tart a táblázat. 

Visszahozták pl a 50-51-52 sorszámot. Ez EY23,FB23,FE23.

És azt szeretném, hogy az "50", "51", "52"-t beírjam az A20-ba egymás után és a "raktáron"-ról átbillen a "visszahozva".

 

A problémám az, hogy ezt heti rendszerességel kell ami nem 3 tételt jelent hanem vagy 50-60-at. És egyesével átbillenteni nagyon nagy "élvezet" főleg, hogy nem is növekvő/csökkenő sorrendbe hozzák hanem össze vissza...Mert gépelni szerintem mégis csak gyorsabb mint keresgélni E-től KR-ig.

 

Meg lehet ezt valósítani? :)

 

Előzmény: djmorphy (19982)
pimre Creative Commons License 2013.01.28 0 0 20227

Kösz a mintákat. Megnézem. Egyébként azt hiszem, sejtem az Activecellel kapcsolatos kifogásaid okát. Amikor még programozásból éltem (ez még a DOS idején volt), akkor sokat foglalkoztam a strukturált programozással, és igyekeztem a programjaimat is ebben a szellemben felépíteni. 

 

A VBA-ban nem sokkal vagyok túl egy kezdő szintjén, ezért itt nem foglalkoztam eddig ilyesmivel, de feltételezem, hogy hasonló elvek miatt javasolod kerülni az ActivesheetActivecell, vagy Selection hivatkozásokat. És ebben egyetértek. És feltételezem, hogy a sendkeys elleni kifogásod is hasonló tőről fakad. Szóval nem beszélsz összevissza:-)

Előzmény: Retro Image (20222)
pimre Creative Commons License 2013.01.28 0 0 20226

Érdekes, nálam tbando makrója tökéletesen működik. És még az általa jelzett hiba sem jött elő. Persz nem próbálgattam órákon át. Bár amikor kipróbáltam egy Notebookon, ott előfordult, hogy a hüvelykujjam hozzáért a touchpad-hez, és elugrott a kursor.

Előzmény: Retro Image (20223)
tbando Creative Commons License 2013.01.28 0 0 20225

Elfogadom. Tényleg okosabb lehetett volna activecellel. De a sendkeys jutott az eszembe. Azt abszolut nem értem, hogy nálad miért nem müködik. Nálam, eltekintve az időnkénti NUMLOCK-os gubanctól, kifogástalanul müxik.

 

ps. Nálam a sendkeys csak olyan problémát okozott idáig, hogy amikor F5-tel indítottam a makrót, beleírt a makróba :((.

Előzmény: Retro Image (20223)
Retro Image Creative Commons License 2013.01.28 0 0 20223

Nekem a makród semmit nem csinál :o)

Pontosabban: a 7-es gombra kiírja, hogy VÉGE. De a többi gombra nem reagál. Pedig a szubrutinok meghívódnak, ellenőriztem törésponttal.

Egyébként rossznyelvek szerint a SendKeys még jobban kerülendő, mint az Activecell.

Szóval lehet, hogy pimre most azt fogja gondolni, összevissza beszélek, de ezt a feladatot mégis inkább Activecell-lel kellene megoldani, pl. így:

 

Sub bill1()

    Activecell = 1

    Activecell.Offset(, 1).Activate

End Sub

 

 

Előzmény: tbando (20216)
Retro Image Creative Commons License 2013.01.28 0 0 20222

"Ezt is meg lehet oldani hasonló módon?"

 

Persze, teljesen ugyanaz a módszer.

MsgBox Workbooks("akármi.xls").Worksheets("Munka128").Range("A4").SpecialCells(xlLastCell).Row

 

Bár a magam részéről jobban csípem ezt a megoldást:

 

Dim ML As Worksheet

Set ML = Workbooks("akármi.xls").Worksheets("Munka128")

MsgBox ML.Range("A" & ML.Rows.Count).End(xlUp).Row

 

A két kód nem ekvivalens.

A második az A oszlop utolsó (legalsó) töltött celláját találja meg, függetlenül attól, hogy a többi oszlopban mi van.

Az első viszont figyelembe veszi a teljes munkalapot, és (azt hiszem) az utolsó nem üres sor és az utolsó nem üres oszlop metszetét találja meg. De őszintén szólva nem vagyok teljesen képben a .SpecialCells(xlLastCell) elvi működését illetően.

Előzmény: pimre (20217)
tbando Creative Commons License 2013.01.28 0 0 20221

A {numlock} beiktatatása szerintem nem túl jó ötlet.  Inkább kéne valami Numpad:=true féle, ha van egyáltalán valami ilyesmi.

 

Praktikusan egyébként nem okoz túl nagy gondot. Amikor elkezd hülyéskedni, megnyomod a numlockot én onnantól jó. 

Előzmény: Törölt nick (20219)
tbando Creative Commons License 2013.01.28 0 0 20220

Te is tapasztaltad?

 

Előzmény: Törölt nick (20218)
pimre Creative Commons License 2013.01.28 0 0 20217

Igazad van, és a tegnapi válaszod nyomán végülis így oldottam meg a feladatot, tehát az 1. lapon állva olvastam be a 2. munkalap adatait. Így valóban elegánsabb. Sajnos nem vagyok profi az Excel VBA parancsait illetően.

Egyetlen ponton nem tudom, hogy lehetett volna kiváltanom a munkalapváltást. A 2. munkalap utolsó sorának meghatározását csak az ActiveCell.SpecialCells(xlLastCell).Row paranccsal tudom elérni. Ezt is meg lehet oldani hasonló módon? 

Előzmény: Retro Image (20215)
tbando Creative Commons License 2013.01.28 0 0 20216

A makróm időnként megmagyarázhatatlan hibát produkál.  Úgy tűnik, hogy a füzetbehívást követő első bill_15 indítása után fordul elő, de akkor sem mindig, csak néha. Az szok ilyenkor előfordulni, hogy az első értéket még beírja, majd utána a NUMLOCK kikapcsol, az ember meg csak nézi, hogy hova is ugrott a kurzor. A NUMLOCK bekapcsolásával a hiba ugyan gyorsan reparálható, és utána a működés problémamentesnek. A kérdésem csak annyi, hogy a makróm bugos vagy az excel? 

Előzmény: tbando (20199)
Retro Image Creative Commons License 2013.01.28 0 0 20215

"Egy ponton vitatkozom veled."

 

Szeretek vitatkozni :o)

 

"Erről az a véleményem, hogy rég eláshatnám magam a programozási ismereteimmel, ha megengedném magamnak azt, hogy a program bármely pontján ne legyek halálosan biztos abban, hogy éppen melyik munkalapon állok."

 

Erről az a véleményem, hogy ha valaki Activesheet, Activecell, vagy Selection hivatkozásokat használ, az nem lehet teljesen biztos benne, hogy éppen hol áll. Számtalan lehetőség van, hogy hol tud kisiklani a biztosnak hitt hivatkozás.

 

Másrészt meg sose értettem, hogy minek váltogatni a lapokat, ha egyszer a Munka1 lapon "állva" a Munka2 lap bármelyik cellája, de még a [Munkafüzet2.xls]Munka2 lap bármelyik cellája is elérhető és lekérdezhető anélkül, hogy arra "állnánk rá". A Select utasítás csak arra jó, hogy vibráljon a kép a makró futása közben. (Persze ez is lehet cél, de akik a legtöbb Selectet használnak, azok általában le is tiltják Screenupdating=False paranccsal :o)))

 

Egyébként nincs mit.

:o)

Előzmény: pimre (20214)
pimre Creative Commons License 2013.01.27 0 0 20214

Köszönöm. Igen, ezeket a hivatkozásokat máskor már használtam is, amikor más fájlból kellett adatokat beolvasnom, meg amikor több különböző munkalapról kellett adatokat összehoznom. Csak itt egy viszonylag egyszerű feladatról volt szó, ahol csak egy pillanatra megyek át egy új munkafüzetlapra néhány adat beolvasásáért aztán megyek is vissza a másikra, ahol az adatok vannak. Szóval szó sem volt lustaságról, csak szükségtelen volt a teljes hivatkozás használata. Mindenesetre a DIM és Set sorokat köszönöm, valahogy eddig nem használtam ilyen megoldást.

 

Egy ponton vitatkozom veled. Azt írod: "...ha biztos akarsz lenni benne, hogy a hivatkozásod nem téveszt célt, mindig odateszed őket". Erről az a véleményem, hogy rég eláshatnám magam a programozási ismereteimmel, ha megengedném magamnak azt, hogy a program bármely pontján ne legyek halálosan biztos abban, hogy éppen melyik munkalapon állok.

 

Amit a sorszámra való hivatkozásról mondasz, abban teljesen igazad van. Csak itt speciális eset volt, hogy nem akartam a felhasználó kezét megkötni a munkalap elnevezésében, hanem azt írtam le a programleírásban, hogy a működés feltétele, hogy az első munkalapon legyenek az adatok, amivel számol, és a másodikon a kihagyandó dátumok listája.

 

Persze aztán megoldottam a dolgot azzal, hogy a munkalap nevét szerencsére megengedte a 2007-es is kiolvasni, így a cells hivatkozásokat már meg tudtam adni a munkalap nevével.

 

Még egyszer köszönöm.

 

Előzmény: Retro Image (20212)
hyperstoke Creative Commons License 2013.01.27 0 0 20213

Köszi mindenkinek az erőfeszítést, ki fogom próbálni, csak sajna nem tudtam várni és reggel korán elkezdtem, és mostanra végezve be is fejeztem az összes kérdőív rögzítését. De mindeképpen ki fogom próbálni a héten a megoldást, amint lesz rá egy pici időm (először a kiértékelést kell megcsinálnom :) ), mert még kell majd jópárszor hasonlót csinálnom. 

 

Mindenesetre ezer hála a segítségért.

Retro Image Creative Commons License 2013.01.27 0 0 20212

Az egzakt hivatkozás egy cellára így néz ki:

 

Application.Workbooks("munkafüzet neve").Worksheets("munkalap neve").Cells(sor, oszlop)

vagy

Application.Workbooks(1).Worksheets(2).Cells(sor, oszlop)

 

Ebből a kékkel írt rész elhagyható, de ha elhagyod őket, akkor az Excel azzal helyettesíti, amit jónak lát.

Olyannal még nem találkoztam, hogy az Application qualifier elhagyásából probléma lett volna, de a másik kettő fontos, és ha biztos akarsz lenni benne, hogy a hivatkozásod nem téveszt célt, mindig odateszed őket. És ez nem is jelent feltétlenül sokkal több gépelést. Csak egy Worksheet típusú változó kell:

 

Dim ML As Worksheet

Set ML = Application.Workbooks(1).Worksheets(2)

 

és innentől kezdve plusz 3 karakter az egzakt cellahivatkozás:


ML.Cells(sor, oszlop)

 

Javaslom a kódod átalakítását, és szertintem csont nélkül menni fog xl2007-ben is.

 

A másik dolog:

Sorszámmal hivatkozni a munkalapra veszélyesebb, mintha a nevét adnád meg.

Ha névre hivatkozol, és a felhasználó átnevezi a munkalapot, akkor max. hibát dob a makró és leáll.

Ha sorszámra hivatkozol, és a felhasználó egy munkalap-beszúrással átrendezi a képet, akkor a makró esetleg hiba nélkül lefut, és fel sem tűnik senkinek, hogy fontos adatokat írt felül egy másik munkalapon.

 

Ezekre egy lehetséges megoldás, ami munkafüzeten belül viszonylag bolondbiztos:

Nevezd el a cél munkalap A1 celláját pl. "kapocs" néven, és legyen a név munkafüzet hatályú.

Utána akárhogy nevezgeti a felhasználó a munkalapot, azt az Excel névdefiníció automatikusan leköveti, és mindig meg lehet találni a munkalapot így:

Set ML = Range("kapocs").Parent

 

Kivéve, ha a felhasználó törli a munkalapot :o)

Előzmény: pimre (20209)
pimre Creative Commons License 2013.01.27 0 0 20209

Ez nehezen képzelhető el, amikor egy működő xls (2003) fállból copyzom a programszöveget egy xlsm (2007) fájlba, és míg az előbbi rendesen lefut, az utóbbi meg nem.

Előzmény: tbando (20208)
tbando Creative Commons License 2013.01.27 0 0 20208

Persze te is elnézhettél valamit.  Van ilyen. Én épp most vagy 2 óra hosszat kerestem egy makrómban a hibát, aztán amikor meglett, kiderült, hogy valami egészen banális apróság volt. Amit kapásból illett volna észrevennem..

Előzmény: tbando (20207)
tbando Creative Commons License 2013.01.27 0 0 20207

Akármelyik is a hibás, az sehogy se érthető, hogy egyszer elfogadja worksheet(2)-t aktívnak, egyszer meg nem.

Előzmény: pimre (20206)
pimre Creative Commons License 2013.01.27 0 0 20206

Most utólag jut eszembe, hogy még abban sem vagyok biztos, hogy maga az Excel 2007 a hibás, vagy csak az a transzformáló program, amit az office tölt le, amikor a 2007-ben készült adattáblázatot akarom megnyitni. És az így transzformált fájlba másoltam be a 2003-as alatt írt programomat, és találtam meg a hibát. Lévén, hogy Excel 2007-esem nincs.

Előzmény: tbando (20205)
tbando Creative Commons License 2013.01.27 0 0 20205

Van itt még valami speciális.  A probléma ugyanis nem egyszerűen az, hogy az excel felülről nem kompatibilis, hanem, hogy az egyik müveletnél kompatibilis, a másiknál meg nem.  Legalábbis ez következik számomra abból, hogy azt írod: " Worksheets(2).Select  után a munkalapváltás látszólag rendben megtörtént. Az ActiveCell.SpecialCells(xlLastCell).Row  parancs is rendben megtalálta az utolsó sort. Viszont a Cells(sor, oszlop) parancs meg rosszul hivatkozott. " 

 

No, az ilyen trükkök hülyítik meg a usert.

 

Előzmény: pimre (20203)
Sánta Kutya (SK) Creative Commons License 2013.01.27 0 0 20204

Makróban ez simán előfordul.

Előzmény: pimre (20203)
pimre Creative Commons License 2013.01.27 0 0 20203

Köszönöm, ez múködik. Eredetileg szándékosan szerettem volna elkerülni, hogy a munkalapok nevével foglalkozzam az aktuális programban, rá akarom bízni a felhasználóra a munkalapok elnevezését.  De végülis nem gond kiolvasni azt.

 

Viszont ez felvet egy elméleti kérdést: Létezik, hogy az Excel újabb verziói nem teljesítik a felülről kompatibilitás alapvető követelményét? Erre nem számítottam, és ha így van, akkor ez méltán váltja ki a neheztelésemet. Mondhatnám üzleti szempontú disznóság. Vagy csak figyelmetlenség? Vagy rosszul értelmezek valamit, és más szempontok miatt volt szükséges a munkalapok használatának alapvető átdolgozása?

 

Előzmény: Törölt nick (20170)
Delila10 Creative Commons License 2013.01.27 0 0 20202

Szívesen.

Előzmény: Tyorotyere (20201)
Tyorotyere Creative Commons License 2013.01.27 0 0 20201

 

 

Köszi! Utánanézek majd, mert úgy érzem nagyon le vagyok maradva :D

Előzmény: Delila10 (20200)
Delila10 Creative Commons License 2013.01.27 0 0 20200

A SOR() függvény azt a számot adja vissza, amelyikben szerepelteted. Az A2 (B2, C2, stb.) cellában 2 lesz az értéke, ezért kell levonni belőle 1-et.

 

Az INDIREKT függvényt nézd meg a súgóban, biztosan jobban leírja, mintha én mesélném el a működését.

Előzmény: Tyorotyere (20198)
tbando Creative Commons License 2013.01.27 0 0 20199

Na elkészült! Te biztos hamarabb elkészültél volna vele. De végül nekem is sikerült összehozni :))).

 

Hyperstroke FIGYU!

 

Elinditod a bill_15-t, onnantól elég az 1-5 értékeket leütnod, erre beírja, és lép egyet jobbra.  A '6' billentyű hatására új sort kez, a '7'-re meg leáll az onkey kényszer. 

 

Sub bill_15()

ActiveCell = "BILL 1-5 INDUL"

Application.OnKey "{97}", "bill1"

Application.OnKey "{98}", "bill2"

Application.OnKey "{99}", "bill3"

Application.OnKey "{100}", "bill4"

Application.OnKey "{101}", "bill5"

Application.OnKey "{102}", "bill6"

Application.OnKey "{103}", "bill7"

End Sub

 

Sub bill1()

Application.SendKeys ("1" + "{right}")

End Sub

 

Sub bill2()

Application.SendKeys ("2" + "{right}")

End Sub

 

Sub bill3()

Application.SendKeys ("3" + "{right}")

End Sub

 

Sub bill4()

Application.SendKeys ("4" + "{right}")

End Sub

 

Sub bill5()

Application.SendKeys ("5" + "{right}")

End Sub

 

Sub bill6()

Application.SendKeys ("{down}" + "{end}" + "{left}")

End Sub

 

Sub bill7()

Application.OnKey "{97}"

Application.OnKey "{98}"

Application.OnKey "{99}"

Application.OnKey "{100}"

Application.OnKey "{101}"

Application.OnKey "{102}"

Application.OnKey "{103}"

ActiveCell = "VEGE"

End Sub

 

 

Előzmény: Retro Image (20185)
Tyorotyere Creative Commons License 2013.01.27 0 0 20198

OOO köszi! Nagyon jó! Működik! Most ha másik oszlopot szeretnék akkor csak a B3 at átírom és ugyanígy működni fog! Nem igazán értem maúgy, jobb lenne ha megérteném, de az a lényeg h működik! 

 

 

Köszönöm mindenkinek aki segíteni akart!!!

Előzmény: Delila10 (20196)
Sánta Kutya (SK) Creative Commons License 2013.01.27 0 0 20197

Így egyszerűbb. Nem tudtam, hogy argumentum nélkül is működik.

Előzmény: Delila10 (20196)
Delila10 Creative Commons License 2013.01.27 0 0 20196

Az A2 cellába: =INDIREKT("Munka" & SOR()-1 & "!B3")

Ezt másolhatod le, ameddig kell.

Előzmény: Tyorotyere (20194)
Sánta Kutya (SK) Creative Commons License 2013.01.27 0 0 20195

Örülök, hogy valaki hasznát is látta, mert az eredeti kérdező azóta se járt erre, talán nem is érdekli.

 

Az INDEX(HOL.VAN()) párost általában így együtt használjuk (alternatívája az FKERES, de az csak rendezett táblázatokban működik, és én kevésbé is szeretem). A belső megmutatja, hányadik sorban van meg egy adat egy táblázatban, a külső kikeresi egy megfelelő másik adatot egy másik táblázatrészlet ugyanannyiadik sorából.

A CELLA egy ronda függvény, olyankor jó, ha valamilyen lehetőség nincs beleépítve rendesen az Excelbe, és jobb kézzel kell a bal fülünket vakarni, mint a lenti Munka1!$B$3... sorozatnál is. Veszek egy cellát, megkérdem az Excelt, hogy hányadik oszlopban van, és ezt már lehet jobbra húzással folytatni, míg egy sima 1, 2, 3... számsort a képletnek azon a helyén nem. Maga az A1 cella ebben az esetben a kutyát sem érdekli, lehetne A2345 is.

Előzmény: Sanyi0007 (20160)
Tyorotyere Creative Commons License 2013.01.27 0 0 20194

 

Tehát akkor megpróbálom még egyszer! Sajnos nem értek annyira az excelhez! Egyenlőség jel nélkül csináltam különben nem látszana. A fekete rész az jó! Tehát minden munkafüzeten a B3 as cellát szeretném állandóra azért raktam a $ jelet de van 150 munkalapom. És minden munkalapon a B3 as kellne tehát az 5. sorba az kellene hogy munka  Munka4!$B$3 a 6. ba Munka5!$B$3  hogy csak a munkalap változzon de nem változik!!! 

Beritam az első hármat kézzel ami feketével van jelölve, utána kijelöltem mind a hármat hogy akkor a b3 állandó marad és a munkalap száma pedig nőni fog, de ez lett belőle! Értitek mit szeretnék, hogy csak a munkalap száma változzon a lehuzásos másolás során mert nem akarom külön bemásolni egyenként a 150 et hanem csak ugy h lehúzom mert még sok oszlopba kellene ugyan ezt megcsinálni!!!

 

Köszönöm mindenkinek aki eddig írt!

Sánta Kutya (SK) Creative Commons License 2013.01.27 0 0 20193

Mert abszolút hivatkozás. :-)

Előzmény: B.Gyuri (20173)
Sánta Kutya (SK) Creative Commons License 2013.01.27 0 0 20192

Nem tudom. Lehet, hogy az meg a fordítottja, és azért van benne, mert az Excelben is benne van? Vagy mert ha makróban ilyen értéket írsz a cellába, automatikusan pénznemként jelenik meg? De ezt nem próbáltam, csak tipp.

Előzmény: tbando (20154)
Sánta Kutya (SK) Creative Commons License 2013.01.27 0 0 20191

Az ilyesminek gyakran a pontatlanul feltett kérdés az oka.

Előzmény: Törölt nick (20190)
Törölt nick Creative Commons License 2013.01.27 0 0 20190

aztaaa, ahányan, annyi féleképpen értelmeztük.

Előzmény: Törölt nick (20189)
Törölt nick Creative Commons License 2013.01.27 0 0 20189

hát vedd ki a $ jelet.

ahol a $ jel van, az lesz abszolút. Ha szám előtt akkor a sor, ha betű előtt, akkkor az oszlop. Ha itt is ott is akkor mindkettő (ez van most nálad)

Előzmény: Tyorotyere (20186)
Delila10 Creative Commons License 2013.01.27 0 0 20188

Ha minden lapodon a B3 cellát kell összesíteni, akkor az összesítő lapon a képlet legyen

=SZUM(Munka1:Munka10!B3)

Előzmény: Tyorotyere (20186)
Sánta Kutya (SK) Creative Commons License 2013.01.27 0 0 20187

=INDIREKT("Munka"&CELLA("sor";A1)&"!$B$3")

Előzmény: Tyorotyere (20186)
Tyorotyere Creative Commons License 2013.01.27 0 0 20186

Sziasztok!!

 

 

Van egy problémám az excellel! Van sok sok munakalpom és a végén egy összesítő! Na most az összesítőt probálom beprogramozni oszlopokra nézve! Azt már megtaláltam hogy a képlet második fele ne változzon ugye ez a $ jel. De a munkafüzet fele meg pont az ellenkezője, hogy nem akar változni pedig az kellene. 

=Munka1!$B$3 ezzel próbáltam az egymás alatti 3 cellát átírtam =Munka2!$B$3  ,  =Munka3!$B$3   ezután kijelöltem mindet és úgy húztam a sarkánál fogva de nem írta be a munka 4, munka 5 hanem ugyanugy 1,2,3 at ísmételte!

 

Hogyan lehet rábírni, hogy működjön? 

Retro Image Creative Commons License 2013.01.27 0 0 20185

Hú, ez nagyon jó ötlet! Hyperstroke kérdésére keresed a választ? Mert így valóban meg lehet oldani, és hülye voltam, hogy azt mondtam, nem.

 

Numpad 1-re azt írd:

Application.OnKey "{97}", "Makró1"

 

Numpad 2-re:

Application.OnKey "{98}", "Makró2"

stb.

 

Csinálod, vagy csináljam? Hyperstroke már biztosan nagyon várja a választ :o)

 

Előzmény: tbando (20184)
tbando Creative Commons License 2013.01.27 0 0 20184

Az miért van, hogy az Application.Onkey 1-t a karakter klaviaturáról tudja értelmezni, de a számbillentyűzetről nem?

tbando Creative Commons License 2013.01.27 0 0 20183

Szerintem mégis nyuszi ötlete tűnik a legjobbnak. Csak nem a szövegből oszlopok felbontással, hanem egy mid sorozattal

Előzmény: hyperstoke (20179)
Retro Image Creative Commons License 2013.01.26 0 0 20182

Igazából így is, úgy is be kellett volna gépelned, nem?

Itt most annyi a plusz, hogy minden számjegy után egy enter is kell.

Használd a másik kezed :)

Előzmény: hyperstoke (20181)
hyperstoke Creative Commons License 2013.01.26 0 0 20181

akkor szerintem legyűröm a lustaságom és begépelem 1-2 nap alatt :) köszi azért

Előzmény: Retro Image (20180)
Retro Image Creative Commons License 2013.01.26 0 0 20180

Ezt ebben a formában nem fogod tudni makróval megoldani.

Max úgy tudnám elképzelni, hogy van egy userform, amin n darab beviteli mező. Azoknál meg lehet oldani, hogy 1 billentyű lenyomása után máshová kerüljön a fókusz.

Aztán ha mindbe írtál adatot, akkor automatikusan átmásolódik az egész a munkalapra. Vagy valami efféle trükk.

 

Előzmény: hyperstoke (20179)
hyperstoke Creative Commons License 2013.01.26 0 0 20179

A szövegből oszlopok sem a legjobb megoldás, mert ha véletlenül megcsúszok a számok beírásával, nagyon nehéz visszaellenőrizni, hol tévedtem. Úgyhogy valahogy majd a makró lesz megoldás, bár ahhoz nem nagyon értek... Azért köszi

Előzmény: _Nyuszi (20178)
_Nyuszi Creative Commons License 2013.01.26 0 0 20178

Hát, akkor viszont írhatsz rá makrót, vagy utólag a "szövegből oszlopok" "menüpont" segítségével darabolhatod a szöveget.

Előzmény: hyperstoke (20177)
hyperstoke Creative Commons License 2013.01.26 0 0 20177

Igen azt tudom, de nekem olyan kéne, hogy mivel csak egy karakter kerül egy cellába, így amint lenyomok egy billentyűt (ezesetben 1-5-ig számot), minden egyéb gombnyomás nélkül ugorjon át utána a következő cellába.

Előzmény: _Nyuszi (20175)
_Nyuszi Creative Commons License 2013.01.26 0 0 20176

A cellahivatkozásra állva és az F4-et nyomogatva mind a négy lehetőséget (nincs dollárjel; csak a sor abszolút; csak az oszlop abszolút; a sor és az oszlop is abszolút) végigzongorázod, így könnyebb lehet a dollárjelek kitétele.

Előzmény: B.Gyuri (20173)
_Nyuszi Creative Commons License 2013.01.26 0 0 20175

A beállításoknál be lehet állítani, hogy Enter lenyomására a négy irány közül merre lépjen tovább.

Előzmény: hyperstoke (20174)
hyperstoke Creative Commons License 2013.01.26 0 0 20174

Jó estét!

 

Excel 2010-ben dolgozok és rengeteg kérdőívet kell bevinnem táblázatba. Egy-egy cellába egy szám kerül csak 1-5-ig.

 

Kérdésem, hogy meglehet-e oldani, hogy amikor leütök egy számot, egyből a következő cellába ugrik? Tehát hogy ne kelljen tab-ot vagy jobbra nyilat nyomni.

 

Előre is köszi.

 

Üdv.

B.Gyuri Creative Commons License 2013.01.26 0 0 20173

"abszolút referencia" szavakra nem találtam semmi ezzel kapcsolatosat, viszont kipróbáltam ahogyan írtad.

MŰKÖDIK :)

Köszönöm szépen, nagyon sokat segytettél!

Előzmény: SQLkerdes (20172)
SQLkerdes Creative Commons License 2013.01.26 0 0 20172

Keress rá az excel help-ben az abszolút referencia fogalmára.  Ha jól értem a problémádat, akkor a kedvezmények!$D$3-szerű képletezésre lesz szükséged, de olvass utána, mert nem mindegy hova teszed a dollárjelet és hogy mennyit.

Előzmény: B.Gyuri (20171)
B.Gyuri Creative Commons License 2013.01.26 0 0 20171

Sziasztok,

 

Excel2007-ben készítek egy táblázatot amiben rendeléseket szeretnék nyilvántartani. Kedvezményes árakat kell számolnia, a kedvezmények táblázatban külön munkalapokon vannak, a képletek ezeknek a celláira hivatkoznak (mivel itt szerepelnek a diszkont kódok és a rendelés módja).

A szükséges képlet megvan, minden működik rendesen.

Ezt a képletet kéne kb 200-300 sorban használnom.

Szeretnék sorozatot csinálni belőle, de ha a jobb alsó sarkánál fogva lehúzom, akkor nem csak azokat a celláknak a sorszámát növeli ami az aktuális sor száma (és nyilván ezt én is szeretném növelni), hanem azoknak a celláknak a sorszámát is amik a táblázatban lévő adatokra mutatnak.

Példa (ez csak egy részlet):

=HA(E3="Normál";(HA(D3=kedvezmények!A3;((100-kedvezmények!D3)/100)*F3));(HA(D3=kedvezmények!A3;((100-kedvezmények!E3)

 

azt szeretném, hogy amikor lefelé húzom, akkor a másik munkalapra mutató hivatkozások ne változzanak, mert jelenleg lehúzáskor azok növekednek.

 

Bocsánat, ha szakszerűtlen kifejezéseket használtam

 

Előre is köszi a segítséget.

 

Üdv,

Gyuri

Törölt nick Creative Commons License 2013.01.26 0 0 20170

probald igy:

Sheets("munka1").cells(1).Select

Előzmény: pimre (20169)
pimre Creative Commons License 2013.01.26 0 0 20169

Segítséget kérek. Excel 2003 alatt írok programot. De ezt Excel 2007 alatt kell majd használni, amit sosem programoztam.

 

A programot egy Excel2007 alatt készült táblázatban használom, amit konvertáltam. Így a konvertált fájl nagyrészt megtartja a 2007-es verzió tulajdonságait.  Az ebbe bemásolt program legnagyobb részben rendben lefut, de beleütköztem egy eltérésbe: Az a sejtésem, hogy a 2007-es verzió a munkalapokat másképp kezeli, mint a 2003.

 

A konkrét zavar a következő helyen fordult elő: A Worksheets(2).Select  után a munkalapváltás látszólag rendben megtörtént.

Az ActiveCell.SpecialCells(xlLastCell).Row  parancs is rendben megtalálta az utolsó sort.

 

Viszont a Cells(sor, oszlop) parancs nem az aktuálisnak látszó munkalap cellájának adatát olvassa, hanem a munkalapváltás előtti lapot. Ellentétben a 2003-as verzióval, ahol ez a szándékaim szerint működik.

 

Tudnátok segíteni, hogy hogyan küszöböljem ki ezt az eltérést a 2007-es verzió alatt?

 

pimre Creative Commons License 2013.01.26 0 0 20168

Kösz a dícséretet. De olyan sok munka nem volt vele. Beírtam a google keresőbe, hogy "excel currency adattípus" amire nem adott értelmes találatot. Aztán elhagytam az excelt, és a "currency adattípus" első találata az volt, amit bemásoltam.

 

Az igazság persze az, hogy egy mukkot nem értek belőle, csak sejtéseim vannak, hogy miről beszél, de ezek szerint hasznos volt:-)))

Előzmény: tbando (20167)
tbando Creative Commons License 2013.01.26 0 0 20167

Brávó! Ez igen!

 

Én csak odáig jutottam a kutakodásaim során, hogy valszeg a pénzügyeseknek lehet otthonosabb a currency formátum.  Hogy a feltöltést is gyorsítja, azzal értelemszerűen nem találkozhattam, mivel nem dolgozom ekkora adathalmazokkal. De az aggregálási eltérések már nekem is okoztak problémát, amikor az a=b-vel vezérelt eseményeim  nem a várakozásaim szerint alakultak a 15-16 ik számjegybeli különbözőség miatt. Emiatt az ilyen vezérlések előtt magam is fixpontos vezérlést alkalmazok, amit általában a kerekítes a 10-ik számjegyre alkalmazásával szoktam elérni. (Makrót is írtam rá).  Egy kicsit bosszantó, hogy ennek ellenére nem tűnt fel a kerekítéseim és a currency fixpontos adatábrázolása közti analógia. 

 

 

Előzmény: pimre (20166)
pimre Creative Commons License 2013.01.26 0 0 20166

Hát jól van, Te akartad. Bűnhődj! :-))) http://jegyzetek.biprojekt.hu/money-money-money és innen egy link a következőre: http://sqlcat.com/sqlcat/b/technicalnotes/archive/2008/09/25/the-many-benefits-of-money-data-type.aspx

 

Szóval, ha jól értem, gyorsabb, ha több milliárd adatot kell feldolgozni:-))) és pontosabb: "Egyszóval érdemes használni a money adattípust a relációs oldalon és a Currency adattípust a többdimenziós oldalon, mert ezzel gyorsíthatjuk a betöltéseinket. (Arról nem is beszélve, hogy a lebegőpontos számok aggregálása nem biztos, hogy konzisztens eredményt ad)" :-)))

Előzmény: tbando (20164)
tbando Creative Commons License 2013.01.26 0 0 20165

Úgy látom nem szánt meg senki.  Ezért fölvázolok neked itt egy egyszerű megoldást.  Persze csak ha lehetséges. Mert ahogy leírtad, úgy megoldhatatlan. Ugyanis semmilyen cella alá  nem helyezhető el egy teljesen  kitöltött munkalap, mivel nem lesz hozzá elég hely. Az azonban minden további nélkül megoldható, hogy két kisebb tartomány közül az egyiket másolja oda az A1A2 feltételtől függően.  Ehhez első lépésben kapcsold be a makrórögzítőt, majd  manuálisan másold a kívánt helyre az egyik tartományt, és makró vége. Ez lesz a makró1. Majd ugyanezt csináld meg a másik tartománnyal. Ez meg a makró2 lesz.  Ezután az egyik makró alá beírod a makró3-t. Ehhez Alt+F8 után a megjelenő makrólistából kijelölölöd az egyiket, és kattintasz a Szerkesztés gombra.  Majd begépeled vagy bemásolod az alábbit:

 

sub makro3 ()

if Range(“a1”)>Range(“a2”)  then makro1 else makro2

end sub

 

És kész. Az a1>a2 feltételt persze csak meghasaltam, mivel nem konkretizáltad. Te természetesen a saját feltételed írd az a1>a2 helyére.

 

****

 

Egyébként, ha a két másolandó tartomány egyforma nagyságú, akkor gyakran célszerűbb makró nélkül megoldani a feladatot az alábbi képlet végigmásolásával a potenciális területen:

 

=HA($a$1>$a$2;tartomany1cella1;tartomany2cella1)

 

Előzmény: Gabe1977 (20142)
tbando Creative Commons License 2013.01.25 0 0 20164

Úgy látszik, itt senkinek sincs. Pedig biztos van valami értelme. 

Előzmény: pimre (20159)
pigee Creative Commons License 2013.01.25 0 0 20163

Nagyon koszonom, vegre megvan a hetvegi programom!

Előzmény: tbando (20143)
pigee Creative Commons License 2013.01.25 0 0 20162

Koszonom, tavabbitom.

Előzmény: tbando (20141)
tbando Creative Commons License 2013.01.25 0 0 20161

A legjobb, ha magad találod ki. Abból indulj ki, hogy a képlet bár bonyolultnak néz ki, valójában egy egyszerű index fgv. Azaz =Index(tartomány;sor;oszlop).  

Előzmény: Sanyi0007 (20160)
Sanyi0007 Creative Commons License 2013.01.24 0 0 20160

Nagy mágus vagy Sánta Kutya!

Ugyan nem én tettem fel a kérdést, de nekem is segítettél a válaszoddal, kössz.

 

Valaki el tudná magyarázni hogyan működik ez a függvény:

=INDEX(Tabelle1!$A:$F;HOL.VAN($A1;Tabelle1!$B:$B;0);CELLA("oszlop";A1)),

minek mi a jelentése, hogy ne csak használjam, hanem értsem is?

 

 

Előzmény: Sánta Kutya (SK) (20121)
pimre Creative Commons License 2013.01.24 0 0 20159

Sajnos halvány fogalmam sincs.

Előzmény: tbando (20154)
ujszaszy Creative Commons License 2013.01.24 0 0 20158

nincsmit

Előzmény: Hukszosz (20157)
Hukszosz Creative Commons License 2013.01.24 0 0 20157

 

Köszönöm a gyors választ!!!!!

Előzmény: ujszaszy (20156)
ujszaszy Creative Commons License 2013.01.24 0 0 20156

=HA(A2<B2;B2+28;VALAMI)

 

szia, ha a fenti képletet beteszed a C2 cellába, akkor megcsinálja, bár abban az esetben, ha nem kisebb az A a B-nél, akkor a VALAMI-t cseréld ki neked megfelelő opcióra

Előzmény: Hukszosz (20155)
Hukszosz Creative Commons License 2013.01.24 0 0 20155

 

Sziasztok segítséget szeretnék kérni.

Ha a B oszlopban található dátum értékénél A oszlop értéke kisebb, akkor C oszloba íródjon ki azaz érték, ami B oszlop értékéhez 28 napot ad hozzá.

Tudnátok ebben segíteni?

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

tbando Creative Commons License 2013.01.24 0 0 20154

SK és pimre!

 

Kösz a válaszotokért.  SK tippje elég plauzibisnek tűnik, pimre linkje meg nagyon hasznosnak.

 

Talán erre is tudtok valami okosat válaszolni: Milyen esetekben célszerű Currency adattípust használni? Mert én még olyannal nem találkoztam, ahol a double ne lett volna elegendő. 

Előzmény: pimre (20152)
pimre Creative Commons License 2013.01.24 0 0 20152

Lehet, hogy integernek veszi (0/1)? A fene tudja, hogy miért nem byte típusnak. Mindenesetre az egyes változótípusok helyfoglalása itt teljes egészében megtalálható: http://www.excelfunctions.net/VBA-Variables-And-Constants.html

Előzmény: tbando (20150)
Sánta Kutya (SK) Creative Commons License 2013.01.24 0 0 20151

Egy bit ugye sehol nincs, mert többe kerülne a leves, mint a hús. Egy bit csak hardverszinten van, szoftveresen csak akkor, ha te magad állítod össze a szót logikai műveletekkel.

A két byte-ra csak tippelek: mivel maga az Excel nem tartalmaz logikai típust, csak a VBA, talán úgy gondolták, hogy azért a kevés emberért, aki tízezrével akarna logikai változókat dimenzionálni, nem éri meg leprogramozni annak a kezelését. A 2 byte-os szám már készen áll, egyszerűbb a mai memóriák mellett azt használni. Nem tudom, a Kovalcsik-könyv mikor íródott, de az talán még a 16 bites korszakból eredhet, és akkor készen is áll a válasz.

Előzmény: tbando (20150)
tbando Creative Commons License 2013.01.23 0 0 20150

Azt olvasom a Kovalcsik könyvben, hogy a Boolean típusú változóknak az excel 2 byte-t biztosít. Miért nem elég 1? Amikor elvben 1 bit is elég lenne?

Törölt nick Creative Commons License 2013.01.23 0 0 20149

Dehogynem! És Jó is arra, amire kell. Köszönöm a fáradtságodat.

 

Előzmény: Törölt nick (20148)
Törölt nick Creative Commons License 2013.01.23 0 0 20147

Sziasztok,

Az istennek sem találok valamit, azt hiszem itt is olvastam róla.

Valami olyasmi volt, hogy VBA-ban van egy parancs, ami letiltja a felugró üzenetablakokat. Emlékszik, v tud ilyet valaki?

 

Egyébként arról van szó VBA-ban, hogy külső csatolást tartalmazó munkalapot másolok, és be akarja kérni a csatolt fájlt másolásnál, hogy frissítsem, Ezt akarom letiltani, h ne kérje, v nyomja el cancel-el.

Tud ilyet vki?

 

 

pimre Creative Commons License 2013.01.23 0 0 20146

Ez most egy vicc? Hogy adott esetben "egy teljesen kitöltött munkalapot helyezzen" egyes cellák alá? Ami engem illet, legfeljebb egy másik cella adatait tudom elhelyezni egy cella alá. Vagy rosszul értelmezem a cella alá helyezés fogalmát.

Előzmény: Gabe1977 (20142)
Sánta Kutya (SK) Creative Commons License 2013.01.22 0 0 20145

Ne kötekedj! :-)

Előzmény: Retro Image (20144)
Retro Image Creative Commons License 2013.01.22 0 0 20144

Milyen felugró értesítő ablakot?

Előzmény: roley (20140)
tbando Creative Commons License 2013.01.22 0 0 20143

Hát akkor menjünk rajta végig:

 

A  BCDE oszlopokban van a szimulált példád.  A C-oszlopbeli  neveket számitógéppel generáltam, remélve  egyik se fordul elő többször, ez most látom nem teljesült , 2 név 2-szer is előfordult, de ez példád szempontjából nem lényeges.  A DE oszlopbeli pontszámokat viszont úgy választottam meg,  hogy egyetlen pontkombináció se fordulhasson elő többször. így lett aztán a táblázat 1313 rekordos. Nálad lehet hogy kevesebb van, lehet hogy több, nem érdekes. Az egyetlen lényeges, hogy egy pontkombináció CSAK EGYSZER fordulhat elő. De mint írtad ez teljesült.

 

F-oszlop:  100*pont1+pont2.  Ezzel  minden pontkombinációhoz egyértelműen hozzárendeltünk 1 számot. Ehhez a pont1-t azért kellett 100-zal szorozni,  mert  a pont 2-k közül egyik se nagyobb mint 100. Ha volnának köztük 100-1000 közöttiek, akkor 1000-rel kéne szorozni, ha ezer és tízezer közöttiek is, akkor 10.000-rel, és így tovább. Ezekre a számokra fogunk FKERES-sel rákeresni.

 

G-oszlop: nem érdekes, csak ellenőriztem vele, hogy minden pontkombinációból csak 1 legyen. Amelyikből több volt, azt módosítottam.  

 

H-oszlop: A nevek mégegyszer.  Azért ismételtem meg őket,  mert az FKERES-nél követelmény, hogy  a  keresőkritérium után legyenek.  Ezt persze elérhettem volna úgyis, hogy a keresőkritérium szorzatösszegeket  nem az F-oszlopba számolom ki,  hanem az A-ba, de didaktikai szempontból ez tűnt előnyősebbnek.

 

A J10:BC61 matrix pedig a célmatrixod, a J-oszlopban a pont1-k, a K10:BC10-sorban meg a pont2-k. A matrix celláiba pedig a hozzájuktartozó nevek, amiket

 

=HAHIBA(FKERES($J11*100+K$10;$F$11:$H$1323;3;0);" ")

 

képlettel érhetsz el. A képlet keresőértékének meghatározása  analóg módon történik az F-oszlopbeli számítással (100*pont1+pont2).  A képlet  ha megtalálja a cella pontkombinációt az Foszlopban, akkor  a cellába írja a hozzártozó nevet, ha meg nem, akkor  szóközt ír helyette.  

 

Mivel az excel2003-ban nincs HAHIBA fgv, vagy letöltöd az ide valahova felrakott 2003-ra készített Hahiba fgv-t, vagy ezzel a képlettel helyettesíted:

 

=HA(hibás(FKERES($J11*100+K$10;$F$11:$H$1323;3;0);” ”;FKERES($J11*100+K$10;$F$11:$H$1323;3;0))

 

     Végezetül a BE oszlpban és a 63. sorban összegzed a beírásokat (azaz  a sorok ill. az oszlopok számából kivonod a  szóközöket tartalmazó cellákat.)

 

Remélem ennyi elég lesz, hogy megcsináld a matrixodat.

 

Előzmény: pigee (20134)
Gabe1977 Creative Commons License 2013.01.22 0 0 20142

Sziasztok!

 

Abban kérném a segítségeteket, hogy ha két cella értékét megvizsgáltam a HA függvénnyel, akkor igaz illetve hamis érték esetén is egy teljesen kitöltött munkalapot helyezzen el a megvizsgált cellák alá.

Vagyis "PM10" munkalap A1 és A2 celláiba írt értéket vizsgálom, és a korábban adatokkal feltöltött "G82_5" vagy "G82_10" munkalap adatait, helyezze a vizsgált A1 és A2 cella alá!

 

Köszönöm a segítséget!

tbando Creative Commons License 2013.01.22 0 0 20141

Nálam normálisan dolgozik az excel. Ha barátodnál nem ismeri fel a számokat, akkor azt javaslom, hogy nyisson egy új lapot, és oda vezesse át az adatokat olyan formába, amit az ő excele elfogad. Ha szerencséje van, már a sima VALUE (érték) elég lesz hozzá, ha nem, akkor előtte szövegfüggvényekkel tegye olyan formátumuvá, amit az excele már képes értékké alakítani. 

 

Előzmény: pigee (20137)
roley Creative Commons License 2013.01.22 0 0 20140

Sziasztok!

 

 

Milyen kóddal tudom leprogramozni makroban, hogy felugró értesítő ablakot leokézza?

 

köszönöm,
roley

 

pigee Creative Commons License 2013.01.22 0 0 20139

Ja, nem az "elmosodott, aprobetus abrat" kell nezni, hanem mogotte a tablazatot, az elso sora a fejlec, az mutatja, mit akart abrazolni. :-))

Előzmény: pigee (20138)
pigee Creative Commons License 2013.01.22 0 0 20138

Megneztem a csatolt kepet, jol latszik, hogy aud, cad, chf, eur, gbp, jpy es usd oszlopokat hagyott meg.

Ezt a hetet akarta egy grafikonban latni az ev soran.

Előzmény: tbando (20136)
pigee Creative Commons License 2013.01.22 0 0 20137

Felul a legfelso sorban latszik, het devizat hagyott meg, azokat akarta grafikonon abrazolni.

Pont az a problema, hogy elvileg a het oszlopnak kellene megjennie, ehelyett egybe akarja tenni, es az utolso oszlopot veszi valtozonak. Ha nem ismeri fel a szamokat, mindig ezt csinalja az excel.

Előzmény: tbando (20135)
tbando Creative Commons License 2013.01.22 0 0 20136

B+! Már megint lemaradt...

 

.

Előzmény: tbando (20135)
tbando Creative Commons License 2013.01.22 0 0 20135

Akkor azt javaslom, hogy vagy próbálkozzon egy magyar windowsos gépen, vagy kísérletezzen a számformátumok beállításaival. Mert nálam normálisan csinálja a grafikont. Bár én csak EUR időbeli alakulását néztem, mert az elmosódott apróbetűs belinkelt ábrádról nem tudtam kisilabizálni, hogy a barátod mit akarhatott ábrázolni. Csak azt  látom, hogy valami komplikáltabbat, mert az abszcissza USD, az ordnáta meg mintha valami index lenne. Nálam ez a grafikon adódott. 

Előzmény: pigee (20133)
pigee Creative Commons License 2013.01.22 0 0 20134

Tbando, bocsanat, most latom, nem valaszoltam.

Elnezest, de en meg mindig nem ertem, mit es hogyan es miert.

 

Előzmény: tbando (19498)
pigee Creative Commons License 2013.01.22 0 0 20133

Ha segit, a gepen angol vista van, angol, amerikai, magyar es nemet nyelv es betukeszlet telepitve es szukseg szerint valtogatva, alatta magyar office xp-t hasznalt.

 

Előzmény: pigee (20132)
pigee Creative Commons License 2013.01.22 0 0 20132

Megmondtam, mire ezt a kepet kuldte az alabbi leirassal:

2012-es teljes evet letoltotte, a kepen lathato arfolyamokat hagyta csak meg es megprobalta az automatikus grafikonrajzolot hasznalni. A kepen lathato az eredmeny, es az is, hogy a datumoknal ott vannak a szokozok, a szamok vesszosek, minden "altalanos" formatumu, gyakorlatilag szoveges forma.

Előzmény: tbando (20090)
Czipóth_Feri Creative Commons License 2013.01.22 0 0 20131

Köszi, így még szebb.

Kihagytam a 0-s részt a végéről, de értem miért kell bele.

Szuper!

 

Szép napot!

Előzmény: tbando (20130)
tbando Creative Commons License 2013.01.22 0 0 20130

Örülök, hogy müxik képleted, de szerintem egyszerűbb lenne ez: =HOL.VAN(A2;$A$1:$A$499;0). Érdemes kipróbálni, és rájönni, hogy neked miért kellett beletoldanod a darabteli-s tagot. Ha átnézed a súgót, rá fogsz jönni.

Előzmény: Czipóth_Feri (20129)
Czipóth_Feri Creative Commons License 2013.01.22 0 0 20129

Egy kicsit átszerkesztettem, így jó lett!

=HOL.VAN(A2;$A$1:$A$499)-DARABTELI($A$1:$A$499;A2)+1

 

Nagyon köszi mindenkinek!

 

Üdv!

 

Előzmény: tbando (20128)
tbando Creative Commons License 2013.01.22 0 0 20128

Ez azért van, mert a különböző sorokban nem ugyanabban a tartományban keresel. Hasonlitsd csak össze az az 1-2-3 sorba beírt képleteid tartományhivatkozásait.

Előzmény: Czipóth_Feri (20127)
Czipóth_Feri Creative Commons License 2013.01.22 0 0 20127

Nekem nem működik, mert a HOL.VAN-nal mindig az keresett dátum sorszámát adja vissza. Vagyis

ha az első sorban keresem a 2012.01.01-t, akkor az eredmény 1

ha a második sorban keresem a 2012.01.01-t, akkor az eredmény 2

ha a harmadik sorban keresem a 2012.01.01-t, akkor az eredmény 3

és így tovább....

Én azt akarom hogy a

2012.01.01-re MINDIG az 1-t adja eredményül

2012.01.03-ra MINDIG az 5-t adja eredményül

2012.01.08-ra MINDIG az 8-t adja eredményül,

hiszen ebben a sorban taláható az ELSŐ olyan dátum, amit keresek!

Előzmény: Törölt nick (20126)
Törölt nick Creative Commons License 2013.01.22 0 0 20126

hol.van()

Előzmény: Czipóth_Feri (20125)
Czipóth_Feri Creative Commons License 2013.01.22 0 0 20125

Sziasztok!

Van egy oszlopban (A) egymás alatt dátumok.
2012.01.01.
2012.01.01.
2012.01.01.
2012.01.01.
2012.01.03.
2012.01.03.
2012.01.03.
2012.01.04.
2012.01.04.
2012.01.04.
2012.01.04.
Nekem kellen egy olyan függvény, amely visszaadja az adott oszlopban lévő első dátum cellájának a sorszámát, vagyis hogy melyik sorban van.
Pl. Keresem a 2012.01.01. első helyét: A függvény az 1-t adja vissza.
Pl. Keresem a 2012.01.03. első helyét: A függvény az 5-t adja vissza.
Pl. Keresem a 2012.01.04. első helyét: A függvény az 8-t adja vissza.

Köszi bármilyen segítséget.

bringas1 Creative Commons License 2013.01.21 0 0 20124

Köszönöm.

Kipróbálom s jelentkezem

Előzmény: tbando (20028)
Numan Creative Commons License 2013.01.20 0 0 20123

Rendben, akkor adom a mail címem:

numan5@index.hu

Előzmény: pimre (20122)
pimre Creative Commons License 2013.01.20 0 0 20122

Megoldottam a fejléc problémát. Beállítottam, hogy alaphelyzetben a 2. sortól kezdje az értékelést az utolsó sorig. De lehetővé tettem, hogy a program elején magad is tudd módosítani ezeket az értékeket, ha szükséges.

 

Az általad jelzett hiba nálam nem jelentkezett, ezért a biztonság kedvéért újra küldeném a teljes programszöveget. Viszont nem szeretném az itteni fórumot terhelni ismételten egy hosszú programmal, ezért a Megoldottam a fejléc problémát. Beállítottam, hogy alaphelyzetben a 2. sortól kezdje az értékelést az utolsó sorig. De lehetővé tettem, hogy a program elején magad tudd módosítani ezeket az értékeket, ha szükséges.

Nem szeretném az itteni fórumot terhelni ismét egy hossú programszöveggel, ezért a data.hu segítségével szerettem volna elküldeni azt. Viszont valami szinkronizációs hiba miatt nem fogadja a data.hu a feltöltött adatokat. Vagy várunk vele holnapig, hátha javítják a hibát, vagy ha adsz egy email címet, akkor küldöm a programot.

 

 

Előzmény: Numan (20114)
Sánta Kutya (SK) Creative Commons License 2013.01.20 0 0 20121

Tényleg nem egyszerű: nincs neked adatbázisod. :-) Ez egy táblázat.

A második fülön az A1-be írd a vevőkódot.

A B1-be ezt: =INDEX(Tabelle1!$A:$F;HOL.VAN($A1;Tabelle1!$B:$B;0);CELLA("oszlop";A1))

És utána jobbra húzva töltsd ki az egérrel a sorozatot.

Előzmény: szabolcs7507 (20120)
szabolcs7507 Creative Commons License 2013.01.20 0 0 20120

Sziasztok!

 

Lehet hogy nem lesz egyszerű Leírni sem :)

Na szóval:    

Van egy elég nagy adatbázisom vásárlói létszám

Vásárlói kód, Név, Város, utca, email, stb:) kb2000-es lista

 

egy másik táblán szeretnék egy keresést úgy hogy egy cellába beírom a Vásárlói kódot és a kódhoz tartozó sort megjelenítse" név e-mail stb :)

Köszönöm a segítséget!!!

 

 

 

tbando Creative Commons License 2013.01.19 0 0 20119

A te makródból is kiszámolható az időszakok napban (orak száma/12), a networkdays-szel is kiszámolható, a kettő különbsége az ünnepnapok száma, ezt szorozza 12-vel és levonja a makróddal számolt órákból.

Előzmény: pimre (20118)
pimre Creative Commons License 2013.01.19 0 0 20118

Nem vagyok biztos abban, hogy Numan pontosan erre gondolt. Hiszen akkor megfelelt volna RHCPgergo #19983 megoldása.

 

Szerintem ő kiválasztott napokra gondol, amit ki kellene hagyni az értékelésből. Ha megírja, és ebben tudsz majd neki segiteni, az jó lehet.

Előzmény: tbando (20116)
tbando Creative Commons License 2013.01.19 0 0 20117

Vagy a darabtelivel.

Előzmény: tbando (20116)
tbando Creative Commons License 2013.01.19 0 0 20116

Ja. A networkdays-szel minden további nélkül. 

Előzmény: pimre (20115)
pimre Creative Commons License 2013.01.19 0 0 20115

Holnap megnézem. A hibákra fel voltam készülve, ezt jeleztem is, hogy ilyenek sajnos még előfordulhatnak. A kezdő sorszámot is javítom. Sőt e befejezőnél is lehetővé teszem, hogy magad állítsd be. 

 

A következőben kért ünnepnapokat nem tudom vállalni. Ez már túl bonyolult lenne. Legalábbis nekem:-))) Ezt függvénnyel már utólag talán lehet kezelni.

Előzmény: Numan (20113)
Numan Creative Commons License 2013.01.19 0 0 20114

Még egy dolog, ami befolyásoló tényező a számolásnál.

Olyan megoldás lehetséges, hogy a makró a futtatásnál első lépésként megkérdezi, hogy melyik napokat állítom be ünnepnek, és akkor azokon a napokon egyáltalán nem számol semmit?

 

Tudom ez már elég macerás, de már annyira jól működik, hogy ha még az ünnepnapokat is tudja kezelni, akkor már tényleg tökéletes lesz :)

 

Köszi.

Előzmény: Numan (20113)
Numan Creative Commons License 2013.01.19 0 0 20113

Így már tényleg lehet vele számolni.

Lefuttattam a makrót és néhány azonos időpontnál kiírja, hogy "A kezdo es befejezo idopont azaons", de soknál valamiért negatív számot ad eredményül.

A képen látszik, hogy ahol a fókusz van, ott értelemszerűen jelzi a program, hogy egyezik a két dátum, ezért 0 kerül a cellába, viszont felette jópár cellában is egyeznek az adatok, de oda valamiért negatív számokat számolt.

Erre rá tudnál még nézni?

Illetve, ha szeretnék oszlopfeliratokat az első sorba, akkor nem tudom futtatni a makrót, erre is van vmi megoldás?

 

Köszönöm.

Előzmény: pimre (20103)
CsRob1 Creative Commons License 2013.01.18 0 0 20112

Köszönöm, valóban működik. Úgy emlékeztem (régebbi próbálkozásokból), hogy az Excel ezt nem tudja, így ebben az esetben ki se próbáltam.

 

 

Előzmény: pimre (20111)
pimre Creative Commons License 2013.01.18 0 0 20111

Szerintem ezzel nincs semmi különösebb teendőd. Erről az Excel gondoskodik. Kipróbáltad egyáltalán?

 

Ha nem, akkor készíts egy egyszerű fájlt forrás1 néven egyetlen adattal az A1-ben. Aztán egy forrás2 nevűt egy adattal az A2-ben. Aztán egy összesítő nevűt, amelynek A1 cellája a forrás1-ből az A1-et, az A2 a forrás2-ből az A2-t tartalmazza. Az egészet helyezd a C:munka könyvtárba.

 

Aztán az intézővel másold át a könyvtárat a D:-re, vagy egy pendríve-ra, majd nyisd meg ott az összesítőt. Az Excel figyelmeztet, hogy frissíteni kell a hivatkozásokat. És ha elfogadod, akkor megcsinálja helyetted.

 

Ez volt a kérdés?

Előzmény: CsRob1 (20106)
tbando Creative Commons License 2013.01.18 0 0 20110

Kösz. Erre a módira magam is rájöttem, de elképzelhetetlennek tartottam, hogy ne lenne vmi lokális megoldás.  Aztán miután tegnap felraktam a pancser kérdést, váratlanul rábukkantam a byref-re. (Elég nehéz keresés volt). Most kb 80%-ban fogom, ennyi remélhetőleg elég lesz hogy teljesen domesztikáljam. Meg retro iménti javaslatát még, hogy függvényesítsem.   

Előzmény: SQLkerdes (20099)
tbando Creative Commons License 2013.01.18 0 0 20109

Kösz! Már nyomon vagyok.

Előzmény: Retro Image (20097)
SQLkerdes Creative Commons License 2013.01.18 0 0 20108

Készíteni kell egy olyan makrót, ami az összesítő kinyitásakor automatikusan lefut.

 

1.) Ez a makró kiolvassa, hogy hol van az Összesítő jelenleg, ebből a filenév levágásával elő kell állítani a Munka elérési útvonalát

2.) Ki kell olvasni a workbookban lévő összes Link elérési útvonalát (ActiveWorkbook.LinkSources method)

3.) Az ActiveWorkbook.ChangeLink használatával meg kell változtatni a régi útvonalakat az Összesítő megnyitásakor kiolvasott útvonalra.

 

Vagy ha ez csak egyszeri változás, akkor az 1. pontban nem minden megnyitáskor lefutó makrót kell írni, hanem csak "normál" makrót amit a file-ok másolása után kell lefuttatni manuálisan.

Előzmény: CsRob1 (20106)
pimre Creative Commons License 2013.01.18 0 0 20107

Köszönöm. Úgy néz ki, ez az amit kerestem. 

Előzmény: SQLkerdes (20105)
CsRob1 Creative Commons License 2013.01.18 0 0 20106

Üdv! Adott egy Excel táblázat (Összesítő), ami különböző Excel fájlokból (Forrás1, Forrás2...) vesz adatokat hivatkozásokkal. Mindegyik azonos mappában (Munka) van. Megoldható-e, és hogyan, hogy a Munka mappa más meghajtóra vagy egy másik mappába való másolása esetén az Összesítő táblázat hivatkozásai automatikusan megtalálják a forrás táblázatokat? A forrás fájlok rendszeresen felülíródnak új adatokkal, az Összesítő számol az aktuális adatokkal, majd a Munka könyvtárról szeretnék másolatot készíteni, ill archiválni úgy, hogy ne kelljen kézzel átnevezni, másként menteni vagy hivatkozásokat módosítani. 

SQLkerdes Creative Commons License 2013.01.18 0 0 20105
Előzmény: pimre (20104)
pimre Creative Commons License 2013.01.18 0 0 20104

Kedves fórumtársak!

 

Az alábbi - általam nagyon nehezen megtalált - formátumkód kapcsán kérem a segítségeteket! Tud valaki egy olyan forrást, ahol az Excel cellaformázási kódok összeszedve, elmagyarázva megtalálhatók? Mert nekem minden egyes ilyen probléma megoldása több órás keresgélést jelent. A google ebből a szempontból nem segített, sem angolul, sem magyarul. Az Excel cellaformázás parancsánál vannak ugyan felsorolt példák, de nincs hozzájuk magyarázat, így nem mindig sikerül rájönnöm, hogy melyik milyen célt szolgál.

 

Szóval egy alapos forrásmunkáért nagyon hálás lennék.

Előzmény: pimre (20103)
pimre Creative Commons License 2013.01.18 0 0 20103

Nagy nehezen megtaláltam a megoldást. Kiderült, hogy ahhoz, hogy az óra értéket megtartsa 24 óra után is, formázáskor az óra (illetve angol hour) kezdőbetűjét szögletes zárójelbe kell tenni. Ennek megfelelően a munkaórák szubrutin végén levő két sort a következőképp írd át:

 

ez volt:

Cells(aktsor, céloszlopszám).NumberFormat = "@" ' ezzel lesz string a cellaformátum, …

Cells(aktsor, céloszlopszám).HorizontalAlignment = xlRight ' és jobbra pozícionáljuk

 

Ezek közül az első sor helyére írd a következőt:

 

Cells(aktsor, céloszlopszám).NumberFormat = "[h]:mm" ' ezzel lesz óra:perc a cellaformátum

a második sort pedig töröld ki, vagy egyszerűen írj az elejére egy aposztrofot (ez jelzi hogy ez nem programsor, csak megjegyzés)

 

És ha majd számolni akarsz ezekkel, akkor abban a cellában, ahova a képletet írod, a cella formátumát állítsd át egyénire, és formátumkódnak a [ó]:pp kódot írd!

 

 

Előzmény: Numan (20083)
afteer Creative Commons License 2013.01.18 0 0 20101

Sziasztok

 

A következőre keresek megoldást:

 

Excelben adott fügvény eredményeképp bizonyos cellákben egy "LEJÁRT" felirat jelenik meg (fizetési határidő lejártát jelzi).

Szeretném, ha a lejárati dátumot, illetve egy kis kísérőszöveget egy adott e-mail címre tudnék küldeni, egy gombnyomással.

 

Thunderbirdet használok levelezőnek.

 

ötlet?

pimre Creative Commons License 2013.01.18 0 0 20100

Technikailag így van, de azért a globális/public változót csak nagyon korlátozottan célszerű használni. Én lényegében a konstanssal rokonnak tekintem, annyi különbséggel, hogy míg a konstans a programkódban kap fix értéket, a public változó pedig a program elején, bizonyos körülményektől függően, de onnan kezdve nem változik.

 

Arra nagyon nem javaslom a használatát, hogy megkerüljük vele a paraméter átadást függvénynek, vagy subrutinnak, mert előbb-utóbb áttekinthetetlenné válik, hogy az adott változó értéke hogyan alakul.

Előzmény: SQLkerdes (20099)
SQLkerdes Creative Commons License 2013.01.18 0 0 20099

Vagy létrehozol egy globális változót, aminek értéket adsz az egyik rutinban, és az értékét a másik rutinban használod fel.

Előzmény: tbando (20095)
mtibsi Creative Commons License 2013.01.18 0 0 20098

Nagyon köszönöm, megpróbálom értelmezni.

Előzmény: tbando (20070)
Retro Image Creative Commons License 2013.01.18 0 0 20097

Például ha a szubrutinból függvényt csinálsz :)

 

Vagy:

 

Sub Összeadás(paraméter1, paraméter2, eredményt_ide)

    eredményt_ide = paraméter1 + paraméter2

End Sub

 

Sub Teszt

   Dim összeg As Long

   Összeadás 1, 1, összeg

   MsgBox "Egy meg egy az annyi mint " & összeg

End sub

 

 

Lényeges, hogy az eredményt_ide változó ByRef legyen átadva a szubrutinnak. De mivel ez az alapértelmezés, nem kell feltétlenül odaírni. Csak ne ByVal legyen.

Előzmény: tbando (20095)
Retro Image Creative Commons License 2013.01.18 0 0 20096

Józsi bával kiprobántuk futtatásügyileg is a két sört sort amit bekűdtél felülvizsgálatra.

A két sor - konteksztusból kiemelintvén - ippeg azt tette, amit elvártunk tőlük: megtanáltak minden dátumot.

Nosza, mondá erre Józsi bá, lássuk a teljes kódot, mer' ez így bakfitty. Vagy tán aztat kéne csekkolni, hogy a meg nem tanált dátumok nem-e esetleg-e szövegként vannak-e beírván-e.

Előzmény: Törölt nick (20091)
tbando Creative Commons License 2013.01.18 0 0 20095

Egy pancser kérdés: A subrutinban kiszámított értéket hogy lehet visszaadni a főprogramnak? 

tbando Creative Commons License 2013.01.18 0 0 20094

Nem hinném, hogy a makróval lenne probléma. Akkor nem ismerte volna fel az előző dátumokat sem.

Előzmény: Törölt nick (20091)
tbando Creative Commons License 2013.01.18 0 0 20093

Feltételezem, hogy azért nem lehet vele müveleteket végezni, mert szövegként vannak bevíve, amit valamiért az excel nem tud időként értelmezni. Próbálkozz a szövegfüggvényes felbontásával, majd azok value-sitásával.

 

De ha nem ragaszkodsz az amerikai dátumkijelzéshez, és a 19-07 közötti kezdő időpontokhoz, akkor a pár napja a data.hura feltett megoldásom is megfelelhet. A linkjét valahol lejjebb megtalálhatod.

Előzmény: Numan (20083)
tbando Creative Commons License 2013.01.17 0 0 20092

Tegyél fel ide néhány konvertálást. Hogy  mit mivé konvertált. De ne csak elfuseráltat, de 1-2 helyesen felismertet is. Hátha attól okosabbak leszünk. De küldhetsz priviben is egy kis kollekciót.

 

Ha végleg nem jutunk semmire, akkor csak egy nagyon babrás megoldás marad, hogy nem html-ként másolsz hanem formázatlan szövegként.  Ekkor sajnos a táblázatformának lőttek, de a sorok szövegfüggvényekkel szétszedhető. Ha mindig ugyanazt táblázatszerkezetet másolod az excelbe, akkor még rentábilis is lehet.  

Előzmény: roley (20086)
tbando Creative Commons License 2013.01.17 0 0 20090

Mondd meg neki, hogy erről az oldalról töltsön le.  

 

http://www.mnb.hu/arfolyam-lekerdezes

 

Minden további nélkül lehet számolni a számokkal, a dátumokkal, és grafikon is csinálható belőlük.

Előzmény: pigee (20088)
pimre Creative Commons License 2013.01.17 0 0 20089

Holnap még kísérletezem vele egy kicsit (a dátum és időformátumok kezelésében sajnos teljesen amatőr vagyok), aztán ha nem jön össze, megkérdezem a fórumtársakat. Hátha kapunk valami jó tanácsot.

Előzmény: Numan (20083)
pigee Creative Commons License 2013.01.17 0 0 20088

Nem tudom pontosan, az mnb oldalan valahol van egy olyan lehetoseg, ahol bizonyos idoszakok arfolyamait lehet letolteni excelben.

Allitolag most csak latszolag jo, de amikor a tartalommal szamolni akarnak, vagy grafikont csinalni, akkor sok a hiba.

Előzmény: tbando (20061)
Retro Image Creative Commons License 2013.01.17 0 0 20087

Osztán az 'a' változó méllyen típus? Van-é deklarálva egyáltalán?

Józsi bá szerint Date köllene, az meg bizti, hogy a Long bukta.

 

Előzmény: Törölt nick (20082)
roley Creative Commons License 2013.01.17 0 0 20086

Sajnos így sem sikerült.

Előzmény: tbando (20085)
tbando Creative Commons License 2013.01.17 0 0 20085

Másolj végig a sor2-n egy dátumérték függvényt. Hátha már az sem ismeri fel a 2010.10.10-t.  Eggyel nagyobb számot kell mutatnia mint az előzőnek. 

Előzmény: Törölt nick (20082)
roley Creative Commons License 2013.01.17 0 0 20084

Köszi a választ!

 

 

Az exceles megoldás nekem nem jó, mert makroval akarom behívni külső forrásból, netről, és ott nem tudom megoldani, hogy wordbe másoljam majd úgy. Nem lehet vhogy beállítani, hogy ne változtasson semmit a formátumon?

Előzmény: tbando (20080)
Numan Creative Commons License 2013.01.17 0 0 20083
Nagyon jol mukodik a makro, es nagyon sokat is segitett. Valoban nem lehet vele muveleteket vegezni. Erre nincs esetleg valamilyen megoldas,mert ez lenne az alapja a tobbi szamolasomnak.
Koszi.
Előzmény: pimre (20043)
tbando Creative Commons License 2013.01.17 0 0 20081

De megoldás lehet a dátum és idő függvények használata is.

Előzmény: tbando (20080)
tbando Creative Commons License 2013.01.17 0 0 20080

Először word-be másold, ott cseréld ki a kritikus karaktereket, majd ezt másold be az excelbe. Így minden adatod string lesz amit aztán manipulálhatsz. 

Előzmény: roley (20079)
roley Creative Commons License 2013.01.17 0 0 20079

Sziasztok!

 

 

Hogyan lehet azt megoldani, hogy amikor excelbe beillesztek pl.: egy netről kimásolt táblázatot, akkor az ott lévő adatok változatlan formában maradjanak, azaz például ne váltsa át őket dátumra.  Eddig bármilyen módon próbálkoztam, mindig átvált párat dátumra, vissza viszont már nem tudom őket alakítani, így elvesztem az adatokat.

 

Köszönöm a segítséget előre is.

 

 

üdv, Roley

Sánta Kutya (SK) Creative Commons License 2013.01.17 0 0 20078

Pontosan. De nálam 'a marad, szerintem magyar beállításoknál ez a normális. Az alt gr 3 csak a kalapjelesekhez kell: szövegben betű (amelyikhez megy: î, â, ô, ^u, ^e), Excelben hatvány.

Viszont °a ů °o é (alt gr 9 + e), ő (alt gr ö + o).

Tehát nem az aposztróf (shift 1, '), hanem a ´ (alt gr 9) megy fel az a-ra.

Előzmény: tbando (20077)
tbando Creative Commons License 2013.01.17 0 0 20077

Aha! Így már értem, hogy miért tapasztaltam időnként, hogy 'a = á. Sőt, mint most kiderítettem, az "a = ä,  az "o = ö. De nálam ehhez alt gr+3-ra nincs szűkség.  És megjegyzem, ez nem excel, hanem windows sajátság lehet, mert ezt a posztot írva is így működnek ezek a billentyük

Előzmény: Sánta Kutya (SK) (20074)
tbando Creative Commons License 2013.01.17 0 0 20076

Nocsak.  Én a Kovalcsik könyv alapján azt hittem, hogy az alt gr+3 megoldás csak a vba sajátja. Bár én ott se használom, mivel nekem ^^bs  billentyűsorozat testhezállóbb.

Előzmény: _Nyuszi (20072)
Sánta Kutya (SK) Creative Commons License 2013.01.17 0 0 20075

Bocs, figyelmesebben: a felsoroltak közül ez a kalapnál normális, de van még pár hasonló a felső sorban.

Ha az aposztróf csinálja, akkor valamilyen beállítás el van állítva.

Előzmény: tbando (20071)
Sánta Kutya (SK) Creative Commons License 2013.01.17 0 0 20074

Azoknak a jeleknek szándékosan ilyen a működésük! Úgy működik egyszerűen, ahogy Nyuszi leírta.

Azért van, mert ezek ékezetként felugorhatnak a következő betűre, ezért meg kell várniuk a megjelenéssel, hogy mit nyomsz még meg. Pl. alt gr 3 + a = â.

Előzmény: tbando (20071)
tbando Creative Commons License 2013.01.17 0 0 20073

Még soha életemben nem használtam az excel beépített webquery-jét, sőt még nem is hallottam róla, ezért megkérlek, hogy mutasd be.  Bár nem hiszem, hogy erre az mnb-s lap lenne a legalkalmasabb, mivel ott nem a weblapot vagy a részét töltöd le, hanem a felajánlott excellapokat, amikkel nálam semmi gond sem volt, szemben piquee tapasztalataival.

 

A linket azért felteszem, nézd meg te is:  

 

http://www.mnb.hu/arfolyam-lekerdezes

 

Előzmény: ujszaszy (20065)
_Nyuszi Creative Commons License 2013.01.17 0 0 20072

A kalap nálam is ilyen, úgy szoktam megoldani, hogy folytatom a gépelést. Pl. második hatvány esetén egyszer Alt Gr+3, aztán meg egy kettes, és akkor OK. :)

Előzmény: tbando (20071)
tbando Creative Commons License 2013.01.17 0 0 20071

Ott még nem tartunk, hogy ne hívja be a file-t. Behívja, csak problémát jelez, amit idáig nem csinált. És emiatt aggódom, hogy hátha bekapott valamit.

 

Egyébként van valami zűr a beállításaimmal, mert több furcsasága is van.  Pl. Behívom a filet, látszólag semmi gond vele, aztán kiderül, hogy a nyíl-billentyük süketek. Aztán újra behívom a filet, és akkor minden rendben van.  Amihez viszont alkalmazkodnom kellett, hogy az ' az " és a ^ jeleket 2x kell beírnom, aztán a másodikat kitörülni, mert az elsőre nem hajlandó elfogadni őket, de a második leütésre mindkettőt beviszi.

Előzmény: ujszaszy (20066)
tbando Creative Commons License 2013.01.17 0 0 20070

B+, lemaradt

 

Előzmény: tbando (20069)
tbando Creative Commons License 2013.01.17 0 0 20069

Nagy szerencse, hogy kérted a solver beállításokat. Mert készítve neked elő, újra futtatva a solver talált egy 6 deszkás változatot :)))). Kemény forintokat spórolva ezzel, ha még nem vetted volna meg a 7-t.  Az új futás linkje, magyarázatokkal:

 

http://data.hu/get/6088388/mtibsi-solver5.xlsx

 

Az új futás eredményét ide is kiteszem:

 

 

 

 

Előzmény: mtibsi (20068)
mtibsi Creative Commons License 2013.01.17 0 0 20068

Szívesen megnézném a Solver beállításokat.

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

Előzmény: tbando (20041)
pimre Creative Commons License 2013.01.17 0 0 20067

Így már egy kicsit érthetőbb. Tehát nem a sorszámot akarod szorozni, hanem az adott sorszámhoz, ID-hez (ez utóbbi szerintem pontosabb, hiszen ezzel azonosítod a terméket) tartozó számot (beolvasások száma) kell szorozni az adott termékhez tartozó konstans számmal. Amiről feltételezem, hogy az ID értékből tudható, hogy az adott termék esetén mennyi a szorzószám. És ezt szeretnéd automatizálni, ha jól sejtem.

 

1. Ha a probléma csak technikai, azaz a beszkennelt lapot nem tudja kezelni az Excel, akkor nem tudok mit mondani. Ekkor tbando(#20057) észrevétele szerint karakterfelismeréssel digitalizálni kell a beszkennelt táblázatot. Jelzem, ez életveszélyes, hiszen a karakterfelismerés szinte sosem 100%-ban hibátlan, tehát ellenőrzés nélkül számolni vele hibákra vezet.

 

2. Ha az adatok már digitálisak, és excel táblában számokként állnak rendelkezésre, és a probléma csak az eljárás végrehajtása, akkor Delila #20064-es javaslata lehet jó.

 

Ha viszont az eljárás automatizálása a feladat, tehát hogy egy táblázatban tárolod az egyes ID értékekhez tartozó szorzószámokat, és ezt szeretnéd összeszorozni az éppen beolvasott (digitalizált!) adatlapon szereplő beolvasási értékkel, akkor talán az FKERES függvény lehet jó. De ebben tbando jártasabb nálam, én ezzel nem foglalkoztam.

Előzmény: djmorphy (20060)
ujszaszy Creative Commons License 2013.01.17 0 0 20066

Hello, nem gyakran, de előfordult.

Újraindítás lehet, hogy segít, de azok a fájlok, amiket az istennek sem akar megnyitni az excel, minden gond nélkül megnyithatók open office-ba, ami nem érzékeny a hibákra. Ha abban sikerül megnyitni, változtatás nélkül visszamented xlsx formátumba.

Nekem ez bevált

Előzmény: tbando (20063)
ujszaszy Creative Commons License 2013.01.17 0 0 20065

Próbáltátok az excel beépített web query funkcióját?

ha hozzálinkeled egy weblap egészét, vagy részét az excelhez, ami minden megnyitáskor és mentéskor frissíti magát a weblapról.

 

Ha megmondod melyik nmb oldal, akkor megmutatom, mire gondoltam

Előzmény: tbando (20061)
Delila10 Creative Commons License 2013.01.17 0 0 20064

Beírod a szorzót egy tetszőleges üres cellába. Ctrl+c-vel másolod. Kijelölöd a tartományt, amit fel akarsz vele szorozni. Jobb klikk, irányított beillesztés, szorzás. Törölheted a szorzót.

 

Ha a szorzó 1, ezzel a módszerrel is könnyen számmá alakíthatod a szövegként bevitt értékeket.

Előzmény: djmorphy (20056)
tbando Creative Commons License 2013.01.17 0 0 20063

Tegnap óta az excelem (2007) viszonylag sokszor azt csinálja, hogy a rendben lementett fajljaim behívásakor kíírja, hogy hibát észlel, de azért megpróbálja behívni a munkafüzetet. Miután behívta vagy találok hibát a munkalapon vagy nem. Ha találok, akkor az az, hogy egyes cellaképleteket nem tudja értelmezni. A hibás cellára ráklikkelve, majd F2 + enter után a hibás kijelzés megszűnik.  Találkoztatok már ilyennel? És ha igen, kiderült az oka? 

tbando Creative Commons License 2013.01.17 0 0 20062

Megintcsak rákérdezek melyik mnb-oldalról van szó. Ugyanis megtaláltam a dátumos oldalt, letöltöttem a teljes 2012 évet, meg a 2013-t a mai napig, és minden tökéletesen müködött rajta. 

Előzmény: tbando (20061)
tbando Creative Commons License 2013.01.17 0 0 20061

Melyik oldalról van szó? Én ugyanis találtam egy mnb lapot, arról minden további nélkül átvehetők voltak az árfolyamok, de dátumok sehol.

Előzmény: pigee (20059)
djmorphy Creative Commons License 2013.01.16 0 0 20060
Természetesen konstansra gondoltam. Csak ma agyilag zokni vagyok ezért is fogalmaztam ilyen hülyén. :-)

Szóval a scanner beolvas egy ID számot. Ez egy dobozt jelent amibe ID függően más és más mennyiségű termék van. És ebből csináltam a kimutatás t.
De nem azt szeretném látni a kimutatásban hogy az 12345 sorszámú tételt 2013.01.01 08:00 és 16:00 között 20 olvasták be. Mert ez csak a dobozt jelenti. És ez az amit meg kellene szorozni 40el mert ennyi termék van egy dobozban azaz 20x40dbot gyártottak le aznap

De ugyan ezen feltételekkel az 54321 sorszámú olvastuk be 20szor azt csak 10el kell megszorozni mert csak 10 termék van egy dobozban nem 40
Előzmény: pimre (20058)
pigee Creative Commons License 2013.01.16 0 0 20059

Foglalkozott valaki az mnb arfolyamok letoltesevel? Itt szentsegelt egesz nap egy fiu, hogy valamit valtoztattak rajta, ezert nem lehet excelben hasznalni a datum es szam adatokat, mert szokozok vannak kozbeiktatva es valami masra kell konvertalni, vagy ujra begepelni az egeszet.

pimre Creative Commons License 2013.01.16 0 0 20058

Sorszámokat szorozni statikus számmal? Azt még értem, hogy a statikus szám nyilván konstanst jelent, de mi célja lehet a sorszámmal végzett műveletnek. Az meg tényleg csak hab a tortán, hogy mindezt egy szkennelt dokumentumon:-)))

 

Nem lehetne a problémát egy picit közérthetőbben leírni?

Előzmény: djmorphy (20056)
tbando Creative Commons License 2013.01.16 0 0 20057

De valahogy nem lehet megcsinálni, hogy a bizonyos sorszámokat statikus számmal megszorozzam?

 

Ezek szerint vannak olyan beszkennelt sorszámok, amiket lehet szorozni?  Ezen most nagyon meglepődtem. Nekem még sosem sikerült. Igaz, nem is próbálkoztam vele karakterfelismerő nélkül.

Előzmény: djmorphy (20056)
djmorphy Creative Commons License 2013.01.16 0 0 20056

Megint a segítségetekert kérném.

 

Csináltam egy beszúrás/kimutatást. Ami nagyon jól mutatja napi szinten óra perc mp-re lebontva amit beolvasott a scanner és tök egyszerű is emelett. 

De valahogy nem lehet megcsinálni, hogy a bizonyos sorszámokat statikus számmal megszorozzam?

Teszem azt hogy 2013.01.01-én van 20db "12345" sorzámú tétel amit én 40-el meg akarok szorozni.

Sánta Kutya (SK) Creative Commons License 2013.01.16 0 0 20055

Éppen most használtam adatbázisból exportált, szövegnek látszó egész számok és tizedesponttal jelölt számok felismertetésére is. :-) Már mondtad korábban is, de kiment a fejemből, így jókor jött az ismétlés.

Előzmény: SQLkerdes (20053)
ujszaszy Creative Commons License 2013.01.16 0 0 20054

Tényleg nagy királyság :-)

Köszi SQLkerdes!

Előzmény: SQLkerdes (20053)
SQLkerdes Creative Commons License 2013.01.16 0 0 20053

A logikája pusztán annyi, hogy amikor az excel ezt a parancsot végrehajtja akkor újra értelmezi azt, hogy a cellák milyen tipusú adatot tartalmaznak.  Az extra jóság, hogy nem csak az excel találgatására vagyunk utalva, hanem közvetlenül meg is mondhatjuk, hogy milyen adattipusnak kezelje a létrejövő új cellát.  A trükk, hogy a létrejövő új cella ugyanaz mint a korábbi cella.

 

Ugyanezt a technikát lehet használni abban az esetben amikor az excel nem ismer fel számokat, ez tipikusan txt file-ok beimportálásakor szokott előfordulni.

Előzmény: tbando (20042)
djmorphy Creative Commons License 2013.01.16 0 0 20052

Óóó hogy ez nem jutott eszembe... :)

 

Köszi!  És bocsi, hogy lemaradt az azonosítók! :)

Előzmény: ujszaszy (20051)
ujszaszy Creative Commons License 2013.01.16 0 0 20051

Sziasztok!

 

egyetértek Delila-val. Ha tényleg ennyi a feladat, hogy a 60-nál nagyobb értékeknél automatikusan legyen "raktáron"

viszont azt javasolnám, hogy a táblázat struktúrában gondold ét, hogy nem érdemes-e változtatni.  Pl legyenek egymás alatt a hetek, mert így sokkal könnyebb lesz bármilyen további műveletet, kimutatás készíteni.

Ráadásul lehet, hogy átláthatóbb is lesz, mert ugye most egy év alatt 104 oszloppa bővül a táblázatod.

Előzmény: Delila10 (20050)
Delila10 Creative Commons License 2013.01.16 0 0 20050

Nem vagyok biztos benne, hogy a kép alapján jobban értem a feladatot. Most úgy sejtem, hogy ha a B oszlopba 60, vagy annál nagyobb értéket írsz, az E és H oszlop azonos sorában jelenjen meg a "ratáron" felirat.

 

Bár nincsenek sor-, és oszlopazonosítók a képen, úgy sejtem, hogy az első lehetséges beírás heyle a B4 cella. Az E4 képlete legyen =HA($B4>=60;"raktáron";""), ezt másold át a többi héthez a H4, K4, stb. cellákba.

Előzmény: djmorphy (20049)
djmorphy Creative Commons License 2013.01.16 0 0 20049

Szia!

 

Linkelem hogy néz ki a táblázat. Na most ebből van 100 egységig amihez hozzá lehet fűzni, hogy hanyadik héten történt a bejegyzés és megjegyzést lehet hozzátenni.

És azt szeretném, hogy ha van mondjuk 60 egységgel akkor ne egyessével kelljen kiválasztani, hogy raktáron hanem automatikusan legyen raktáron.

 

 

https://lh3.googleusercontent.com/-Or5_P30S4FE/UPZaQ4eRebI/AAAAAAAAFuw/g4WWt-f0zZU/s1024/excel.jpg

 

 

Előzmény: Delila10 (19986)
Delila10 Creative Commons License 2013.01.16 0 0 20048

Módosítod a sablonodat, és más néven mented. Ez új fájl létrehozásának minősül, vagyis tudod menteni a hálózati mappába.

Előzmény: Redlac (20046)
Numan Creative Commons License 2013.01.16 0 0 20047

Köszönöm ismételten a kódot, még csak most fogom tesztelni, de amint végignéztem írok majd.

 

Előzmény: pimre (20043)
Redlac Creative Commons License 2013.01.15 0 0 20046

Köszönöm az ötletelést, nem belekotyogásnak veszem :-)

 

A helyzet az, hogy de a szerveren van az, amit te is írsz. A gond, hogy ide CSAK másolni tudunk, módosítani, törölni nem...tehát ide csak akkor másolunk fel valamit (Excel, Word dokumentum, fénykép), ha már kész.

 

Előzmény: pimre (20045)
pimre Creative Commons License 2013.01.15 0 0 20045

Bocs, hogy belekotyogok, de nem értem, miért kell mindenkinek a saját gépére menteni a fájlokat. Mert úgy látom, ebből adódik a legtöbb gond. Nincs egy olyan központi szerver, amely mindig rendelkezésre áll? Mert ha van, akkor én ott nyitnék egy könyvtárat. Ebben létrehoznék felhasználónként egy-egy alkönyvtárat. És akkor mindenkinek a saját könyvtárába kerülhetne a mentés. És akkor könnyebb lenne az esetenkénti archiválása is az egész állománynak. És akkor talán a fájlnevek kezelésére is könnyebbb lenne kidolgozni valami egyszerűbb rendszert. És Te nem a pendrájvodra dolgoznál, hanem a szerverre, és ha kell otthon is az anyag, akkor a munka végeztével egyszerűen átmásolod magadnak.

Előzmény: Redlac (20044)
Redlac Creative Commons License 2013.01.15 0 0 20044

Akkor jobbat mondok...

 

A d:\dokumentumok mindegyik gépünkön jelen van (direkt nem a C-n).

Ebben vannak a nevek szerinti mappák (Kis Pista, Nagy Péter stb.)

 

Azt meg tudom oldani (illetve Delila egyik makrója tudja azt), hogy a felhasználó szerinti mappába történjen a mentés.

A mappa készítés makróval, na az jó pofa lehet, illetve, hogy abba mentse azt az Excel fájlt, amin dolgozik a jóember.

Előzmény: ujszaszy (20033)
pimre Creative Commons License 2013.01.15 0 0 20043

Kezdjük az off-al: A 8. sorod hibás, mert az az 1 perc még 7 óra előtt volt, ezért a helyes érték 0, a 10. sorban meg 44.34 a helyes érték.

 

De a lényeg, hogy megcsináltam, amit kértél. Az eredményeket kénytelen voltam stringgé formázni (tehát nem tudsz számolni velük). Ugyanis, nem tudtam olyan formázást találni, hogy idő formátum kerüljön a táblázatba akkor is, ha az órák száma 24 fölé megy. Tehát a 36:01 helyett 12:01-et mutatott, és a szerkesztőlécen pedig 1900.01.02 12:01 jelent meg. Ha valaki tudna segíteni, hogyan lehetne ezt kiküszöbölni, az jó lenne.

 

A program végigmegy a táblázaton. Az esetleges üres sorokat kihagyja (üresnek tekinti azt, ahol a kezdő és a befejező dátum üres)

 

Ha csak a kezdő, vagy a befejező dátum hiányzik, akkor erre a program figyelmeztet, és az adott sort átugorja. Ugyancsak figyelmeztet, ha a kezdő és befejező dátum azonos.

Ha a kezdő és befejező dátum fel lett cserélve, akkor a figyelmeztetésen kívül be is írja ezt a tényt az adott sorban a munkaidő (C) oszlopba

 

Igyekeztem tesztelni a programot szélsőséges esetekkel is, egyelőre nem találtam hibát, de azért egy darabig ellenőrizd magad is, nem maradt-e benne véletlenül poloska.

 

Végül mindenkitől elnézést kérek, hogy ilyen hosszú programot másolok be ide. Ha még módosulna, azt majd a data.hu-oldalra másolom. És akkor a program:

 

Sub munkaórák()

Const forrásoszlop1 As String = "A", forrásoszlop2 As String = "B", céloszlop As String = "C"

Const kezdőóra As Integer = 7, végóra As Integer = 19

Dim üresdátum As Date, dátum1 As Date, év1 As Integer, hó1 As Integer, nap1 As Integer, óra1 As Integer, perc1 As Integer

Dim dátum2 As Date, év2 As Integer, hó2 As Integer, nap2 As Integer, óra2 As Integer, perc2 As Integer

Dim aktsor As Integer, céloszlopszám As Integer

Dim elsőnapióra As Integer, utolsónapióra As Integer, elsőnapiperc As Integer, utolsónapiperc As Integer, _

                            köztesnapióra As Integer, összesóra As Integer, összesperc As Integer, eredmstring As String

Dim utolsósor As Long

utolsósor = ActiveCell.SpecialCells(xlLastCell).Row

For aktsor = 1 To utolsósor

    céloszlopszám = oszlopszám(céloszlop)

    Cells(aktsor, céloszlopszám).Select

    dátum1 = Cells(aktsor, oszlopszám(forrásoszlop1))

    dátum2 = Cells(aktsor, oszlopszám(forrásoszlop2))

    If dátum1 = üresdátum And dátum2 = üresdátum Then ' ha üres mindkét dátum

        GoTo ciklusvége ' akkor tovább

    ElseIf dátum1 = üresdátum Or dátum2 = üresdátum Then ' ha csak az egyik üres

        If dátum1 = üresdátum Then

            MsgBox "A kezdő időpont hiányzik!"

        Else

            MsgBox "A befejező időpont hiányzik!"

        End If

        GoTo ciklusvége

    ElseIf dátum2 < dátum1 Then ' némi védelem hibás adat ellen

        MsgBox "Hibás dátumok. A második kisebb, mint az első!"

        Cells(aktsor, céloszlopszám) = "Hibás dátumok. A második kisebb, mint az első"

        GoTo ciklusvége

    ElseIf dátum2 = dátum1 Then ' Ha azonosak, akkor 0 óra telt el

        Cells(aktsor, céloszlopszám) = 0

        MsgBox "A kezdő és befejező időpont azonos!"

        GoTo ciklusvége

    End If

    év1 = Year(dátum1)

    hó1 = Month(dátum1)

    nap1 = Day(dátum1)

    óra1 = Hour(dátum1)

    perc1 = Minute(dátum1)

    elsőnapióra = 0

    elsőnapiperc = 0

    If óra1 < kezdőóra Then

        elsőnapióra = végóra - kezdőóra ' Ha 7 előtt kezdett, akkor ez teljes napnak számít

    Else

        If óra1 < végóra Then

            elsőnapióra = végóra - óra1 ' Ha 19 óra előtt kezdett, akkor ennyi az értékes órák száma, egyébként 0

            If perc1 > 0 Then

             elsőnapióra = elsőnapióra - 1

             elsőnapiperc = 60 - perc1

            End If

        End If

    End If

    óra1 = 0

    perc1 = 0

    dátum1 = CDate(Str(év1) + "." + Str(hó1) + "." + Str(nap1) + Str(óra1) + ":" + Str(perc1)) + 1 ' A következő nap

    év2 = Year(dátum2)

    hó2 = Month(dátum2)

    nap2 = Day(dátum2)

    óra2 = Hour(dátum2)

    perc2 = Minute(dátum2)

    utolsónapióra = 0

    utolsónapiperc = 0

    If óra2 > végóra Then

        utolsónapióra = végóra - kezdőóra ' Ha 19 óra után végzett, akkor ez teljes napnak számít

    Else

        If óra2 > kezdőóra Then

            utolsónapióra = óra2 - kezdőóra ' Ha 7 után végzett, akkor ennyi az értékes órák száma, egyébként 0

            If perc2 > 0 Then

                utolsónapiperc = perc2

            End If

        End If

    End If

    óra2 = 0

    perc2 = 0

    dátum2 = CDate(Str(év2) + "." + Str(hó2) + "." + Str(nap2) + Str(óra2) + ":" + Str(perc2)) ' Ez az előző nap végének felel meg

    köztesnapióra = (dátum2 - dátum1) * (végóra - kezdőóra)

    összesóra = elsőnapióra + utolsónapióra + köztesnapióra

    összesperc = elsőnapiperc + utolsónapiperc

    If összesperc > 60 Then

        összesperc = összesperc - 60

        összesóra = összesóra + 1

    End If

    eredmstring = Format(LTrim(Str(összesóra)), "0") + ":" + Format(LTrim(Str(összesperc)), "00")

    Cells(aktsor, céloszlopszám).NumberFormat = "@" ' ezzel lesz string a cellaformátum, másképp elrontja a kiírási formátumot

    Cells(aktsor, céloszlopszám).HorizontalAlignment = xlRight ' és jobbra pozícionáljuk

    Cells(aktsor, céloszlopszám) = eredmstring

ciklusvége:

Next

Cells(aktsor, céloszlopszám).Select ' Végül az első üres sorra állunk

End Sub

 

Function oszlopszám(oszlopnév As String) As Integer ' Oszlopnévből oszlopszám kiírás

Dim első As Integer

Dim második As Integer

oszlopszám = 0

If Len(oszlopnév) = 1 Then

    oszlopszám = InStr(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", oszlopnév)

ElseIf Len(oszlopnév) = 2 Then

    első = InStr(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", Left(oszlopnév, 1))

    második = InStr(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", Mid(oszlopnév, 2, 1))

    If első > 0 And második > 0 Then ' Csak ha mindkettő érvényes

       oszlopszám = első * 26 + második

    End If

End If

If oszlopszám = 0 Then

    MsgBox "Programhiba: Hibás konstans oszlopnév: " + oszlopnév

End If

End Function

 

 

Előzmény: Numan (20024)
tbando Creative Commons License 2013.01.15 0 0 20042

Csak ámulok, hogy mik vannak az excelben.  Az igaz, hogy a cellatartalomból, le kellett vágni az óra perceket, mert velük a kijelölt 10 cellából csak az elsőt konvertálta, ráadásul azt is rosszul. De a csak dátumot mutató stringeket már prímán átalakította.  Mondjuk a logikáját nem értem, szívesen megbeszélném veled.

 

És persze kösz.  

Előzmény: SQLkerdes (20036)
tbando Creative Commons License 2013.01.15 0 0 20041

Solverrel optimalizáltam. Ha sok ehhez hasonló feladatod van, érdemes kitanulnod. Ha érdekelnek a feladatod solver beállításai, felrakhatom a data.hu-ra.

Előzmény: mtibsi (20038)
mtibsi Creative Commons License 2013.01.15 0 0 20040

Talán így jobban látható.

Előzmény: tbando (20025)
mtibsi Creative Commons License 2013.01.15 0 0 20039

Előzmény: tbando (20025)

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