- Argos: Szeretem az ecetfát
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Gurulunk, WAZE?!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- vrob: Az IBM PC és a játékok a 80-as években
-
LOGOUT
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
-
hallgat
csendes tag
Szia!
Ha 2010 Excelt használsz, a következő módon meg tudod oldani:
1., A cellának alap esetben zároltnak kell lennie a cellaformázás -> védelem fülön.2., Ne legyen bekapcsolva a lapvédelem.
3., Menj a Korrektúra eszköztárra, azon belül a változások blokkhoz és válaszd a Tartományok szerkesztésének engedélyezése gombot.
4., Itt megadhatod, hogy ha védett lesz a lap, akkor mely cellák szerkeszthetők mégis, ha tudja a felhasználó a jelszót.
5., Kapcsold be a lapvédelmet
-
Mutt
senior tag
Hello,
...miért áll meg a debug a Range("B21:B" & usor). Select sornál....
Az egyik probléma, hogy az usor-t rosszul határozod meg.
A .Range("B21:B" & Rows.Count).End(xlDown).Row + 1 azt mondja, hogy menjen el az utolsó sorba és használja a következőt, az utolsó után már nincs sor.Ha a B21 után használt utolsó cella sora kell, akkor xlDown helyett xlUp-ot használj.
A másik probléma itt, hogy a .Range("B21:B" & Rows.Count).End nem jó, mivel azt csinálod hogy B21:B1048576-os tartományt kijelölöd, a kurzor továbbra is B21-ben van, de nyomsz egy END-et vagyis elugorsz végre B1048576-re. Ez így felesleges, egy lépésben csináld: Range("B" & Rows.Count).End
A kódban a Selectek miatt nem lehet követni, hogy éppen hova akarsz dolgozni. Valójában az aktív lapod nem változik, maradsz a beolvas-on, ezért javaslom, hogy rendesen írd ki, hogy éppen hol akarsz módosítani.
pl. Range("B21:B" & usor).Select helyett
ThisWorkbook.Sheets(lapnev).Range("B21:B" & usor).SelectVégül pedig lehet pár dolgot egylépésben is csinálni.
Range("D2").Select
Selection.Copyhelyette:
Range("D2").CopyVagy a végén:
Sheets("beolvas").Select
Range("A2").Select
Selection.Clearhelyette:
Sheets("beolvas").Range("A2").ClearItt van a javított változat:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim usor As Long
Dim lapnev As String
If Range("A2") <> Empty And Range("A4") = "OK" Then
Range("D2").Copy
lapnev = Range("F2")
Sheets(lapnev).Select
usor = ThisWorkbook.Sheets(lapnev).Range("B" & Rows.Count).End(xlUp).Row + 1
ThisWorkbook.Sheets(lapnev).Range("B21:B" & usor).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("beolvas").Range("A2").Clear
End If
End Subüdv
-
Mutt
senior tag
Hello,
Itt az én változatom (E2-be):
1. Ha az ID minden esetben szám és a BOM-ok között nincs ismétlődés:
=SZORZATÖSSZEG(--(BOM!A:A=A2);--(BOM!B:B=B2);--(BOM!C:C=C2);--(BOM!D:D=D2);BOM!E:E)2. Ha az ID alfanumerikus és a BOM-ok között nincs ismétlődés:
=INDEX(BOM!E:E;SZORZATÖSSZEG(--(BOM!A:A=A2);--(BOM!B:B=B2);--(BOM!C:C=C2);--(BOM!D:D=D2);SOR(E:E)))üdv.
-
alfa20
senior tag
lehet van egyszerűbb megoldás is, de szerintem ha a "BOM" fülön beszúrsz egy oszlopot az "A" vagy "E" oszlop elé és készítesz egy egyedi azonosítót akkor egy sima FKERES függvénnyel megoldható.
pl:
1.) egyedi azonosító az "A" oszlopban:
"BOM" fülön A2 cella "=B2&C2&D2&E2"
"INPUT" fül E2 cella: "=FKERES(A2&B2&C2&D2;BOM!A:F;6;0)"2.) egyedi azonosító az "E" oszlopban:
"BOM" fülön E2 cella "=A2&B2&C2&D2"
"INPUT" fül E2 cella: "=FKERES(A2&B2&C2&D2;BOM!E:F;2;0)"Az egyedi azonosító oszlopot el is rejtheted ha zavar.
szert:
smile került a képlet be -
Excelbarat
tag
Ha esetleg 2010-es excelt használsz akkor nagyon könnyen
Beszúrsz az egyikhez egy szeletelőt majd utána beállítod a kapcsolatot a kettő között.
Így tudod megtenni ezeket:
A kimutatás beállítás fülén szerepel a Szeletelő beszúrása ott bepipálod hogy melyik(ek) legyenek. (akár az összeset) Szépen elrendez.
Utána amelyiket akarod hogy a többihez is tartozzon jobb gomb rá - Kimutatáskapcsolatok és kiválaszt melyik.
ebben a hozzászólásban egy videó is van linkelve.
Esetlegesen problémát okozhat (nem kis fejtörés után jöttem rá) hogy ha régebbi fájlt (ergo nem 2010-es és az ablakban az szerepel, hogy kompatibilis üzemmód) akkor először el kell mentened 2010es fájltípusban CSAK ekkor lesz aktív a szeletelő beszúrása. (mivel ez csak 2010es verziótól érhető el)Delila_1 köszönöm a válaszod a diagrammos megoldásra. Még ez is jobb minthogy az összes érték egymásba lógjon
-
Mutt
senior tag
Hello,
...külső excel táblából fkeres-sel összeszedett adat megjelenik, míg ugyanezen adatból a szumha hibát ad...
SZUMHA mellett még ugyanígy érintettek a SZUMHATÖBB (SUMIFS), DARABTELI (COUNTIF), DARABHATÖBB (COUNTIFS), DARABÜRES (COUNTBLANK) és INDIREKT függvények is, vagyis bezárt fájlokon nem működnek. A Microsoft úgy gondolja, hogy ennek így kell lennie http://support.microsoft.com/kb/260415
Alternatív megoldások a lenti képlet helyett:
=SZUMHA([A.xlsx]Munka1!$A:$A;A2;[A.xlsx]Munka1!$B:$B)- szorzatösszeg használata
=SZORZATÖSSZEG(([A.xlsx]Munka1!$A:$A=A2)*1;[A.xlsx]Munka1!$B:$B)- CSE képletben a SZUM és HA használata
{=SZUM(HA([A.xlsx]Munka1!$A:$A=A2;[A.xlsx]Munka1!$B:$B))}üdv.
-
rtom
senior tag
Újabb észrevételem, aminek nem tudom okát: külső excel táblából fkeres-sel összeszedett adat megjelenik, míg ugyanezen adatból a szumha hibát ad ...
Próbáltam úgy kikerülni a problémát, hogy makróból megnyitom és akkor updatelem a linket, de így sem megy
A kódom:
Open "DataFile_elérési_útvonala_és_neve" For Random Access Read As #1
Windows("Kimutatásfile.xls").Activate
ActiveWorkbook.UpdateLink Name:="\DataFile_elérési_útvonala_és_neve", _
Type:=xlExcelLinks
Sheets("Munka1").Select
Range("T69:X72").Select
Selection.Copy
Range("B69").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Close #1 -
Mutt
senior tag
Hello,
Amit érdemes lenne még módosítanod az, hogy ne a SelectionChange eseménykor fusson a makró, hanem az Change eseménykor.
A mostani megoldás akkor is lefut, ha a lapon nncs változás csak egyik cellából egy másikba mész.
A SelectionChange pl. akkor lehet hasznos, ha a cella módosítás előtti értékére van szükséged.Ha a másolandó tartományban nincs képlet, akkor a Cut metódus 1 lépésben megcsinálja neked ami kell.
pl. Range("L2:M2").Cut Destination:=Sheets("cel").Range("B2")
üdv.
-
poffsoft
veterán
mert a select és a pastespecial parancsok újra meghívják a makrót (miközben már fut), mindig egy újabb ciklust indítva....
Esetleg egy flaggal jelezhetnéd neki, hogy "mostnemkell":
(Ez az én favágó megoldásom):Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1") = "s" Then Exit Sub
If Range("L2") = "valami" Then
Range("A1") = "s"
Range("L2:M2").Select
Selection.Copy
Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L2:M2").Select
Application.CutCopyMode = False
Selection.ClearContents
End If
Range("A1") = ""
End SubEz meg a korrekt megoldás:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Range("L2") = "valami" Then
Range("L2:M2").Select
Selection.Copy
Range("B2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L2:M2").Select
Application.CutCopyMode = False
Selection.ClearContents
End If
Application.EnableEvents = True
End Sub -
rtom
senior tag
-
Excelbarat
tag
Hi
A Ha függvényedben eredményül ne "" ezt használd hanem olyankor a HIÁNYZIK() fv-t! és valószínű megoldódik a problémád! -bár a diagrammot ebben az esetben is kitolja 500-ig de legalább nem 0-a értékkeligaz így a táblázatod kicsit "elrodnul" de esetleg olyat is formázhatsz rá hogy ne látszódjon, hogy feltételes formázásnál megadod hogyha ez az érték van akkor pl legyen a betűszín fehér és máris nem látszik
-
Hali!
1. Ha magyar nyelvű excelben, angol megnevezésű függvényekkel szeretnél dolgozni, akkor szúrj be egy új munkalapot(munkalapon jobb egér/beszúrás...), majd a megjelenő ablakban válaszd a Nemzetközi makrólap lehetőséget. Innentől csak az angol megnevezések jelennek meg egy függvény beszúrásakor, pl a CountIf a darabteli helyett.
2. Az excel maga is feltelepíti azt a fájlt, amiben angolul és magyarul is megvannak szépen felsorolva a függvények, azaz pl a DARABTELI függvénynek megtalálod az angol megfelelőjét. Ez a fájl FUNCS.XLS névre hallgat és ebben a könyvtárban található:
Office 2007 esetén
c:\Program Files (x86)\Microsoft Office\Office12\1038Office 2003 esetén
c:\Program Files (x86)\Microsoft Office\Office11\1038Egyszerűen csak töltsd be/nyisd meg és lőn világosság...
Máris nem lesz probléma, hogy angol megnevezésű függvénynek mi a magyar megfelelője avagy fordítva...Fire.
-
Cuci3
tag
Alapvetően két dologra tudok gondolni:
1. Vagy tényleg nincs ott a keresett fájl, vagy át lett nevezve.
2. Esetleg nincs jogosultságod a szerverre.Én pl egy új munkafüzetben újra megcsinánék egy ilyen hiperhivatkozást, és kipróbálnám, hogy működik-e. Aztán lehet tovább gondolkodni, ha mégis minden okés.
-
gsc73
aktív tag
Hali!
Először is köszönöm, hogy foglalkoztál a kérdéssel! Az az helyzet, hogy a súgó olvasgatása közben éreztem, hogy valami "munkás" módszerrel meg lehet oldani, de egyrészt lusta voltam vigigcsinálni, másrészt nem akarom elhinni, hogy ha van egy ilyen "MAX" függvény, akkor nem lehetne egyszerűbben megoldani. Ha más nem lesz, akkor megcsinálom a Te módszereddel, fehér "munkaszámokkal", pár sorral leljebb...
Köszi:
g.
-
rtom
senior tag
Bocsi, lefagyott a böngészőm, vagy a szerver is szórakozhatott mert 2 percig nem tudtam elérni a PH!-t, véletlenül 2x nyomtam az OK-ra. Szóval a feltételes formázást bekorlátozva egy olyan számra, ami már biztosan nem fordulhat elő (azaz két érték közöttieket színezve) már működik a dolog.
-
Hali!
Igazából a 4. paraméter Excel2003 ill. 2007 alatt "felesleges", mert az alapbeállítás(default), az TRUE. Ezt csak azért írtam oda, ha esetleg 2000 vagy 2002 officet használ valaki. A szerepe annyi, hogy ezzel a paraméterrel lehet engedélyezni ill letiltani az OnTime metódust.
Be lehet úgy is állítani, hogy egy megadott időpontba mentsen.
Application.OnTime TimeValue("13:00:00"), "SaveThisWorkBook",,TRUE
(Ebben az esetben ha a gép megállás nélkül menne egy hétig, akkor minden nap 13 órakor elmentené a excel táblát(persze ha újra értéket adsz neki))Fire.
-
Hali!
Remek kérdést tettél fel, csak attól félek, hogy a válaszommal lehet hogy nagyon összezavarlak, és még több kérdés merül fel benned....
Az OnTime az egy viszonylag egyszerű TASK, vagy "egyszerűbben" egy megszakítás(interrupt). Ez mindig fut("mindig működik"), csak a felhasználó ebből mit sem lát. Addig a pillanatig "láthatattlan", amíg valaki "fel nem programozza", azaz be nem állít a neki megfelelő paramétereket. 4 paramétere van, az első kettő ami esetünkben a lényeg(a többit most nem részletezem)
1. paraméter: MIKOR kell meghívni
2. paraméter MIT kell meghívni(subroutine SUB)Tehát a válasz a kérdésedre az, hogy valóban meghívódik újra és újra a SAVETHISWORKBOOK subroutine, de NEM ÖNREKURZIÓ által(azaz nem a függvény hívja meg saját magát), hanem egy tőle független TASK(Application.OnTime)
Hát remélem, nem zavartalak nagyon össze...
Fire.
-
-
Fehér Mancs
tag
Ha valami ciklust használsz, akkor bizonyos ciklusnál (minden 1000-dik esetben) be lehet iktatni a ActiveWorkbook.Save -et.
Másik lehetőség, ha bizonyos időközönként akasz menteni, a Timer használata (bár ehhez is folyton vissza kell térni -> cilus kell hozzá):
Start = Timer
SaveSecond= 60*60 ' óránkénti mentés
cilus kezdete
if Start > Timer+SaveSecond then
ActiveWorkbook.Save
Start = Timer
endif
cilus vége -
Delila_1
veterán
Nem kell külön makró. Az Eszközök/Bővítménykezelőben jelöld be az Automatikus mentést, mire az az Eszközök menüben megjelenik. Ott beállíthatod a gyakoriságát, továbbá, hogy csak az aktív-, vagy minden nyitott füzetet mentsen-e, és hogy mentés előtt rákérdezzen-e a mentésre.
Új hozzászólás Aktív témák
Hirdetés
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Gyermek PC játékok
- Assassin's Creed Shadows Collector's Edition PC
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- Samsung Galaxy A15, 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- Amazon Kindle 10th Generation ébresztős tok
- Csere-Beszámítás! Asus Tuf Gamer laptop! R7 3750H / GTX 1650 / 16GB DDR4 / 500GB SSD
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest