Keresés

Részletes keresés

Retro Image Creative Commons License 2013.03.14 0 0 20694

"(a munkalapok egyesével történő kijelölése, és az adatok másolása, majd beillesztése az új munkalapra, az megy...:-))"

 

Nincs is annál jobb módszer, legfeljebb lehet rajta gyorsítani egy kicsit, pl. makróval:

 

Sub összemásol()
    Dim ws As Worksheet, ws_uj As Worksheet, Rng As Range
    
    Set ws_uj = ThisWorkbook.Worksheets.Add
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> ws_uj.Name Then
            Set Rng = ws_uj.Range("A" & ws_uj.Rows.Count).End(xlUp).Offset(1)
            ws.UsedRange.Copy Destination:=Rng
        End If
    Next
End Sub

 

 

Lehet még talán képlettel is. Egyszer réges rég beképleteztem egy munkalapot úgy, hogy automatikusan, egyben kilistázta 3 másik munkalap tartalmát, követte a változásokat, beleértve azt is, ha valamelyik munkalapon a sorok száma megváltozott. De az elég cammogós megoldás volt...

 

Ilyesmire gondoltál?

 

Előzmény: mimi_bacsi (20693)
mimi_bacsi Creative Commons License 2013.03.14 0 0 20693

Milyen megoldások lehetnek a problémámra?

 

Több munkalapból álló dokumentumból szeretném egyszerűen és gyorsan kinyerni az adatokat és összesíteni egy munkalapra. A munkalapok adatstruktúrája (oszlopok) mindegyikben azonos, de a sorok mennyisége más lehet.

(a munkalapok egyesével történő kijelölése, és az adatok másolása, majd beillesztése az új munkalapra, az megy...:-))

Sánta Kutya (SK) Creative Commons License 2013.03.14 0 0 20692

Lehet-e a cellaérvényesítés figyelmeztető szövegében (sárga tooltip) formázást használni? Legalább egy vastag betű kéne. Off. 2007.

Retro Image Creative Commons License 2013.03.13 0 0 20691

Tshoohaiya

:o)

Delila10 Creative Commons License 2013.03.13 0 0 20690

Az 1 órája írt makró 2003-as verzióban kiválóan működik, magasabbakban megbukik.

Előzmény: Delila10 (20689)
Delila10 Creative Commons License 2013.03.13 0 0 20689

Nagy itt a csend, írok egy érdekességet, amit egy másik fórumon találtam.


Valaki felvetette, hogy írt egy eseménykező makrót. Az A1 cellába beitt egy érvényesítést, aminek az értékétől függően betölti az 1-3 képet.

 

A makró részlete:

    Dim ShapeDel As Shape

        'előző kép(ek) törlése

        For Each ShapeDel In ActiveSheet.Shapes
            ShapeDel.Delete
        Next

 

Eredmény: betölti a képet, de az A1 cellából látszólag eltűnik az érvényesítés, de valójában nem. Bár nincs nyíl és lista, csak a 3 választható értéket engedi bevinni.

 

Rájöttem, hogy az érvényesítést is képként kezeli az Excel. Megoldás:

    Dim ShapeDel As Integer

        'előző kép(ek) törlése
        For ShapeDel = 2 To ActiveSheet.Shapes.Count
            Shapes(ShapeDel).Delete
        Next

 

Biztosan van itt, aki tudta ezt, én nem.

Delila10 Creative Commons License 2013.03.12 0 0 20688

Nincs mit. :)

Előzmény: reg1000 (20687)
reg1000 Creative Commons License 2013.03.12 0 0 20687

Köszi, működik.

Előzmény: Delila10 (20685)
Delila10 Creative Commons License 2013.03.12 0 0 20686

Az első megoldásnál természetesen nem 5-öt kell levonni, hanem B5-öt.

:(

Előzmény: Delila10 (20685)
Delila10 Creative Commons License 2013.03.12 0 0 20685
  1. A képlet legyen =HA(B6-B5<0;"";B6-5), vagy
  2. a formátum legyen # ##0,00;"0";-# ##0,00
Előzmény: reg1000 (20684)
reg1000 Creative Commons License 2013.03.12 0 0 20684

Üdv!

Igazából google táblázatban akadtam el, de lehet, hogy excel-ben ugyanaz a megoldás.


=SUM(B6-B5)
Hogy oldható meg, hogy a nullánál kisebb eredményt ne írja ki?

Az is jó, ha nullát ír a mínusz érték helyett.

Delila10 Creative Commons License 2013.03.12 0 0 20683

Neked is BÚÉK!

 

Örülök, hogy megtértél, üdvözülsz. :)

Előzmény: Törölt nick (20680)
pimre Creative Commons License 2013.03.12 0 0 20682

Na végre:-)))

Előzmény: Törölt nick (20680)
mimi_bacsi Creative Commons License 2013.03.11 0 0 20681

üdv a fedélzeten, Jimmy! :-))

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

BÚÉK :)

Előzmény: Delila10 (20667)
gajdosbetti Creative Commons License 2013.03.11 0 0 20679

nem tudom, mi volt a gond, de itt a pont, egy javítás helyrehozta a dolgot, és szuperül futnak a makrócskáim! :) 

Előzmény: Retro Image (20674)
Retro Image Creative Commons License 2013.03.10 0 0 20678

xls-sel is mennie kellene. A 2003-as munkafüzeteket kompatibilis üzemmódban nyitja meg, xls-ként, és semmi gond nem szokott lenni a makrókkal.

Előzmény: Sánta Kutya (SK) (20675)
Retro Image Creative Commons License 2013.03.10 0 0 20677

Excel - The Haunted Topic

:o)

Előzmény: Sánta Kutya (SK) (20669)
seven update sorbi Creative Commons License 2013.03.10 0 0 20676

Szerintem azt próbáld meg, hogy egy új munkafüzetbe írsz egy kis makrócskát (alt+F11, sub, end sub, közé egy msgbox "szöveg"-et mondjuk), visszamész a munkafüzetre, és onnan elindítod ezt a makrót (alt+F8).

 

Ha ez így nem indul el, akkor jöhetnek a komolyabb lépések (lásd alant), de ha ez így elindul, akkor nincs nagy gáz az exceleddel.

Előzmény: gajdosbetti (20673)
Sánta Kutya (SK) Creative Commons License 2013.03.10 0 0 20675

Most próbáld meg úgy, hogy nem xls a kiterjesztése. :-)

Szerintem xlsxm-nek kéne lennie.

Előzmény: gajdosbetti (20673)
Retro Image Creative Commons License 2013.03.10 0 0 20674

Az újratelepítés jó lehet. Ez biztosan nem verziófüggő probléma, mert 2007-tel is ugyanígy mennie kellett volna, szóval emiatt nem érdemes megvenni a 2010-est is :o)

Előtte érdemes lehet eltávolítani a hibás telepítést pl. revo uninstallerrel.

 

Előzmény: gajdosbetti (20673)
gajdosbetti Creative Commons License 2013.03.10 0 0 20673

Nos, minden gond nélkül sikerült a makrós megoldás a tesóm laptopján, 2010-es excelben, majd mikor a fájt áthoztam a saját laptopomra, a 2007.eshez, megnyitáskor ebbe a hibaüzenetbe futottam:

 


<?xml version="1.0" encoding="UTF-8" standalone="true"?>-<recoveryLog xmlns=" a fájlban (C:UsersbettiDesktopMSc. 2. félévHaladó vállalati pénzügyekÓrai kedd_makrós.xls)</summary>-<additionalInfo><info>Ez a munkafüzet elvesztette a VBA projektjét, az ActiveX vezérlőelemeit és minden programozással kapcsolatos képességét.</info></additionalInfo></recoveryLog>

 

 

(magyarul nem képes kezelni a makrókat az enyém....)

 

most már a feladat kész, szóval itt az elv érdekelne, vajon miért van ez? telepítsem újra az office-t? és akkor itt az ideje a 2010-hez? :(

gajdosbetti Creative Commons License 2013.03.10 0 0 20672

köszönök minden hozzászólást, most próbálkozom :)!

Törölt nick Creative Commons License 2013.03.09 0 0 20671

kár ehhez makró szerintem.

fejlesztőeszközök/beszúrás/űrlap vezérlőelemek/léptetőnyíl --> ha kiraktad a munkalapra, akkor jobb gom rajta, vezérlő formázása és a vezérlő fülön értelemszerűen beállítani a paramétereket

Előzmény: gajdosbetti (20655)
Delila10 Creative Commons License 2013.03.09 0 0 20670

Igazad van, jobb kézzel vakartam meg a bal fülemet.

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

Én úgy hiszem, hogy valahol itt van közöttünk a szelleme....

Előzmény: Delila10 (20667)
Sánta Kutya (SK) Creative Commons License 2013.03.09 0 0 20668

Na de szerintem (1 + 0.01)=1.01, nem?

Előzmény: ibaabi (20665)
Delila10 Creative Commons License 2013.03.09 0 0 20667

Idegen gépről írtam, és most látom, hogy a gép gazdájának egy jelszavával hozta a válaszomat, aki pedig nem is fórumtag. :-))

 

Lehet, hogy hibás volt a makró-hozzárendelés.

 

 

Jimmy The Hand, ha látod ezt, jelentkezz be egy új email címmel, névvel, hiányzol!

Előzmény: ibaabi (20665)
tbando Creative Commons License 2013.03.09 0 0 20666

Hát úgy igen. De mintha pont az lett volna a probléma, hogy nem megy a hozzárendelés. 

Előzmény: ibaabi (20665)
ibaabi Creative Commons License 2013.03.09 0 0 20665

Úgy, hogy a nyíl (vagy bármilyen más) alakzathoz hozzárendelem.

 

SK

A2* veszi az A2-t, és hozzáadja az A2*0,01-et. Próbáld ki.

Előzmény: tbando (20664)
tbando Creative Commons License 2013.03.09 0 0 20664

Ezt a makrót hogy indítja el a kattintás?

Előzmény: Delila10 (20660)
Törölt nick Creative Commons License 2013.03.09 0 0 20663

A problémát én is ismerem ezért kínomban 2003-as Excelen készített üres filet tartogatok arra az esetre ha új filebe kezdenék.

Előzmény: gajdosbetti (20655)
Törölt nick Creative Commons License 2013.03.09 0 0 20662

Kösz. Értem. A futási idő nem számít,

Előzmény: Retro Image (20652)
Sánta Kutya (SK) Creative Commons License 2013.03.09 0 0 20661

Miért 1 + 0.01?

Előzmény: Delila10 (20660)
Delila10 Creative Commons License 2013.03.09 0 0 20660

Modulba tedd be a makrót. Az A2 cella értékét növeli minden kattintásra 1%-kal.

 

Sub Plusz1()
    Range("A2") = Range("A2") * (1 + 0.01)
End Sub

Előzmény: gajdosbetti (20653)
Sánta Kutya (SK) Creative Commons License 2013.03.09 0 0 20659

Nézd csak meg ezt, nem pont erről szól, de hasonló:

http://forum.index.hu/Article/jumpTree?a=121267733&t=9009340

Itt ugyan vezérlőkről van szó, nem tudom, egy képre ez hogy vonatkozik.

Ugyanez a különbség van a makróhozzárendelésnél is. Hátha segít valamit: http://office.microsoft.com/hu-hu/excel-help/vezerlohoz-tartozo-makro-hozzaadasa-es-szerkesztese-a-munkalapon-HP010236678.aspx

Előzmény: gajdosbetti (20653)
tbando Creative Commons License 2013.03.09 0 0 20658

Az excel nálam is gyakran csak a sokadik próbálkozásra adja a makróhozzárendelést lehetővé tevő helyi menut. E parancs valszeg más uton is elérhető, de még nem jöttem rá hogyan. Talán itt valaki.

Előzmény: gajdosbetti (20657)
gajdosbetti Creative Commons License 2013.03.09 0 0 20657

sajnos úgy sem működik... :( 

Előzmény: Retro Image (20656)
Retro Image Creative Commons License 2013.03.08 0 0 20656

Próbáld ki, hogy egy új, üres munkafüzetbe raksz egy felfelényilat, és ahhoz tudsz-e makrót rendelni.

Előzmény: gajdosbetti (20653)
gajdosbetti Creative Commons License 2013.03.08 0 0 20655

             

Előzmény: gajdosbetti (20653)
gajdosbetti Creative Commons License 2013.03.08 0 0 20654

vagy csak túl sok éve volt :( egyébként sem tértek ki sajnos a használható részekre, én pedig nem vagyok az az "önszorgalmas" típus, na most az egyetemig nem is hiányzott az ismeret.... MOSTANÁIG :) 

Előzmény: Sánta Kutya (SK) (20643)
gajdosbetti Creative Commons License 2013.03.08 0 0 20653

Nos akkor kicsit részletesebben :) Kijelenteném, hogy abszolút mechanikusan végzem a feladatot a programban, így előre is elnézést kérek a szakmai hibákért :D

Szóval az Excelem 2007-es verzió, és a konkrét probléma ott merült fel, mikor az volt a feladat a munkalapon, hogy egy cella értékét növeljem 1%-kal olyan módon, hogy egy mellé beszúrt ábrára  kattintgatunk. Azonban hiába kattintok jobb gombbal, hogy hozzárendeljem a makrót, a funkció maga nem működik. A következő lépésként így a virtual basic editor esélytelen, ami szerintem így nézne ki...:

 

Sub Felfelényíl2_Kattintás()

Worksheets("NPV").Activate

Activecell.Value=ActiveCell.Value+ActiveCell.Value*1/100End Sub

 

Azt sem tudom, ez így jó lenne-e egyébként, de az már más kérdés.

 

Csatoltam 2 képet, amin látszik, hogy nem az adatvédelemmel van probléma... és ha még valami infó hiányzik esetleg kérdezzetek légyszi, magamtól nem tudom  mi kéne még!

Előzmény: SQLkerdes (20636)
Retro Image Creative Commons License 2013.03.08 0 0 20652

Hát pont erről szól a DoEvents. Visszaadja a vezérlést a windowsnak, hogy tudja feldolgozni a felhasználói inputokat. Cserébe sokkal lassabb a makró futása.

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

M2 tökéletesen megfelel.

 

Ez érdekes. Vajon az első esetben miért nem lehet multitaskban dolgozni, a másodikban meg miért lehet?

Előzmény: Retro Image (20648)
Törölt nick Creative Commons License 2013.03.08 0 0 20650

Köszönöm. Első látásra jónak tűnik. Mindjárt megnézem mire tudom használni

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

Nekem sikerült közben mást csinálni, mondjuk csak cellák tartalmát szerkesztettem. Másold be ezt egy VBA modulba és indítsd el a StartTimer makrót. 10 másodpercenként ki fogja írni, hogy "hi", kivéve ha pont szerkesztesz egy cellát. Ebben az esetben csak akkor írja ki, ha befejezted a szerkesztést.

 

http://pastebin.com/DUEkXPMb

 

A StopTimer makró lefuttatásával tudod leállítani.

Előzmény: Törölt nick (20647)
Retro Image Creative Commons License 2013.03.08 0 0 20648

Ez nem a timertől függ. A makrót kell jól megírni.

Itt van ez a két példa, hasonlítsd őket össze működés közben.

 

Sub M1()
    Dim i As Long
    For i = 1 To 200000
        Debug.Print i
    Next
    MsgBox "kész"
End Sub

Sub M2()
    Dim i As Long
    For i = 1 To 200000
        Debug.Print i
        DoEvents
    Next
    MsgBox "kész"
End Sub

 

Persze ára is van annak a plusz egy sornak... :O)

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

Nem erre gondoltam. Ennek futásakor nem lehet mást csinálni.

Előzmény: Törölt nick (20642)
Törölt nick Creative Commons License 2013.03.07 0 0 20646

Megnézem. Köszi.

Előzmény: Törölt nick (20642)
Törölt nick Creative Commons License 2013.03.07 0 0 20645

Szükségem van rá. Megjegyzem a VBA-ban rejtetten da van hasonló. Ilyen pl. az autoupdate ami beállított idő után a megosztott filet aktualizálja az összes usernél aki a megosztásban részt vesz. Most amilyen filet írok abban ez igen jól jön. Ennek az a hiányossága, hogy egy funkciós azaz másra nem képes, egyedül az updatelési időt lehet befolyásolni.

Előzmény: SQLkerdes (20641)
Sánta Kutya (SK) Creative Commons License 2013.03.07 0 0 20644

:-)

Ez jobb, mint a tökfőzelék!

Előzmény: SQLkerdes (20641)
Sánta Kutya (SK) Creative Commons License 2013.03.07 0 0 20643

Lehet, hogy azon az órán hiányoztál az iskolából, amikor a makróhasználatot tanították? :-)

Bocs!

Előzmény: gajdosbetti (20634)
Törölt nick Creative Commons License 2013.03.07 0 0 20642
Előzmény: Törölt nick (20640)
SQLkerdes Creative Commons License 2013.03.07 0 0 20641

Azt nem tudom lehet-e, de nem gondolom, hogy érdemes.

Képzeld el, hogy békésen dolgozgatsz egyszer csak az Excel odafut, lenyom egy sallert, kikapja a kezedből a munkalapot és elrohan.

És mindezt attól függetlenül, hgoy éppen mit csinál a user.

 

Értem én, hogy vannak olyan élethelyzetek amikor ez hasznos lehet (pld dolgozatírás), de azt gondolom, hogy ez annyira rétegigény, hogy nem biztos, hogy a MS-nél figyelembe vették, vagyis leprogramozták volna.

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

Valószínűleg nem emlékszel de te is meg más is legalább 4-5 óta egy-egy részletben besegítettetek. Nem csak te.

 

Most egy érdekes kérdésem lenne. Van -e az Excelnek lehetősége olyan timert, órát futtatni a háttérben ami a beállított idő után makrót indít. Futási ideje alatt lehessen mást csinálni a táblában. A normál timer alatt ez nem lehetséges.

Előzmény: Delila10 (20632)
tbando Creative Commons License 2013.03.07 0 0 20639

Meg olyan is van, hogy nincs megnyitva a makrót tartalmazó füzet. Csinál az ember egy makrót de nem ixeli ki a 'minden füzetben' opciót. Ilyenkor aztán  nincs makró addig, amig meg nem nyitja ezt a füzetet is. Ergo nem árt megnézni az alt+F8 makrólistáját, hogy miket mutat.

Előzmény: gajdosbetti (20634)
pimre Creative Commons License 2013.03.07 0 0 20638

Bocs, figyelmetlen voltam. Most látom, hogy ezen már túl vagy.

Előzmény: pimre (20637)
pimre Creative Commons License 2013.03.07 0 0 20637

Ha esetleg teljesen kezdő lennél makró ügyben: Az excel menüben Eszközök->Beállítások->Biztonság fül, majd ezen belül makróvédelem gomb után válaszd a közepes biztonsági szintet. Ez majd mindig figyelmeztet, hogy ha egy munkafüzetben makrók vannak, és engedélyezheted a használatukat.

Előzmény: gajdosbetti (20634)
SQLkerdes Creative Commons License 2013.03.07 0 0 20636

Meg azt is említsd meg, hogy mit jelent az, hogy nem tudsz makrót használni?  Van egy makrót tartalmazó munkafüzeted de nem tudod lefuttatni a makrót vagy van egy munkafüzeted, akarsz benne pld. makrót rögzíteni de nem lehet.

Meg láttunk itt már olyat is, hogy Open Office táblázatkezelőjén próbáltak excel-es dolgokat csinálni, de előre is elnézést kérek ha ennél szofisztikáltabb a táblázatkezelési tudományod.

Előzmény: gajdosbetti (20634)
Retro Image Creative Commons License 2013.03.07 0 0 20635

Osztán barátságos-é a munkafüzeted makrókkal szemben?

 

(Nem mindegy, hogy sima munkafüzet, vagy makróbarát munkafüzet. Meg persze az sem mindegy, hogy milyen Excel verzió.....)

Előzmény: gajdosbetti (20634)
gajdosbetti Creative Commons License 2013.03.07 0 0 20634

sziasztok!  légyszi írja már meg nekem, miért nem tudok makrókat használni? már elvileg a letiltást feloldottam az adatvédelmi beállításoknál, de semmi változás :( más ötlet esetleg?

Jozsef Creative Commons License 2013.03.07 0 0 20633

Nemcsak adatbázissal. Az ECM (elektronikus tartalomkezelő) rendszerek látva a Google Docs sikerét, az online szerkesztést is lassan-lassan el kezdik támogatni. Pl.  a Sharepoint 2013 már támogatja az ún. co-authoring funkciót, amivel egyszerre több ember is dolgozhat az állományon.

De már a "hagyományos" CMS támogatás is nagy előny a megosztott munkafüzethez képest. Ahol több ember dolgozik fontos állományokon mindenképpen hasznos egy ilyen rendszert bevezetni, open-sourceban az Alfresco és a Nuxeo is támogatja az Office integrációt. Még egy kisebb cégnél is lehet találni egy olyan  mai PC-t, amire virtualizálva egy Linux-Alfresco combó feltelepíthető.

 

 

 

Előzmény: Sánta Kutya (SK) (20628)
Delila10 Creative Commons License 2013.03.07 0 0 20632

Részemről szívesen, bár az előzményekkel nem vagyok tisztában, csak egy kis részletre írtam megoldást.

Gratulálok a nagy sikeredhez!

Előzmény: Törölt nick (20627)
Slient Creative Commons License 2013.03.06 0 0 20631

Ugy irtam,h "HA a D4-es mezőben az A1-től A100-ig szereplő különböző nevek egyike szerepel"..szóval nem feltétlenül szerepel:) De azért köszi!!

Előzmény: Törölt nick (20564)
Slient Creative Commons License 2013.03.06 0 0 20630

Köszönöm a segítségteket...tökéletesen müködik:)

Slient Creative Commons License 2013.03.06 0 0 20629

Pontosan...nem feltétlenül szerepel:) 

Előzmény: Delila10 (20559)
Sánta Kutya (SK) Creative Commons License 2013.03.06 0 0 20628

Valódi real-time funkciót szerintem csak adatbázissal lehet elérni. De amikor elmenti valaki a táblázatot, akkor mindig bejönnek a többiek módosításai.

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

Üdv Delila.

Azt megoldottam, hogy megosztott Ezcel file-ben történt változás 5 perc múlva megjelenjen a többieknél. Klasszul működik. Van -e olyan lehetőség, hogy real time történjen ez. Bár kérdéses, hogy így van -e értelme.

 

A másik, ez fontosabb. Van -e olyan lehetőség, hogy a task-bárra csukott file felugrik, kinyílik vagy egyéb jelzést küld ha valaki a megosztásban változtat,beleír a táblába?

 

Itt köszönném meg, hogy neked és a többieknek azt a segítséget amikkel túllöktetek egy-egy holtponton. Amit készítettem annak csodájára járnak a munkahelyemen. Amit készítettem az köszönő viszonyban sincs az eredeti Excel funkciójához viszony elegáns és kiválóan, gyorsan működik. Volt aki odajött hozzám gratulálni.

 

Előzmény: Delila10 (20626)
Delila10 Creative Commons License 2013.03.06 0 0 20626

Az ilyen "beszúrós" ciklusokat a végéről jó indítani az eleje felé, Step-1 lépésközzel.

 

for x =vége to eleje Step-1

Előzmény: seven update sorbi (20622)
seven update sorbi Creative Commons License 2013.03.06 0 0 20625

Oké, köszi. (Gondolom a do while-ra céloztál.)

Előzmény: Sánta Kutya (SK) (20623)
tbando Creative Commons License 2013.03.06 0 0 20624

Próbáld ki ezt:

 

Sub ins()

a = ActiveSheet.UsedRange

b= 0

For i = 1 To UBound(a)

If Cells(i + b, 1) = 1

ThenRange(Cells(i + b, 1), Cells(i + b, 10)).Insert

b = b + 1

End If

Next

End Sub

Előzmény: seven update sorbi (20622)
Sánta Kutya (SK) Creative Commons License 2013.03.06 0 0 20623

A százéves álmoskönyv, valamint a bevezetés a programozásba tankönyvek nulladik oldala szerint for ciklus fejét a cikluson belül változtatni semmi jót nem jelent, és tetszőlegesen nagy káosz előidézésére alkalmas.

 

Gondold meg még egyszer, és ha még mindig ezt szeretnéd csinálni, akkor ne csináld. :-)

 

Ilyen esetre a végfeltételes ciklus való.

Előzmény: seven update sorbi (20622)
seven update sorbi Creative Commons License 2013.03.06 0 0 20622

Sziasztok!

 

Azt szeretném kérdezni, hogy ha egy tartományban egy for next ciklust alkalmazok, és ezen a cikluson belül sorokat szúrok be a tartományba, akkor hogy lehet a ciklus végét megnövelni a beszúrt sorok számával?

 

A kis példa hozzá:

 

Sub ins()
a = ActiveSheet.UsedRange
For i = 1 To UBound(a)
If Cells(i, 1) = 1 Then
Range(Cells(i, 1), Cells(i, 10)).insert
End If
Next
End Sub

 

A probléma az, hogy a ciklus csak az eredeti tartomány végéig megy, és nem a beszúrt sorok számával növeltig.

Ordas Creative Commons License 2013.03.06 0 0 20621

Köszönöm neked és mindenkinek a választ...

 

most kísérletezem vele!

Előzmény: Jozsef (20612)
Retro Image Creative Commons License 2013.03.06 0 0 20620

Azt hittem, ezt is duplázni kell, de nem...

Előzmény: Retro Image (20619)
Retro Image Creative Commons License 2013.03.06 0 0 20619

perjel: /

Előzmény: Sánta Kutya (SK) (20617)
Retro Image Creative Commons License 2013.03.06 0 0 20618

Ha a feladat olyan, hogy mindig ugyanabból az adatbázisból, ugyanazt a lekérdezést hajtod végre, és ugyanazt a kimutatást az adatokból, csak mondjuk naponta más adatok vannak, akkor édemes lehet a munkafüzetből egy direkt kapcsolat az adatbázissal, és akkor csak egyszer kell megcsinálni mindent, utána csak az adatfrissítés gombokat nyomogatni minden nap, és legfeljebb egy snapshot-ot menteni, ha szükséges.

 

Ez mondjuk nem válasz a kérdésedre, de hátha betalál :o)

Előzmény: Macsi62 (20616)
Sánta Kutya (SK) Creative Commons License 2013.03.05 0 0 20617

A backslasht itt mindig duplán kell kitenni, de a menüpontok közé úgyis rendes perjel való. :-)

Előzmény: Macsi62 (20614)
Macsi62 Creative Commons License 2013.03.05 0 0 20616

Köszönöm a választ. Akkor ezek szerint fogok eljárni... csak nem tudom felfogni, hogy akkor mi a fenének van lehetőség saját stílust definiálni, ha nem tudom használni :(

 

Előzmény: SQLkerdes (20615)
SQLkerdes Creative Commons License 2013.03.05 0 0 20615

Én azt csinálnám, hogy létrehozom a kívánt kimutatás stílust egy üres munkafüzetben, majd a munkafüzetet elmentem sablonként.

Ezután ha tudod, hogy kimutatást kell csinálj, akkor nem egy "sima" új munkafüzetet hozol létre (normal template) hanem a fent elmentett sablon megnyitásával.

 

Persze lehet még azt csinálni, hogy egy makróval csináltatod meg a formázást, de az alapján amit leírtál nem nagyon tűnik indokoltnak...

Előzmény: Macsi62 (20614)
Macsi62 Creative Commons License 2013.03.05 0 0 20614

Bocs, a backslach eltűnt:(

helyesen: kimutatáseszközök-tervezés-kimutatásstílusok-kimutatásstílus létrehozása

Előzmény: Macsi62 (20613)
Macsi62 Creative Commons License 2013.03.05 0 0 20613

Sziasztok!

Excel 2010-t használok. Nagyon sok kimutatást készítek SQL*l leválogatott adatbázisból. Van egy fajta kimutatás stílus, amit előszeretettel alkalmazok, de ezt minden egyes kimutatásban, újra és úrja be kell állítanom.

Gondoltam, a kimutatáseszközöktervezéskimutatásstílusokkimutatás stílus létrehozása menüpont alatt, elkészítem a nekem teszőt, s utána már csak egy kattintás, és formájában, színvilágában olyan lesz amilyet szeretek. Tévedtem. Hiába nyomkodom, az alapértelmezettként való mentést, csak abban a fájlban hajlandó alkalmazni a stílust a további kimutatások elkészítése során. De ha egy új leválogatásban dolgozom, akkor ez az egyedi stílus beállítás nem látszik, nem elérhető.

Én nem csinálok valami jól? Nem akkor van értelme a sok-sok beállítgatásnak, ha az utána bármely fájlban elérhető lenne?

Előre is köszi a segítséget.

Üdv. Csilla

 

Jozsef Creative Commons License 2013.03.05 0 0 20612

Kulcsmező nélkül is meg lehet oldani az AB.SZUM függvénnyel. Előnye ennek a megoldásnak, hogy tetszőleges bonyolultságú feltételt meg lehet vele fogalmazni, ami a jövőben esetleg szükséges lehet.

Pl.

Előzmény: Ordas (20605)
tbando Creative Commons License 2013.03.05 0 0 20611

kösz

Előzmény: Retro Image (20610)
Retro Image Creative Commons License 2013.03.05 0 0 20610

Lásd 20562

Előzmény: tbando (20609)
tbando Creative Commons License 2013.03.05 0 0 20609

A minuszjeleknek mik a szerepük a szorzatösszeg képletekben?

Előzmény: Retro Image (20606)
tbando Creative Commons License 2013.03.05 0 0 20608

Amíg nincsenek 2013 évnél későbbi adataid a táblázatban, addig a 2013 éviekre müködik a szumha(A:A;">41274";B:B). A márciusi adatok összegzésere attól tartok muszáj lesz a kulcsmezős megoldást választanod. 

Előzmény: Ordas (20605)
Retro Image Creative Commons License 2013.03.05 0 0 20607

Esetleg még jobb lehet egy kimutatás (pivot) tábla. Ennél nem kerülhető el a kulcsmezők képzése, más szempontból viszont pöpec lenne.

Előzmény: Ordas (20605)
Retro Image Creative Commons License 2013.03.05 0 0 20606

szumha helyett szorzatösszeggel:

=SZORZATÖSSZEG(--(ÉV(A1:A10)=2013);(B1:B10))

=SZORZATÖSSZEG(--(ÉV(A1:A10)=2013);--(HÓNAP(A1:A10)=3);(B1:B10))

Előzmény: Ordas (20605)
Ordas Creative Commons License 2013.03.04 0 0 20605

Sziasztok!

A SZUMHA fgv-t szeretném kicsit boncolgatni.

A oszlop: dátum (YYYY.MM.DD. formátumban)

B oszlop: összeg, Ft-ban

 

Pl.

2013.03.01 610Ft

2012.09.01 1000 Ft.

2013.02.10. 530 Ft

 

Van-e olyan módja a szumha fgv-nek, hogy az A oszlop YYYY.MM.DD formátumú dátumból csak azokat adja össze, ahol az év 2013? A megoldás jelen esetben 610+530 Ft lenne. És oylan, hogy csak a 2013. 3. havi tételeket adja össze?

 

Mivel nem helytakarkos, nem akarok a C oszlopba egy ÉV(A2) értéket, a D-be megy egy ÉV(A2)&HÓNAP(A2) kulcsmezőt létrehozni és ezekre hivatkozva megadni a SZUMHA fgv-eket.

 

Makrüt simán nem tudok még programozni, így elvetném, emrt jelen tudásom szerint úgysem érteném, amit írtok.

 

Szóval a fenti problémára van makró nélküli és kulcsmező képzés nélküli megoldás?

 

Köszönöm.

seven update sorbi Creative Commons License 2013.03.04 0 0 20604

Közben sikerült úgy bepozícionálnom a fehér háromszögeket, hogy azok ne takarjanak ki a cellahatároló vonalakból semmit.

 

Egyrészt a háromszög mérete így alakul:

 

shpW = 5
shpH = 5

 

Másrészt a pozícionálásnál a vonatkozó sor:

 

    Set shpCmt = ws.Shapes.AddShape(msoShapeRightTriangle, _
      rngCmt.Offset(0, 1).Left - shpW, .Top+1, shpW, shpH)

 

Így a fehér háromszögek láthatatlanok az excel lapon.

 

Mégegyszer nagyon köszönöm.


Előzmény: SQLkerdes (20602)
seven update sorbi Creative Commons License 2013.03.04 0 0 20603

Fantasztikus, köszönöm! :-)

 

(A háromszög méretével játszom még, hogy pontosan takarjon, de ez már csak nüansznyi dolog.)

Előzmény: SQLkerdes (20602)
SQLkerdes Creative Commons License 2013.03.04 0 0 20602

A megoldás az, hogy mindegyik kis piros háromszöget manuálisan eltakarod egy ugyanakkora kis fehér háromszöggel.  És miközben azt írom, hogy manuálisan, természetesen arra gondolok, hogy VBA-n keresztül.

 

Nem a világ legelegánsabb megoldása, de legalább műxik.

 

A kód itt lentebb, csak a kis háromszögek színét kell fehérre átírni (a lenti példában azért kék, hogy nyomtatáskor látszódjon).

http://www.contextures.com/xlcomments03.html#Indicator

Előzmény: seven update sorbi (20600)
Törölt nick Creative Commons License 2013.03.04 0 0 20601

Én nem tudok ilyenről.  Illetve De. :) A cella háttérszínét állítsd pirosra!

Na de viccet félre téve, 5 perc keresgélés után nem találtam semmit.

 

Ami eszembe jut pótlólagos megoldásként:

Ha megteheted, használj megjegyzés helyett Érvényesítést. Bár ha az egeret a cella fölé viszed, attól még jelenik meg az üzenet, hanem ki is kell választani.

Előzmény: seven update sorbi (20600)
seven update sorbi Creative Commons License 2013.03.04 0 0 20600

Sziasztok!

 

Azt szeretném kérdezni, hogy a cellákhoz beszúrt megjegyzések esetén van-e mód arra, hogy ne látszódjon az a kis piros zászlócska (comment indicator) az excel cella jobb felső sarkában úgy, hogy ha az egeret a cellához viszem, akkor látszódjon a megjegyzés?

 

Addig eljutottam, hogy az excel beállításoknál a speciális rovatban be lehet állítani, hogy látszódjon-e a jelölés, vagy sem, de ha azt állítjuk be, hogy ne látszódjon, akkor maga a bejegyzés sem látszik.

 

Makróban is csak három beállítást láttam erre (Application.DisplayCommentIndicator-nál) xlCommentAndIndicator, xlCommentIndicatorOnly és xlNoIndicator, mely utóbbi ugyanazt eredményezi, mint a speciális beállításoknál a "nem látszódnak a megjegyzések és a jelölésük". Nekem arra lenne szükségem, hogy látszódnak a megjegyzések (ha az egeret a cella fölé viszem), de nem látszódnak a jelölésük.

Törölt nick Creative Commons License 2013.03.02 0 0 20599

fkeressel az egyik oszlopból vissza kell keresni a másikat

magyarul egy oszlopot melléteszel és =fkeres(amitkeresekcellája; aholkeresemoszlopa; 1; 0)

Előzmény: ton____jo (20597)
Sánta Kutya (SK) Creative Commons License 2013.03.02 0 0 20598

Na de akkor pont azt kéne csinálnod, amit írtam. Mindaddig, amíg nincs rá garancia, hogy csak egy nevet hagyhatsz ki, nem írhatod a kihagyott nevet az oszlop alá. A legegyszerűbb melléírni egy darabtelit a harmadik oszlopba. Esetleg egy HA függvénybe ágyazva, hogy szám helyett szöveg jelenjen meg. HA(darabteli...=1;"";"Hiányzik!")

Előzmény: ton____jo (20597)
ton____jo Creative Commons License 2013.03.02 0 0 20597

Köszi!Megnéztem.

 

Nem teljesen.Pl

Fix névsor van. Ezek cserélődnek, a számlálon látom, hogy 1 vagy 2 embert kihagytam.

Nekem név szerint kellene, hogy

kit. Persze 30-40 nevet átbogarászni nem egyszerű,erre kellen ez a segítség.

Köszi.

 

Béla        Géza

Géza       Béla

Marcsi     Jancsi

Jancsi      Anna

Anna

 

5               4

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

Bár a kérdésed nem tartalmaz grízes tésztát, megpróbálok válaszolni: ha jól értelek, neked a DARABTELI függvény lelki világával kéne megismerkedned, amivel a harmadik oszlopban jelezhetnéd, hogy a második oszlopban szereplő név (pl. B3) hányszor fordul elő az első oszlopban (A:A). Ha 1 jön ki, akkor nyert, ha több vagy kevesebb, akkor nem. MÁr ha nem ragaszkodsz ahhoz, hogy a második oszlop alján legyen a számláló, amit nem is nagyon tudok értelmezni, de szerinte sokkal kevesebb információt ad (hiszen érdekesebb, hogy ki maradt ki, mint hogy hányan).

Előzmény: ton____jo (20595)
ton____jo Creative Commons License 2013.03.02 0 0 20595

Sziasztok!

 

Segítséget szeretnék kérni.

 

Van egy oszlop, nevek vannak fölsorolva Pista,Géza,Marcsi....

A következő oszlopba is fel kell sorolnom ezeket a neveket más sorrendbe, a végén van egy számláló

jelzi hogy egy hiányzik.

Hogyan tudnám megoldani, hogy kijelezze kit hagytam ki Marcsit-e vagy Pistát.

 

Köszönöm.

 

Sánta Kutya (SK) Creative Commons License 2013.03.02 0 0 20594

Jól választottál. Inkább azt, mint a tökfőzelékest!

Előzmény: _Nyuszi (20593)
_Nyuszi Creative Commons License 2013.03.02 0 0 20593

Hát, valóban, érdemes néha. A grízestésztás részt még emésztem....

:-)))

Előzmény: Retro Image (20591)
Retro Image Creative Commons License 2013.03.02 0 0 20592

Ez már szakzsargonnak sem rossz. Legközelebb, ha meglátok a makróban egy ilyet:

Cells(1, usor).Select

akkor azt fogom kiáltani, hogy "dara"! :o)

 

Azt azért meg kell hagyni, hogy vannak esetek, amikor az alulkvalifikáltság tolerálható.

Ha például a makró úgy szól, hogy

Sub Hozzávalók()

     Dara.40.Dkg

     Liszt.40.Dkg

...

End Hozzávalók

akkor a compiler ezt általában jól értelmezi, feltéve, hogy az Activesheet a konyha.

Előzmény: Sánta Kutya (SK) (20589)
Retro Image Creative Commons License 2013.03.02 0 0 20591

Azért jó, hogy jöttél :o)

Delila is azt mondta, érdemes ide benézni olykor, mert mindig tanul valamit az ember. Te például tudtad, hogy miben hasonlít a tökfőzelék és a grízestészta?

Előzmény: _Nyuszi (20590)
_Nyuszi Creative Commons License 2013.03.02 0 0 20590

Ohh, későn jöttem, már van megoldás. :(

Előzmény: KelemenGy (20572)
Sánta Kutya (SK) Creative Commons License 2013.03.02 0 0 20589

Amit viszont magyarra Pomádénak vagy minek fordítottak.

Nekem erről az alulkvalifikált "dara" szóról az SQL hibaüzenete jut eszembe, amit egy gyengébben sikerült join után kapok: dara is ambigous.

Vagy mintha több osztálynak is lenne egyforma nevű metódusa, de osztálynév nélkül akarnál hivatkozni rá, mert az a hülye  számítógép értse meg.

Mert kérem nem csak árpadara, zabdara, kukoricadara, búzadara és az arab pénzváltó, Abu Dara van, de még sódara is, amivel az utakat szórják télen. Na azt meg végképpen nem szeretném a grízes tésztámban vagy a tejbegrízemben látni. Akkor már inkább Olivia egy kád tejben (harminc évvel ezelőtt).

 

Különben meg súlyosan ez a legoffmentesebb topik, amerre járok, egy kis szépítés nem árt így hétvégén. :-)

 


Előzmény: Retro Image (20588)
Retro Image Creative Commons License 2013.03.02 0 0 20588

Valószínűleg a "dara" szó közelebb áll a nevezett megnyilvánulás (jelenség, dolog) esszenciájához, különösen ha tekintetbe vesszük ama híres szórakoztatóipari klasszikust, amelyet John Travolta és Olivia Newton John bájoskodtak végig anno még a múlt században. Nem is merek rá gondolni, hogy esetleg a "gríz" szó eredete kapcsolatban állhat az azonos hangalakú angol szóval, mert ha megteszem, akkor a "tejbegríz", "grízestészta" és más hasonló szavak jelentése új - és hát nem annyira vonzó - dimenziót kap.

 

(Aki pedig azt meri hinni, hogy ez itt mind off, azt megkérem, hogy ne tévedjen ilyen nagyokat. Mert ugyanis ha beírom a fenti szöveget a munkafüzetem Module1 nevű moduljába, akkor hibaüzenetet kapok. Innentől kezdve pedig a tejbegríz Excel-vonatkozása nyilvánvaló és letagadhatatlan.)

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

Miután a dara a gríznek a hivatalos neve. Más szóval dara a neve, de gríznek hívják. Ez pont olyan, mint  a Széll Kálmán tér, amit Moszkva térnek hívnak.

Az előbbi összefüggésre egyébként nem nehéz rájönni, hiszen a tejbegríz szakkifejezést valószínűleg az is hallotta már, aki képes darának nevezni a grízt.

Előzmény: Törölt nick (20584)
Sánta Kutya (SK) Creative Commons License 2013.03.01 0 0 20586

De én akartam! Sőt, volt olyan pillanat, amikor megfogadtam, hogy inkább mindig hagyok egy pár pixel széles üres A oszlopot a bal szélén, és csak a B-től kezdek rejteni.

Előzmény: Törölt nick (20580)
KelemenGy Creative Commons License 2013.03.01 0 0 20585

:)))

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

off

Delila,

Ja, hogy darástészta :) Én így ismerem, és grízesről még sosem hallottam.

on

 

Szóval

HA("Grízestészta"="Darástészta";HAMIS;IGAZ)

Előzmény: KelemenGy (20583)
KelemenGy Creative Commons License 2013.03.01 0 0 20583

/off

 

Főtt tészta + pirított búzadara felpárolva a pirítás után, mindez megkeverve és ízlés szerint sósan vagy gyümölcslekvárral édesen ehető. Én spec. szeretem. Annó az általános iskolai menzán alaposan el tudták rontani, mivel nem főzték a tésztát, hanem szétáztatták és nem pirították a darát, csak lefőzték, de amit én csinálok, az nem hasonlít a menzáshoz :)

 

/on

Előzmény: Törölt nick (20578)
KelemenGy Creative Commons License 2013.03.01 0 0 20582

Jogos történet. Ha nem csak az A:G oszlopok vannak rejtve, hanem az AB:AF is, akkor a Ctrl+A-s megoldás az utóbbiakat is felfedi.

Előzmény: Törölt nick (20580)
Delila10 Creative Commons License 2013.03.01 0 0 20581

OFF Biztosan tudni akarod? OFF

Előzmény: Törölt nick (20578)
Törölt nick Creative Commons License 2013.03.01 0 0 20580

a ctrl+a (vagy katt a balfelső sarokba a sor-oszlop 0 metszetbe) megoldás rossz, ha nem akarom minden felfedni

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

amúgy ha mondjuk "A" oszlop van elrejtve akkor a "B" oszlopot kijelölve és az egeret a bal "széléig" húzva kijelöli a rejtett "A" oszlopot is. Aztán mehet a felfedés. (Én legalábbis így szoktam csinálni)

Előzmény: Sánta Kutya (SK) (20571)
Törölt nick Creative Commons License 2013.03.01 0 0 20578

{a grízestészta az mi a fene?}

Előzmény: Delila10 (20568)
Sánta Kutya (SK) Creative Commons License 2013.03.01 0 0 20577

Hát akkor előkelő társaságba keveredtem, már nem is olyan ciki, hogy nem tudtam!

Előzmény: KelemenGy (20575)
KelemenGy Creative Commons License 2013.03.01 0 0 20576

Márhogy persze mindezt nem most, hanem pár hónapja, mikor melóban szembejött egy olyan tábla, aminek el volt rejtve az első 3 oszlopa és muszáj volt módosítanom az ott írtakat. Ha jól rémlik, akkor kétnapi guglizás volt az ára :)

Előzmény: KelemenGy (20575)
KelemenGy Creative Commons License 2013.03.01 0 0 20575

Én is küzdöttem vele egy sort, mire előkerítette a gugli a megoldást valami angol nyelvű fórumból.

Előzmény: Delila10 (20574)
Delila10 Creative Commons License 2013.03.01 0 0 20574

Köszi, ezzel én is szenvedtem.

Előzmény: KelemenGy (20572)
Sánta Kutya (SK) Creative Commons License 2013.03.01 0 0 20573

Köszönöm!!! Szóval ez a titkos kód, a fejére, hogy meg ne sántuljon. Én ugyanezt csináltam, csak bele az  oszlopba, és úgy nem megy.

Előzmény: KelemenGy (20572)
KelemenGy Creative Commons License 2013.03.01 0 0 20572

Ctrl+A, H oszlop fején jobb katt, felfedés. Nekem ez a módszer műkszik.

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

Nagyon hülye kérdés: hogy a búbánatba lehet felfedni az elrejtett a:g oszlopokat? A minden kijelölése, a cellanév direkt begépelése nem segített, a felfedés gomb csak munkafüzetet akar felfedni... Excel 2007.

tbando Creative Commons License 2013.03.01 0 0 20570

Van amikor egyes VBA+ban írt  rutinjaimhoz az excel (2007) nem akar gyorsbillentyűt rendelni. Az alt+F8 ablakban látja a makrót, de amikor rákattintok, csak a 'Létrehozás' gombot aktiválja (vajon  minek, amikor már létre van hozva ???), a Lépésenként, a Szerkesztés, a Törlés és az Egyebek gombokat nem. Mi lehet ezeknél a makróknál elállítódva? És hogyan lehet megszüntetni?

 

Volt már ilyen, de aztán megszűnt. Most újra kezdi. Eléggé bosszantó.

Sánta Kutya (SK) Creative Commons License 2013.03.01 0 0 20569

Nem is beszélve arról az esetről, ha futó lép D4-re, és kiüti a nevet!

Előzmény: Delila10 (20568)
Delila10 Creative Commons License 2013.03.01 0 0 20568

20552: "szóval ha a D4-es mezőben az A1-től A100-ig szereplő különböző nevek egyike szerepel"


Elvitatkozgatunk itt, hogy ha vagy nemha, a kérdező meg ide sem kukkant.

 

A tökfőzelékhez csak annyit, hogy eddig csupán a grízestésztát tudtam válóoknak. Érdemes ide látogatni, itt mindig tanul az ember. :)

Előzmény: Retro Image (20566)
roley Creative Commons License 2013.02.28 0 0 20567

Köszönöm!!!!

Retro Image Creative Commons License 2013.02.28 0 0 20566

Igazad van, sima FKERES. Azt ugyanis nem részletezte Slient kartács, hogy ha D4 értéke nincs benne az A1:A100-ban, akkor mi legyen. Biztos jó neki a hibaüzenet is :o)

Előzmény: Törölt nick (20564)
Törölt nick Creative Commons License 2013.02.28 0 0 20565
Előzmény: roley (20563)
Törölt nick Creative Commons License 2013.02.28 0 0 20564

dehogynem:

idézem:

a D4-es mezőben az A1-től A100-ig szereplő különböző nevek egyike szerepel,

 

sima fkeres...

Ettől függetlenül  lehet simán így is, mivel 2010-es excelt ír:  hahiba(fkeres...;"") 

 



 

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

Sziasztok!

 

Eg kis segítséget szeretnék kérni. Sajnos nem értek makroíráshoz most viszont szükségem lenne egy egyszerű makro leprogramozására.

A lényeg az lenne, hogy a makro törölje ki a sorokat addig az első sortól kezdve, amíg az A oszlopban el nem ér egy celláig, aminek a tartalma "xy".

 

ha tudnátok segíteni az nagy segítség lenne,

köszönettel,

Roley

Retro Image Creative Commons License 2013.02.28 0 0 20562
Előzmény: Sánta Kutya (SK) (20561)
Sánta Kutya (SK) Creative Commons License 2013.02.28 0 0 20561

Mi is volt ez a --? Tudom, hogy már volt szó róla, de két fülem van...

Előzmény: Retro Image (20556)
Sánta Kutya (SK) Creative Commons License 2013.02.28 0 0 20560

Mert HA-val kezdődik a feladat, és sima FKERES-sel hibaüzenetet kapnál, ha a feltétel nem teljesül.

Előzmény: Törölt nick (20558)
Delila10 Creative Commons License 2013.02.28 0 0 20559

Azér', mer' nem feltétlen szerepel a keresett érték az A oszlopban.

 

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

ezt mér így csináljátok, amikro ehez egy sima fkeres kell csak?

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

Ez nagyon szép :-)

Előzmény: Retro Image (20556)
Retro Image Creative Commons License 2013.02.28 0 0 20556

=SZORZATÖSSZEG(--(A1:A100=D4);(B1:B100))*C4

:P

Előzmény: Delila10 (20555)
Delila10 Creative Commons License 2013.02.28 0 0 20555

=HA(DARABTELI(A:A;D4);$C$4*INDEX(A:B;HOL.VAN(D4;A:A;0);2);"")

Előzmény: Slient (20552)
Retro Image Creative Commons License 2013.02.28 0 0 20554

=HA(HIBÁS(HOL.VAN(D4;A1:A100;0));"";C4*FKERES(D4;A1:B100;2;HAMIS))

Előzmény: Slient (20553)
Slient Creative Commons License 2013.02.28 0 0 20553

Nagy segítség lenne(munkahelyi probléma):D

Előzmény: Slient (20552)
Slient Creative Commons License 2013.02.28 0 0 20552

sziasztok! Segítségre lenne szükségem, mert az én megoldásom túl bonyolult lenne, és hátha tudtok egyszerűbbet. Na szóval ha a D4-es mezőben az A1-től A100-ig szereplő különböző nevek egyike szerepel, akkor szorozza be a C4-es mezőben szereplő számot az adott névhez tartozó számmal. Minden névhez(A1-től A100-ig) tartozik egy szám(B1-től B100-ig). 2010-es excelt használok. Köszönöm!!!

ujszaszy Creative Commons License 2013.02.28 0 0 20551

köszi srácok :-)

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

:-DD

Előzmény: Retro Image (20548)
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)

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