-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
félisten
válasz DopeBob #7984 üzenetére
Hali!
Egy általad választott cellába beviszed ezt a képletet tömbképletként (F2->beilleszted az alábbi képleted->CTLR+SHIFT+ENTERT-t ütsz)
=SZUM(1/DARABTELI(A1:A6;A1:A6))
Értelem szerűen az A1:A6 tartományt oda állítod, ahol a nevek vannak.
Fire.
UI: A nevek közt nem lehet üres cella, mindnek kitöltve kell lennie ebben az esetben, ha nem így van akkor #ZÉRÓOSZTÓ hibát kapsz..
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz DopeBob #7986 üzenetére
Hali!
Ebben az esetben az A:A megadása nem célszerű, hisz akkor gondoskodni kell arról, hogy az A oszlop minden cellájában legyen valamilyen érték, ellenkező esetben #ZÉRÓOSZTÓ hibát kapsz. Másrészt meg az Excel 2003-ban 65536 sor a maximum(meg 256 oszlop), de pl 2007-ben ez már lényegesen több(több mint 1 millió sor és 16384 oszlop)
Annyit tehetsz, hogy pl elnevezel tartományokat pl az A2:A10000 NEVEK-nek és akkor a korábbi képlet így módosul
=SZUM(1/DARABTELI(NEVEK;NEVEK))Itt ha beszúrsz vagy törölsz egy sort, akkor az Excel gondoskodik róla, hogy növelje vagy csökkentse az elnevezett tartomány értéktartományát.
Az Autoszűrős dolgot nem teljesen értem, mert az nem befolyásolja a képlet működését...
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz DopeBob #7988 üzenetére
Hali!
Ja kérem szépen, ha így írtad volna le az először is a feladatot, akkor nem "bohockodok" sima képlettel...
Makróval megoldható...Majd ahogy időm engedi megírom, ha tudom(hacsak nem érkezik Delila_1 addigra a megoldással)Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
Topikgazda
válasz DopeBob #7999 üzenetére
Fire most nem ér rá, azért szállok be a megoldásba.
Vegyük, hogy az első lapon vannak a szűrt adataid, a Munka2 lapon lesz a "népszámlálás", ott is a B1 cellában.Sub MennyiAzAnnyi()
Sheets(2).Range("A:A") = ""
Sheets(1).Range("A:A").Copy Destination:=Sheets(2).Range("A1")
Sheets(2).Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="ter", RefersTo:="=Munka2!" & Selection.Address
Range("B1").FormulaArray = "=SUM(1/COUNTIF(ter,ter))"
End SubProgramozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
iwu
addikt
-
DopeBob
addikt
válasz DopeBob #8027 üzenetére
Ameddig nem lesz jobb, itt egy ilyen tákolós megoldás
Egy VB Script ami elindítja az excelt megnyitja a fájlt aztán bezárja:
Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBookSet xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Temp\Munkafüzet2.xlsm", 0, True)xlApp.Quit
Set xlBook = Nothing
Set xlApp = NothingEnd Sub
Meg egy makró ami szétbobja a munkafüzetet munkalapokra
'Creates an individual workbook for each worksheet in the active workbook.
Dim wbDest As Workbook
Dim wbSource As Workbook
Dim sht As Object 'Could be chart, worksheet, Excel 4.0 macro,etc.
Dim strSavePath As StringApplication.ScreenUpdating = False 'Don't show any screen movement
strSavePath = "C:\Temp\" 'Change this to suit your needs
Set wbSource = ActiveWorkbook
For Each sht In wbSource.Sheets
sht.Copy
Set wbDest = ActiveWorkbook
wbDest.SaveAs strSavePath & sht.Name
wbDest.Close 'Remove this if you don't want each book closed after saving.
NextApplication.ScreenUpdating = True
Ha a Workbook.Open-hez teszed, lefut minden indulások.
Elvileg a VBSriptbe is be lehetne írni, hogy futtasson makrót ( xlApp.Run "MyMacro" ) de nálam nem akar menni valamiért
Az e-mail küldés meg megy akkor.
MZ/X
-
DopeBob
addikt
válasz DopeBob #8987 üzenetére
Bocsánat tárgytalan, összegányoltam közben én is, csak előbb elnéztem valamit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
With Cell
If .Column = 2 Then
Cells(.Row, 1).Value = Date
End If
End With
Next Cell
End SubHátha valakinek segít Ha a 2. oszlopba érték kerul, akkor az A oszloba beírja mellé a mai dátumot.
Viszont valami nem megy, Függvényt hogy tudok beszűrni egy cellába?
[ Szerkesztve ]
MZ/X
-
félisten
-
félisten
válasz DopeBob #8995 üzenetére
Jaaa, az más...
Így függvényt szúrhatsz be egy cellába
Range("B1").Formula = "=SUM(A1:A10)"
Ez meg a konkrét kérdésedre
Macroban az angol függvénynevekre lehet hivatkozni, az, hogy egy magyar függvénynek mi is az angol "neve", ahhoz itt találsz segítséget: FUNCS.XLS a lényeg
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz DopeBob #8997 üzenetére
Igen, a visszaperjel biztosan gond, mert hálózaton megosztott/neten elérhető stb stb fájlnál a hagyományos perjelet kell használni pl
Helytelen
http:\\sajatoldalam.hu\excel\munkafuzet1.xlsHelyes
http://sajatoldalam.hu/excel/munkafuzet1.xlsMindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
bugizozi
őstag
válasz DopeBob #8995 üzenetére
Így kell beszúrni ahogy előttem Fire írja.
Még annyit tennék hozzá, hogy az ilyen problémában _nekem_ az segített sokat, amikor bekapcsoltam a makrórögzítőt, összekattingattam a függvényeket, és megnéztem hogy az excel milyen kódot dobott össze!VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
Delila_1
Topikgazda
válasz DopeBob #8997 üzenetére
Fire #8998-as válaszához még annyit, hogy a cells(.row,5).value nem jó.
Cells(row,5).formula kell, ahol a .formula el is hagyható, de semmiképp se legyen value (érték) .Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz DopeBob #8997 üzenetére
Mintának itt van egy olyan eseménykezelő makró.
A keresendő értéket a C oszlopban adod meg, ennek a sorában az A oszlopba beírja az fkeres függvényt, ami a D:E tartomány 2. oszlopában talált értéket adja vissza.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Application.DisplayAlerts = False
Cells(Target.Row, 1) = "=VLOOKUP(C" & Target.Row & ",D:E,2,0)"
Application.DisplayAlerts = True
End If
End SubA képletben a C helyére a hosszú útvonalat add meg, ahogy Fire írta.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
félisten
válasz DopeBob #9220 üzenetére
Nem biztos, hogy jól értem, de a pivot táblához is lehet jelentésszűrőt hozzáadni, ami kvázi úgy működik, mint a szűrő/autoszűrő egy sima táblázat esetén. Nem emlékszem, hogy 2003-ban van-e erre lehetőség, de 2007/2010-ben igen.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
Topikgazda
válasz DopeBob #9220 üzenetére
Akkor működik, ha eleve dátum formátumú cellákba töltötted fel a dátum értékeket. Ha utólag adtad meg ezt a formátumot, akkor nem tudod dátum szerint szűrni az adatokat.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
bugizozi
őstag
válasz DopeBob #9227 üzenetére
Szóval, az adatforrás egy ACCESS adatbázis, a lényeges részek most: dátum, név, ledolgozott óra.
Excellel szerettem volna egy egyszerű kis kimutatást, adott hónapban az emberkéknek hány ledolgozott órájuk van.Amikor az Excel külső adatot importál accessből, akkor az Adatimportálásnál van egy olyan gomb, hogy "Lekérdezés szerkesztése..." és ott te pl így szerkeszthetnéd a lekérdezést és megkapdnád az adott hónapra vonatkozó adatokat (office 2002 de biztos van ilyen lehetőség az újban is)
Esetleg ha nagyon perverz vagy akkor ezt csinálhatnád makróban, és akkor megadsz 2 cellában 2 dátumot és egy gomb lenyomásával megkapdnád az adott időszakra vonatkozóan ki mennyit dolgozott ha érdekel segíthetek bennek, mert jelenleg ilyeneket csinálok a munkámban
[ Szerkesztve ]
VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
félisten
válasz DopeBob #9229 üzenetére
Azért nem értem/tudom, hogy Nálad mi lehet a gond, mert Nálam(Office 2010 x64-et használok), ha beimportálom az adatokat egy megadott táblából, akkor az excel automatikusan ellátja szűrővel, mindenféle beavatkozás nélkül.
Itt a gyári NorthWind adatbázis egyik tábláját importáltam be: [link]Na most ha ebből csinálok egy kimutatást, akkor megint teljesen automatikusan ott a szűrő: [link]
Az adatok külön beimportálását természetesen ki lehet hagyni, és közvetlenül kimutatást készíteni az adott adatbázis, adott táblája alapján, csak ez esetben nem szabad megfeledkezni, hogy a Jelentésszűrő csoportba be kell "húzni"/másolni azt a mezőt, ami alapján szűrni szeretnél [Bekeretezett részek]
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
bugizozi
őstag
válasz DopeBob #9229 üzenetére
Én ilyet csináltam meloban...a tiéd szvsz annyiban különbözne hogy konkrét nevet kellene megadni meg pár dolgot kivenni és akkor láható hogy pl adott hónapban mennyit dolgozott az illető...(az orak oszlopban a végén automatice összeadja mindig az órákat)
Amúgy lehet hogy ezt a dátumos problémádat is meg lehetne valahogy oldani és az egyszerűbb lenne, de arra sajna nem tudok megoldástVCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
félisten
-
bugizozi
őstag
válasz DopeBob #9231 üzenetére
hja mostmár értem hogy mi a problémád
sajnis eddig én nem használtam ilyet, ehhez nem értek bár lényegesen egyszerűb lenne kiköszöbölni vhogy ezt a hibát, mint amit én ajálottam makrós dolgot
esetleg próbáltad azt amit Delila_1 írt? sry lehet hogy próbáltad, csak azért kérdezem, mert nem írtad ide a fórumba[ Szerkesztve ]
VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
félisten
válasz DopeBob #9236 üzenetére
"Szűz Mária idesanyám, aki e mennyekben lakozol, titokban" (Hofi Géza)
Végre nekem is leesett mi a problémád...Akkor, ahogy a képen ott a megfelelő dátum típusú mezőre és a megjelenő bekeretezett nyilacskára, és lőn bódottág... [link]
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz DopeBob #9249 üzenetére
Osztom perfag válaszát, azzal kiegészítve, ha már makróban kezeled a cellák zárolását(és a lapvédelemhez mondjuk jelszó is van beállítva), akkor arrról nem szabad megfeledkezni, hogy magát a makrót is levédd jelszóval, hisz ha valaki belenézhet, akkor onnan kiszedheti a jelszót és ez esetben adtunk a guanónak egy nagy pofont...
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz DopeBob #9252 üzenetére
Ha nem magadnak készíted a munkafüzetet, akkor ugyanazon "szabályok" érvényesek a userekre, mint bármilyen más területen, azaz: Minden tiltott, kivétel, ami tényleg kell.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
Topikgazda
válasz DopeBob #9252 üzenetére
Nincs szükség a folytonos zárolásra, felszabadításra, ha a lap védelmének beállításakor nem engeded meg a zárolt cellák kijelölését, ami alapérték szerint engedélyezve van.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz DopeBob #9255 üzenetére
A makró elejére beírt
ActiveSheet.Protect UserInterfaceOnly:=True
sor csak a makróból engedélyezi a zárolt cellák módosítását.
Amúgy nincs baj a csiki-csukival sem.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
-
perfag
aktív tag
válasz DopeBob #9263 üzenetére
Nézd meg Chip Pearson-nál és John Walkenbach-nál. Esetleg az ozgrid-on.
-
félisten
válasz DopeBob #10121 üzenetére
Igen, megoldható, a szabályban az ÉRVÉNYESSÉG-ben megadod a színezendő tartományt
(Itt a B oszlopban 5-nél nagyobb számok esetén színezi, az A oszlop megfelelő celláit)Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
válasz DopeBob #10123 üzenetére
A példában nem foglalkoztam nagyon (konkrétan semennyire) a $ jellel, mivel csak egy példa. Az =$B1>5 képlet igazából a megfelelő a példában, ha nagyon precíz lettem volna, de itt nem volt tétje a dolognak...
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
Delila_1
Topikgazda
válasz DopeBob #10146 üzenetére
Szerintem egyszerűbb egy darabteli függvénnyel megszámoltatni a 2. lapon, hogy az első lapon az egyes tételek hányszor fordulnak elő.
Munka2-n =DARABTELI(Munka1!A:A;A1)
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz DopeBob #10150 üzenetére
A makrót a ThisWorkbook-hoz, a Workbook_BeforeClose eseményhez rendeld.
Egy For - Next, vagy For Each - Next ciklussal kiválasztod, kiíratod a 0 értékűeket egy lapra.Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
m.zmrzlina
senior tag
válasz DopeBob #10197 üzenetére
Nyilván te is észrevetted, hogy a #10200-ban lévő képlet elég könnyen hibázik.Pl ha a megnevezés két szóból áll és szóköz van közte, vagy ha előfordul benne a "db"karaktersorozat.
Ennek kiküszöbölésére nyiss a VB szerkesztőben egy új modult és másold bele ezt:
Function CSAKSZAM(szoveg As String)
Dim szam As String, i As Integer
szam = ""
For i = 1 To Len(szoveg)
If Asc(Mid(szoveg, i, 1)) <= 58 And Asc(Mid(szoveg, i, 1)) >= 47 Then
szam = szam & Mid(szoveg, i, 1)
End If
Next i
CSAKSZAM = szam
End FunctionEttől lesz egy CSAKSZAM() nevű új függvényed amit nagyon könnyen tudsz használni a következőképpen:
Ha az ÉRTÉK() fv-be beágyazod ahogyan a képen van akkor számolni is tudsz a darabszámokkal.
-
bugizozi
őstag
válasz DopeBob #10278 üzenetére
Szia,
ez a probléma engem is foglalkoztat
hasonló a szitu: Excelbe szedek át adatot gombnyomásra makróval Accessből, és amikor egyszer lefutott a kód és az Excel nyitva marad, akkor az Access-t - ahogy írtad - csak írásvédettként lehet megnyitni
vannak a kódomban olyan részek, hogyMode=Share Deny Write;
....
Jet OLEDB:Database Locking Mode=0;ezeket próbáltam variálni kevés sikerrel Valakinek valami ötlet? Ha szükséges bemásolhatom azt a részt a programból ami az Access-re vonatkozik...
Előre is köszönöm a segítő hsz-okat!
VCP7-DCV, CCNA ||| Ami működik, ahhoz nem szabad hozzányúlni!
-
-
ArchElf
addikt
válasz DopeBob #10531 üzenetére
Alapból nem eszi meg, mert a vesszó az tizedesjegy (tehát a bevitelt számként értelmezi - a dátumot pedig az excel úgy tárolja (egyész szám - dátum; törtszám - óra-perc-másodperc-töredék). Pl ha 12,30-at írsz be, aakorazt automatikusan 1900.01.12 07:12-re konvertálja - de ahogy előttem leírták, két oszloppal már megoldható (vagy esetleg makróval, ami az összes bevitel után lefut az oszlopra).
Esetleg makróból:
Private Sub Worksheet_Change(ByVal Target As Range)
'+ jelre átalakít dátummá
'a 3. oszlopban
Dim OSZLOPSZÁM As Integer
OSZLOPSZÁM = 3
Dim c As Range
Dim dt As Date
If (Target.Columns.Count = 1 And Target.Column = OSZLOPSZÁM) Then
For Each c In Target.Cells
If InStr(c.Value, "+") > 0 Then
dt = CDate(Replace(c.Value, "+", ":", 1, 2))
c.Value = dt
End If
Next
End If
End SubAE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Delila_1
Topikgazda
válasz DopeBob #11490 üzenetére
Próbáld meg ezzel:
Sub MelyikHiányzik()
Dim sz%, sor As Long
For sz% = 1 To Cells(Rows.Count, "A").End(xlUp).Row
On Error GoTo Hiba
sor = Application.Match(sz%, Range("A:A"), 0)
Next
Hiba:
MsgBox sz%
End SubAz Msgbox helyett beírathatod egy cellába.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
m.zmrzlina
senior tag
válasz DopeBob #12900 üzenetére
Nem tudom milyen Excel verziót használsz de a 2007 előttieknél ez a módszer működik. Valójában arról szól, hogy beállítod a kérdéses lap visible tulajdonságát xlSheetVeryHidden-re majd egy jelszóval levéded a projektet. Excel97-tel kipróbáltam, működik.
2007-nél kicsit más a helyzet ott ez az út makrómentes (*.xlsx) fájllal nem járható. Vagy csak én csinálok valamit rosszul.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- PC JÁTÉKOK (OLCSÓ STEAM, EA , UPLAY KULCSOK ÉS SOKMINDEN MÁS IS 100% GARANCIA )
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Microsoft licencek a KIVÉTELES ÁRAK - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eladó Steam kulcsok kedvező áron!