- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- hcl: Kelj fel komám, ne aludjál
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- 04ahgy: A múlt, a jelen, a jövő.
- A lány, aki átformálta az életem 2
- GoodSpeed: AOMEI Backupper Professional Edition: Lifetime Subscription
- kreténtehén: Gazdit keresünk
- Luck Dragon: Asszociációs játék. :)
-
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
-
kisg
tag
Sziasztok,
Ezt a feladatot kellene megoldanom Excell-ben:
Termék árlistában szereplő árak kerekítése xxx.900Ft-ra. Van egy határszám: 400Ft
A szabály az hogy ha a termék ára pl 10.326Ft akkor ez 9.900Ft legyen a kerekítés után. Ha viszont 10.426Ft akkor a kerekített ár 10.900Ft legyen.
Másik megfogalmazásban, hogy ha a termék árában a százas helyiértéken 000-400Ft szerepel akkor az ezres helyiérték-1 és a százas helyiérték pedig fixen 900.
Ha viszont a százas helyiértéken 401-999Ft szerepel akkor az ezres marad, a százas helyiérték pedig fixen 900.Gondolom megcsinálni egyszerűbb mint megfogalmazni :-)
-
Thrawnad
senior tag
Hali!
Az alábbit akarom megcsinálni. Persze a sor az nem 333 mert az máshonnan kalkulálódik.
Lényegében az utolsó sorba akarok szum sort írni. De nem jó hogy makróban összesítek mert kézzel még a beltartalom változhat.Sor = 333
Hely = 3
While Hely < 26
Cells(Sor, Hely).Select
ActiveCell.FormulaR1C1 = "=SUM(R[((sor-4)*-1)]C:R[-1]C)"
Hely = Hely + 1
WendTud valaki segíteni?
Thrawnad
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24490 üzenetére
Szia!
Akkor már miért nem így:
Range("A1:G1").Copy destination:=Worksheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1)
Nem kell hozzá utána semmi.
Üdv
-
slashing
senior tag
Application.CutCopyMode = False
erre lehet szükség lesz az ActiveWindow.Close False után érdemes beszúrni illetve lehet még ez is hasznos
Application.DisplayAlerts = False
szintén ugyan oda csak a close elé, legalábbis mikor én utoljára ilyet csináltam az első az mindenképpen kellett a nagy adatmennyiség miatt ami a vágólapra került, az utóbbi meg ha esetleg valami hibaüzi felbukkanna a bezáráskor. -
Delila_1
veterán
válasz
anonymus89 #24489 üzenetére
A makró a könyvtárból egyenként behívja a másolandó fájlokat, másol a makrót tartalmazó füzetbe, majd bezárja a másoltat mentés nélkül.
A másolás műveletét az előző hozzászólásban m.zmrzlina bemutatta.Sub osszefuzes()
Const utvonal = "C:\Mappa\Almappa\"
ChDir utvonal 'Direktor váltás
FN = Dir(utvonal & "*.xlsx", vbNormal)
Do
If FN <> "." And FN <> ".." Then
'Fájlok megnyitása
Workbooks.Open Filename:=utvonal & FN
'ide jön a másolás
ActiveWindow.Close False 'megnyitott fájl bezárása módosítás nélkül
End If
FN = Dir()
Loop Until FN = ""
End Sub -
m.zmrzlina
senior tag
válasz
tombar #24488 üzenetére
Sub masol()
Range("A1:G1").Copy
elsoures = Worksheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1
Worksheets("Munka2").Range("A" & elsoures).PasteSpecial Paste:=xlPasteAll
End SubAz első sor kijelöli a másolni kívánt tartományt (ez nyilván nálad teljesen más)
A második megadja, hogy a Munka2 munkalap A oszlopának melyik az első üres cellája
A harmadik odamásolja a kijelölt tartományt.Meg lehet csinálni egy utasításban is:
Worksheets("Munka2").Range("A" & Worksheets("Munka2").Range("A" & Rows.Count).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteAll
Ugyanaz az eredmény csak az első valamennyivel átláthatóbb.
-
anonymus89
addikt
Üdv!
Az volna a kérdésem, hogy lehetne összefűzni kb. 500 db excel fájlt egy fájlba mindösszesen?
Akár Access-be? -
tombar
senior tag
Sziasztok!
új vagyok makrózásban, szóval a tudásom a makrók rögzítéséig terjed el. egy olyan jellegű gondom, hogy pdfből bemásolom az egész tartalmat, makróval megadom h mit kellene kitörölni és megadom neki, hogy a következő lapra dobja át a szükséges adatokat. na most ezt idáig úgy csináltam, hogy az első oldalon a formázást lemakróztam és a második oldalra az átrakást kézzel csináltam. a kérdésem az lenne, hogy miként tudom megadni, h pl.: az A oszlop legelső üres cellájába dobja a következő adathalmazt?
előre is köszi srácok! -
Fferi50
Topikgazda
válasz
m.zmrzlina #24485 üzenetére
Bocs, közben megláttam a privát üzit.
-
m.zmrzlina
senior tag
válasz
Fferi50 #24484 üzenetére
Este lesz rá egy kicsit több időm akkor majd végzek pár mérést különböző peremfeltételek mellett és tudatom az eredményét.
Maga a munkafüzet csak számok és dátumok szóval akár egy az egyben kitehető. Bár jelzem működik és tudom használni (főleg a mostani változtatás után) tehát csak akkor feccölj bele időt ha maga a probléma érdekes számodra.
Eseménykezelés nincs tiltva de a képernyőfrissítés elhanyagolható javulást hozott (ezt tegnap kipróbáltam).
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24482 üzenetére
Szia!
Csak még egy kérdés: Akkor is belassul, ha a másik munkafüzet üres, vagy csak akkor, ha adatok vannak abban is?
Esetleg egy "közzétehető" mintát meg lehetne nézni (nyilván az érzékeny adatok nélkül)? Mert akkor talán tudunk válaszolni.
Meg lehet még próbálkozni az eseménykezelés letiltásával - az is tud problémát okozni, ha minden egyes cella változásánál "elszalad" az eseménykezelésbe, még akkor is, ha egyébként ott nem kell neki semmit csinálni.
Elébe egy Application.Enableevents=false, utána egy Application.Enableevents=true.
Nem tudom, a képernyőfrissítést ki szoktad-e kapcsolni. (Application.ScreenUpdating)Üdv.
-
m.zmrzlina
senior tag
válasz
Fferi50 #24481 üzenetére
selection.replace what:="#",replacement:=""
Ez lett a megoldás, legalább két nagyságrenddel rövidebb idő alatt fut le még akkor is ha meg van egy másik munkafüzet nyitva.
Azzal együtt továbbra sem értem, hogy miért viselkedik másképp ugyanaz a makró, ha meg van nyitva egy másik munkafüzet is.
Köszi a segítséget
-
Fferi50
Topikgazda
válasz
m.zmrzlina #24477 üzenetére
Szia!
Az előző hozzászólásomban (24479) írtam: " Ebben az esetben bontsd részekre a műveletet", természetesen nem a műveletet kell részekre bontani, hanem a tartományt kell kisebb "adagokban" számítani.
Másrészt, ha csak a végén van # jel, akkor a
selection.replace what:="#",replacement:=""
parancs megoldja az eltüntetését.Üdv.
-
thee
csendes tag
Nnno, a meglévő megoldást sikerült finomítani.
Nem a koordinátákat értékeit arányosítja, hanem a koordináták logaritmusát veszi alapul az arányosításhoz, így már a logaritmikus tengelyeken ábrázolt görbét sikerült viszonylag jól megközelíteni egy koordináták közötti egyenessel.Ez már épp elfogadható megoldást ad, de a jó lenne csinálni vagy szerezni vmi free curve fit tool-t az Excelhez.
Szóval tippek, tapasztalatok továbbra is sokat segítenének. -
Fferi50
Topikgazda
válasz
m.zmrzlina #24477 üzenetére
Szia!
Esetleg próbáld ki a következőt:
a=selection.value
for xx=1 to ubound(a,1)
for yy=1 to ubound(a,2)
if a(xx,yy)<>"" then a(xx,yy)=left(a(xx,yy),len(a(xx,yy))-1)
next
next
selection.value=a1.Ha biztosan nincs üres cella, akkor az if feltételt kihagyhatod.
2.A selection helyett inkább használj konkrét tartomány címet - ez működik akkor is, ha az adott munkalap nem aktív.
Sheets("Munka1").range("A1:B20").value
3.Ez csak akkor működik, ha a tartományod összefüggő.Azért lehet gyorsabb, mert itt a memóriában vannak az adatok, az "a" tömbben.
Elképzelhető, hogy out of memory hibát kapsz, de talán 35000 sornál még nem (persze attól is függ, hány oszlopod van). Ebben az esetben bontsd részekre a műveletet, még úgy is gyorsabbnak kell lennie.Üdv.
-
excelfan
újonc
válasz
m.zmrzlina #24453 üzenetére
Nem pont fkeresel megírva, de a lényeget azt hiszem ki tudod venni, tégy vele egy próbát:
=SZUM('D:\2-es.xlsx'!szamok)
Persze az elérési útvonalat, hivatkozást jobb ha nem kézzel gépeled, hanem Wyll által írt módon a hivatkozott munkalap is meg van nyitva képlet szerkesztéskor, és ott jelölöd ki a hivatkozott részeket.... -
m.zmrzlina
senior tag
válasz
Fferi50 #24474 üzenetére
Az én esetemben valóban vannak munkalapfüggvények a makróban de nem azoknál lassul a futás, hanem egy ilyen kódrészletnél:
For Each rngCella In Selection.Cells
rngCella.Value = Left(rngCella.Value, Len(rngCella.Value) - 1)
NextEz egy "%" karaktert vág le kb 35000 cella értékének a végéről.
-
slashing
senior tag
válasz
Fferi50 #24474 üzenetére
Így már érthető...
Amúgy pont ezért nem is szertem az indirekt függvényt, amúgy is könnyen belekavarodok az alkalmazásába.... de ahol eddig tudtam ott pl. helyettesítettem az eltolás függvénnyel, persze nem mindenhol alternatíva az eltolás. Volt egy fájlom ami tele volt indirekttel és ahogy írtam bele egyesével az adatokat állandóan villigott minden számított mező rémes volt használni...
-
Fferi50
Topikgazda
válasz
slashing #24471 üzenetére
Szia!
Az egészen biztos, hogy az automatikus kalkuláció tud problémákat okozni, főleg a következő esetekben:
Amikor olyan munkalap függvények vannak "tömegesen", amelyeknek az értéke frissítés (pl. ilyen az indirekt függvény is), vagy olyan saját függvényt használunk, amelyben benne van az Application.Volatile sor.
Ezek miatt ugyanis minden, de minden egyes cellaváltozáskor újraszámolódik az összes képlet értéke, akkor is, ha nem az azokban érintett cellák változtak.Nagyon sok adatunk van - sok munkalapon, esetleg még külső hivatkozásokkal (lekérdezésekkel) megspékelve és a külső adatok frissítése automatikusra van állítva.
Ilyen esetekben segít, ha a megnyitás előtt a számolást kézire állítjuk át (Application.Calculation=xlCalculationManual), és csak akkor hívjuk meg a számolás, ha ténylegesen változtattunk valamit.
Az újabb excel változatokban makróból már lehet hívni a számolást úgy is, hogy csak az adott munkalapot, vagy az adott cellatartományt számolja újra (de úgy emlékszem, ez az opció csak makróból megy).Segít még az is, ha a külső adatok automatikus frissítését letiltjuk és makróból vagy kézzel frissítünk.
Ha nagyon lassan jön be egy munkafüzet, ilyenekre lehet gondolni.
Üdv.
-
slashing
senior tag
válasz
m.zmrzlina #24472 üzenetére
Nálam ez most megoldotta szerencsére, az elején kikapcsolom az adatok újrakalkulálását majd a végén vissza.
Az a makró ami 0,8 másodperc alatt futott le alapállapotban az a másik fájl megnyitása után 32 másodpercig futott
miután beraktam a kalkuláció kikapcsolást kicsit lassult csak 0,97-1 másodpercre. Tekintve azt hogy annak a fájlnak muszáj nyitva lennie így most roppant boldog vagyok mert 10-esével(10 külön fájl) kell beimportálni az adatokat ami azt eredményezte volna hogy a 10 másodperc helyett több mint 5 percig dolgozott volna
továbbá a mai példából kiindulva ezt meg kellett csinálnom ma vagy 15ször így lett volna vagy másfél óra malmozás
amúgy én is tuti valamit elcsesztem itt már.... ez kvázi az első makrós projectem amihez lassan nekem is folyamatábra kell hogy átlássam
-
m.zmrzlina
senior tag
válasz
slashing #24469 üzenetére
Nekem van ilyen makróm. Ha csak az a munkafüzet van megnyitva amiben a makró van akkor 1-2 mp egyébként halál hosszú (végig sem szoktam várni)
Biztos vagyok benne, hogy elcsesztem valamit a makróban de még kérdezni sem tudok vele kapcsolatban semmi konkrétat úgyhogy nem is túráztattam vele senkit sem itt a fórumon sem máshol.
Szerencsére csak én használom ezért tudom hogy mielőtt azt indítom bezárok minden mást és így simán lefut.
-
slashing
senior tag
válasz
slashing #24469 üzenetére
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationAutomaticazthiszem az lehetett a gond hogy a menyitott fájlban van egy tömbfüggvény amit lehet minden egyes cellaváltásnál újraszámolt(talán) és mivel van vagy 30 munkalap benne így ezeket szerintem mindig újraszámolta(talán)...
-
thee
csendes tag
Sziasztok!
Adott egy "pont x y" grafikon (Excel 2010), logaritmikus az x és az y tengely, kb 20 adatpárból van kirajzolva a görbe, adatok elég nagy tartományban mozognak (1,E+01 - 1,E+10).A feladat az lenne, hogy egy "y" érték alapján meg kellene adni a görbe szerinti "x" értéket.
Erre van valami beépített lehetőség?Használható trendvonalat nem tudtam a görbére ráilleszteni.
Van már egy megoldás:
Függvényekkel az adatokból keresse meg azt, hogy az adott "y" érték melyik két koordináta között helyezkedik el, és egy egyszerű arányosítással adjon meg egy "x" értéket.
Gond az, hogy egy logaritmikus tengelyen ábrázolt görbét ez elég durván közelít meg (pláne ilyen kevés koordináta esetén), ennél pontosabb adatokra lenne szükségünk.A grafikonon gyönyörűen kirajzolja a görbe minden egyes pontját, ez alapján nem lehet lekérdezni?
Esetleg egy újabb Excel verzió ügyesebb ebben?Már az is nagy segítség lenne, ha ki lehetne íratni a görbe pontjait vmi nagyon sűrű osztással (akár más programmal is). Ha elég sok koordinátánk van, akkor a fentebb leírt függvényes módszerrel már egész pontosak tudnánk lenni.
Köszönöm!
-
slashing
senior tag
Tapasztaltatok már olyat hogy egy makró sokkal de tényleg nagyon sokkal lassabban fut le ha meg van nyitva egy másik fájl. Nálam ez egy bizonyos fájlnál van csak "egyenlőre" de nem jövök rá az okára hogy mi a kettő között az összefüggés?!
-
slashing
senior tag
-
slashing
senior tag
egy ellenőrző makrón dolgozom, ti hogy csinálnátok?
szituáció: D4 cellától jobbra azaz egy sorban vannak a fejlécek pl.: akármi 1, akármi 2
alattuk az adatok...Azt akarom ellenőrzini hogy ha bekerültek az adatok a fejlécek alá akkor ha valamilyen oknál fogva foghíjas lesz az adattartományom vagy nem szám kerül bele akkor fejezze be a makró futtatását esetleg írjon ki valamit.
Az én ötletem az hogy darab2-vel (countA) megszámoltatom a fejléc tartományt majd sima darab-bal az adattartományt és ha a fejléctartomány * ahány sorban van adat = annyival mint amennyi az adattartományom akkor Okésak vagyunk ha nem akkor gáz van.
Az én kódom így néz ki, látszólag tökéletes, ti mit csinálnátok másképp vagy jó lesz ez így..?!
Sub ellenorzes()
fejlec = WorksheetFunction.CountA(Range(Cells(4, 4), Cells(4, ActiveCell.End(xlToRight).Column)))
adatok = WorksheetFunction.Count(Range(Cells(5, 4), Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).Column)))
usor = Cells(Rows.Count, "D").End(xlUp).Row - 4 '-4 mert az első négy sort nem akarom számoltatni (D1-től D4-ig)
If fejlec * usor = adatok Then
MsgBox "ok"
Else
MsgBox "ng"
End If
End Sub -
Fferi50
Topikgazda
válasz
MC Pite #24463 üzenetére
Szia!
Bocs, de a kérdés és a leírás teljesen ellentétes egymással (legalábbis az én értelmezésemben).
"egy sorban jobbra növelném a képletben az oszlopcímet, 31esével. Lefele 30 adatsor van, következő oszlopban 31-61ig, következő oszlopban 62-92ig, stb."
Nekem ebből úgy tűnik, a sorszámát kellene növelni 30-as csomagokban.
Erre szerintem az indirekt függvényt lenne jó használni. A sor számát pedig a képletben az oszlop() és sor() függvény felhasználásával tudod beállítani:
= indirekt( "$A" & (oszlop()-1)*30+sor()) a második oszlop első cellájába az első oszlop első cellájának értékét fogja beírni.Üdv.
-
Sziasztok!
Nem találom hogy tudnám megvalósítani azt, hogy egy sorban jobbra növelném a képletben az oszlopcímet, 31esével. Lefele 30 adatsor van, következő oszlopban 31-61ig, következő oszlopban 62-92ig, stb.
A cím fügvénnyel próbálkoztam, de nem sikerült -
m.zmrzlina
senior tag
Én a
Set valami = ThisWorkbook.Worksheets("valami")
megoldást szoktam használni és eddig még jól működött.
Egy időben a makrós munkafüzet nevét adtam meg itt de arról hamar leszoktam mert kb abban a pillanatban halt meg a makró ahogy átnevezték a fájlt. És mindig átnevezték.
-
Wyll
őstag
Beállítok egy változót, hogy a makrómat is tartalmazó, éppen aktív, kiinduló workbook egyik sheet-jére mutasson:
Set mysheet = ActiveSheet
Utána valamivel megnyitok egy másik file-t, innentől persze ez lesz az aktív. A kódnak ebben a részében használhatom-e a mysheet változót (objektumot), és az mire fog mutatni? Csak mert nekem hibát dob, és nem értem miért.. Én azt gondolom/szeretném, hogy a kiinduló file-om megfelelő sheetjére mutasson.
-
Delila_1
veterán
válasz
m.zmrzlina #24458 üzenetére
Törléssel?
-
Delila_1
veterán
válasz
m.zmrzlina #24455 üzenetére
Szerintem töröld a nevet, és újra vidd be.
-
Wyll
őstag
válasz
m.zmrzlina #24455 üzenetére
Akkor sorry, nem találkoztam még ilyennel, hogy miért tiltódik le a névkezelés...
-
Wyll
őstag
válasz
m.zmrzlina #24453 üzenetére
Az elnevezett tartományokkal nagyon vigyázz, amennyiben nem kizárólag abszolút ($-os) hivatkozás(oka)t tartalmaznak!
Amúgy semmi különbség nincs ahhoz képest, mint ahogy a saját munkalapon csinálnád:
írod szépen a képletet, majd amikor kell a másik munkafüzet, átkattintasz rá, F3, kijelölöd a nevet, enter, majd visszakattintasz a függvényedhez, és írod szépen tovább.Szintaktikailag ugyanúgy kell írni, mintha egy cellahivatkozás lenne, nem kell idézőjel meg semmi, a másik file neve persze itt is szögletes zárólejben van, ahogy mindig.
Amúgy meg google. -
m.zmrzlina
senior tag
"A" munkafüzetben szeretnék használni pl egy =FKERES() fv-ben egy "B" munkafüzetben névkezelőben definiált tartományt.
Hogyan lehetséges ez?
-
Kojaszan
újonc
válasz
m.zmrzlina #24451 üzenetére
Okés, köszi, megnézem!
Legyen szép napod -
m.zmrzlina
senior tag
válasz
Kojaszan #24450 üzenetére
Nem állítom, hogy pontosan értem a kérdésedet de ezen a linken van pár dolog a témáról.
-
Kojaszan
újonc
válasz
m.zmrzlina #24449 üzenetére
Na igen, de mire jó ez?
Mármint mihez lehet használni?
Bocsi, nem vagyok épp egy nagy guru, viszont kíváncsi annál inkább
-
Kojaszan
újonc
Huh, köszi szépen a válaszokat!!
Nekem a 2003-as Excel van meg, ott az általános beállításokban szerepel, egy mailben átküldött táblát nyitottam meg, amiatt változott meg a beállítás
És abban tudnátok segíteni, hogy ez a funkció mire való? -
Geryson
addikt
Sziasztok! Hogyan oldanátok meg azt, hogy amikor csinálok egy diagramot és alá beteszem az adattáblát akkor látszódjon az egyik és a másik sorozatnak az összesítése is?
Tehát: január: 3, február: 8, március 12 és a legvégén 23.
Ötlet?
Kojaszan: Office 2007: Office gomb, Excel beállításai, képletek, "S101 hivatkozási stílus"
-
Kojaszan
újonc
Sziasztok! Bocs, ha bődületes alapdolgot kérdezek, de még nem találkoztam ilyennel. Szóval, mi történik olyankor, amikor nemcsak a sorokat, hanem az oszlopokat is számok jelölik? És mire való? Hogy lehet visszaállítani? Köszi a segítséget
-
Mittu88
senior tag
válasz
Fferi50 #24443 üzenetére
Szia Fferi!
String mindkét változó, annál nincs gond (ugyan a nevében raktarszam, de string az is).
Amúgy azért kell errorhandler, mert több parancs is van ott, csak feleslegesnek tartottam leírni.
A probléma az volt, hogy a GoTo hibautan helyett Resume hibautan kellett.Köszönöm szépen a segítséget, hatttalmas riszpekt
-
Fferi50
Topikgazda
válasz
Mittu88 #24442 üzenetére
Szia!
A hibautan cimke szerintem felesleges.
On Error GoTo hibavan
For sorszam = 2 To osszsorszam
Sheets(masodikadatbazis).Select
raktarszam = Cells(sorszam, 2).Value
munkalapnev = Application.WorksheetFunction.VLookup(raktarszam, Sheets("Raktárak").Range("$M$2:$N$90"), 2, False)
raktarszam = munkalapnev
...
Next
hibavan:
sorszam = sorszam + 1
resume nextNem világos, hogy a munkalapnev változód milyen típusúnak van deklarálva. Ha variant akkor nem okoz futási idejű hibát, viszont az értéke hibaérték lesz és azt kell megvizsgálni
if not iserror(munkalapnev) then raktarszam=munkalapnevViszont megoldható másképp is, ha a munkalapnev nem variant tipusu:
On Error Resume Next
For sorszam = 2 To osszsorszam
Sheets(masodikadatbazis).Select
raktarszam = Cells(sorszam, 2).Value
munkalapnev = Application.WorksheetFunction.VLookup(raktarszam, Sheets("Raktárak").Range("$M$2:$N$90"), 2, False)
if err= 0 then raktarszam = munkalapnev else sorszam=sorszam+1
...
NextÜdv.
-
Mittu88
senior tag
sziasztok!
Ebben segítsetek légyszi. A gondom, hogy az alábbi programkód után egyszer ugyan visszaugrik a hibaután: labelhez, de ha még egyszer hibát tapasztal, kifagy a program. Amúgy a munkalapnev változónak való értékadás után akad ki, mert sok esetben #HIÁNYZIK hibát dobna az fkeres függvény. Sajnos azt nem tudom kivédeni.
On Error GoTo hibavan
For sorszam = 2 To osszsorszam
hibautan:
Sheets(masodikadatbazis).Select
raktarszam = Cells(sorszam, 2).Value
munkalapnev = Application.WorksheetFunction.VLookup(raktarszam, Sheets("Raktárak").Range("$M$2:$N$90"), 2, False)
raktarszam = munkalapnev
...
Nexthibavan:
sorszam = sorszam + 1
GoTo hibautanHogy tudom megoldani, hogy az összes hiba esetén a hibavan:-ra ugorjon és ne akadjon ki?
-
Elydan
aktív tag
Sziasztok,
az excelem eltüntette az eddig rögzített egyéni makróimat...
Most újra szeretném a már bevált számformázós makrómat rögzíteni, de az alábbi hibaüzenetet dobja fel:
Az indítókönyvtárban lévő Egyéni makró-munkafüzetnek nyitva kell lennie a rögzítéshez.
Sajnos nem találtam meg, hogy mit kell ez esetben tenni.
Vki tudna esetleg segíteni?
-
fcrhs30
csendes tag
válasz
Fferi50 #24201 üzenetére
sziasztok!
az mitől van, hogy ha egyszerre meg van nyitva több excel, és ebből az egyiket bezárom, bezárja mindet? valamiért elkezdte ezt csinálni az egyik ismerősöm gépén. ilyet még nem láttam. nézegettem a beállításokat, de nem jöttem rá, hogy mi okozhatja ezt.
(office2003 + win7 kombó)előre is köszi!
-
Don_
tag
Sziasztok!
Nagyon amatőr kérdésem van,
Excel képlettel ki kellene számolnom, hogy milyen összeg 200%-a 4 400 000 Ft
A 4 400 000 Ft az A1 cellában
A 200% a B1 cellában
Az ismeretlen a C1 cellában van!Előre is köszönöm!
-
Fferi50
Topikgazda
Szia!
Amit az előbb írtam, az sajnos nem megy - a vba help becsapott - bocs.
Viszont a másik ötletem a következő (hátha nem fogytak még el a libák.
):
Ha az oszlopaid értékét egymás alá másolod, úgy, hogy a sorcimkéket is tovább másolod velük, majd minden adat mellé a mellette levő oszlopba beírod a hónapot (ami eddig a fejléc volt), akkor az így keletkezett adatoszlopot a sorcimkék és az új - a fejlécet sokszorozó - oszlop alapján kívánság szerint összegezheted.
Remélem érthető, amit írtam.
Üdv.
-
Fferi50
Topikgazda
Szia!
Csak egy ötlet:
Csoportosítsd át a tábládat úgy, hogy az összegzendő oszlopok egymás mellé kerüljenek. Akkor összefüggő tartományként megadhatod összegzendő paraméternek a 6 oszlopot. (A kiválogatást megcsinálhatod speciális szűrőt használva az adott oszlopokra a jelenlegi táblád végére is.)
Üdv.
-
.OM.
aktív tag
válasz
Fferi50 #24427 üzenetére
Köszi. Ez van most.
De mivel fejléc alapján csoportosíthatóak az oszlopok, szeretmény csak az érintetteket összeadatni. Pesze lehetne sima n+1 HA függvénnyel összeadogatni amire vonatkozik a kritérium, de azt reméltem erre van valami szofisztikáltabb megoldás..
Tehát a SZUMHATÖBB függvény ÖSSZEGTARTOMÁNY-át kéne több oszlopból venni egyedi kritériummal.Pl egy szumma tömböt tudnék elképzelni, ahol sorokra és oszlopokra is megadható kritérium.
Valaki?
-
Delila_1
veterán
válasz
dellfanboy #24424 üzenetére
Lépj a VB szerkesztőbe Alt+F11-gyel.
Bal oldalon felül kiválasztod a füzetedet. Ha nincs balra lent Properties ablakod, F4-re bejön.
Fent az első lapodat kiválasztod, a Properties ablakban a Visible tulajdonságát xlSheetVisible módra állítod.
A többi lapnál ugyanígy. -
-
Fferi50
Topikgazda
Szia!
A SZUMHATÖBB függvény arra jó, hogy egy összegzendő tartományt több feltétel - azaz több feltételtartomány-kritérium páros - szerint is vizsgálva adjon összeget.
A példádban több összegzendő tartomány van (a hónapok adatai) szerintem és a kritériumok azonosak (vagy nem).
Ezek összegét úgy kaphatod meg, ha a SZUMHATÖBB (vagy a SZUMHA, ha egy kritérium van) függvényt alkalmazod az oszlopokra és az eredményt összeadod:
=SZUMHATÖBB(elsőoszlop,elsőkritérium,elsőfeltétel,másodikkritérium,másodikfeltétel)+SZUMHATÖBB(harmadikoszlop,elsőkritérium,elsőfeltétel, másodikkritérium,másodikfeltétel) + így tovább...
Mivel külön SZUMHATÖBB függvényekről van szó, az egyes oszlopok összegezési feltételei akár el is térhetnek egymástól.Üdv.
-
Fferi50
Topikgazda
válasz
dellfanboy #24424 üzenetére
Szia!
Ha a munkafüzet le van védve - és jelszó is van hozzá - akkor a jelszó ismerete nélkül nem tudod a munkalapot "felfedni".
Próbáld meg a következőket:
Ha ugyanabban a munkafüzetben van üres munkalap, akkor annak az első cellájába írd be ezt a képletet:
=védettlapneve!A1
Ha itt megjelenik adat, akkor minden adatot kinyerhetsz a munkalapról úgy, hogy a képletet végigmásolod minden cellán.
Ha nincs üres munkalap (és valószínűleg nem tudsz beszúrni sem újat), akkor nyiss egy új üres munkafüzetet és annak az egyik munkalapjára írd be a fenti képletet, kiegészítve a munkafüzet nevével.Ha átmész a Visual Basic nézetbe (Alt F11), akkor az immediate ablakban kiadhatod a következő parancssort:
sheets(védettlapneve).usedrange.copy sheets(üreslap).range("A1")
Ez elvileg a képleteket is átmásolja.Persze, ha másolás ellen is védve van, akkor nem fog menni, de azért egy próbát megér szerintem
Üdv.
-
.OM.
aktív tag
Sziasztok,
Lehet SZUMHATÖBB függvényben több oszlopot megadni mint összegtartományt? Illetve ott kritériumot megadni, hogy melyeket számolja?
Pl:
Mondjuk az első oszlopban nevek, a másodikban csoportok. Mellettük 12 oszlopban 12 db havi összeg. Az odáig tiszta, hogy a csoportokra kaphatok egy összeget megadott oszloponként. De mi van, ha nekem minden páros hónap összege kell? Arra adhatok meg kritériumot valahol? Esetleg van tömb függvény erre?(#24424) dellfanboy
Jobb klikk az egyik látható fülön és felfedés/Unhide. Ha nincs ilyen, akkor le van védve jelszóval. Az a Korrektúra - Füzetvédelem alatt találod. -
dellfanboy
őstag
van egy xls-em amit meg tudok nyitvni viszont van benne 1-2 sheet ami le van védve (el van rejtve) szeretném unhide-olni erre van tippetek?
találtam egy ilyet de ez nem segített[link] -
Sziasztok!
Advan egy excell dokumnetum 54 füllel (egy naptár lesz), amit ki kellene nyomtatni. DE. Mivel nem fért rá egy oldalra a naptár, ezért a vasárnap minden oldalon lelóg, ergó 108 oldalt akar kinyomtatni a szentem.
Szeretném beállítani, hogy ezt ne tegye. Gondoltam állítok a nagyításon, ami most 60%, 55%-ra. Igen ám, de csak arra az egy oldalra alkallmazza okosan, vagyis egyesével 54-szer ezt meg kellene csinálnom, de én csak egyszer akarom. Van erre valami mód?Az összes fül ki van jelölve, a nyomtatásvezérlőben a teljes munkafüzet van kijelölve, de akkor is csak az aktuálisan látható fül belállításait csinálja meg.
-
Mutt
senior tag
válasz
looser #24370 üzenetére
Hallo,
m.zmrzlina képét használva.
Ha felvitted a választható értékeket, akkor G1:G3 tartományt elnevezed "sörök"-nek (pont űgy ahogy F2-ben le van írva). H1:H3 tartományt "borok"-nak.
Ezek után A1-ben egy sima adatérvényesítés van az F1:F2 tartományra.
A B1-be szintén adatérvényesítés, de oda már az alábbi képlet kell:
=INDIREKT($A$1)Ezzel kész is, de ha akarod akkor egy makróval megtámogathatod, hogy ha az első értéken változtatsz, akkor kérje be újra a másodikat.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then Range("B1").ClearContents
End SubBővebben itt olvashatsz erről a módszerről.
üdv
-
Mutt
senior tag
válasz
Zola007 #24342 üzenetére
Hello,
Ennek a 6 képlet eredményének az átlagát kellene megjelenítenem az A2 cellában, de nincs hely külön mellette kiszámoltatni, tehát egy cellába kellene valahogy beírni az egészet
A könnyebb kezelhetőség is feltétel volt, de erre nem láttam választ. Ehhez javaslom, hogy vegyél fel névkezelőben újabb függvényeket.
Az egyedüli gond, hogy a névkezelőben az Excel abszolút hivatkozásokat akar használni (mindig pl. $A$1-et).
A relatív hivatkozásokat pedig trükkösen kell felvinni (INDIREKT függvény).W-re hivatkozz így:
INDIREKT("S[-1]O";0)(Vagyis mindig a cella feletti sort nézze.)
R-re pedig így:
=INDIREKT("S[-1]O[1]";0)(Nemcsak felette, de tőle jobbra eggyek lévő cella.)
Ha megvannak a képletek, akkor az átlag képlet nagyon rövid lesz:
=ÁTLAG(Fugg1;Fugg2;Fugg3;Fugg4;Fugg5;Fugg6;Fugg7)Ezzel a megoldással a függvények átláthatók és a névkezelőn keresztül globálisan javíthatók.
üdv
-
Mutt
senior tag
Hello,
B-oszlop egy segédoszlop, amiben a képlet ez:
=HA(DARABTELI($A$2:A2;A2)=1;HOL.VAN(A2;A:A;0);"")Ez a képlet megmondja, hogy hol fordul elő legelősször a mellette lévő cella. Ha többször fordul elő, akkor ismétléseknél üres cellát ad és csak a legelső találatnál a megfelelő sort.
Ezen segédoszlop segítségével a feltételes formázás képlete.
=PÁRATLANE(HA(B2="";D1*1;DARABTELI(B:B;"<="&B2)))Az a képlet a segédoszlopban taláható számokból (2;3;4;7;9 stb. a mintán) egy sorszámot állít elő (1,2,3 stb) és a páratlanokat kiválogatja amelyeket már ki tudunk szinezni,
üdv
-
-
Fferi50
Topikgazda
válasz
Hegyirabló #24417 üzenetére
Szia!
Ha fülek nevére gondolsz, akkor igen. Ráállsz a lapfülre. Jobb egérgomb, átnevezés: itt olyan nevet adsz neki amilyet szeretnél.
A fülek (és így a munkalapok) sorrendje is megváltoztatható: A fülön állva bal egérgomb lenyomva, húzással oda teszed, ahova szeretnéd.Üdv.
-
-
slashing
senior tag
válasz
localhostadm #24415 üzenetére
olvass vissza leírtam egy tök egyszerű megoldást a problémádra...........
-
slashing
senior tag
válasz
lumpy92 #24412 üzenetére
ilyen formában ez nem is fog menni, mert jelenleg ez a minta szövegként van értelmezve ezt látszik abból hogy a cellában automatikusan balra igazítottként jelenik meg. Csak úgy tudod megoldani ha csinálsz két oszlopot az egyikbe beírod a kezdő időt a másikba a plusz 20 perces időt aztán az első oszlop második cellájába csinálsz egy sima hivatkozást a második oszlopod első cellájára és ahhozis hozzáadsz 20 percet majd lehúzod a képletet. Majd csinálsz egy harmadik oszlopot amiben esetleg összefűzöd a két értéket.
Tehát:
A1=7:00 B1=A1+idő(0;+20;0)
A2=B1és lehúzod a képletet az A2-től lefele és B1-től lefele
C1-be meg összefűzöd őket
=SZÖVEG(A1;"óó:pp")&"-"&SZÖVEG(B1;"óó:pp") -
lumpy92
aktív tag
Sziasztok!
Lenne egy problémám,bár lehet,hogy nagyon egyszerű,én nem jöttem ráEgy oszlopa szeretnék idő intervallumokat beírni, a következő formában:
07:00-07:20
07:20-07:40
07:40-08:00
...
és így tovább. Sajnos sehogyan sem tudtam megoldani,hogy automatikusan folytassa a mintát a program, pedig próbáltam a számformátumot piszkálni. Előre is köszönöm a válaszokat! -
Fferi50
Topikgazda
Szia!
Kicsit favágós, de működik ("kézi hajtással"):
A feltételes formázás szabálya: a formázandó cellák kijelölése képlettel
A képlet: =SZÖVEG.KERES(szinescellák;A1)>0
Beállítod azt a szint kitöltésnek amit szeretnél.
A szinescellák tartalma kétféle módon adható meg:
A szinezendő cellákról csinálsz egy másolatot. Utána a másolaton adatok-ismétlődések eltávolítása.
Ezzel megvannak az egyedi értékeid, abban a sorrendben, ahogyan az eredeti helyen következtek.
Minden második értéket "kigyomlálod" - vagy összefűzöd egy cellába vesszővel elválasztva.
1.Ekkor a szinescellák helyén ez a cella szerepel, abszolút módon megcímezve.
=SZÖVEG.KERES($K$1;A1)>0
2.Ha nem akarod, hogy a cella ott maradjon, akkor az értékét teszed be a szinescellák helyére.
=SZÖVEG.KERES("Németország,Olaszország,Portugália";A1)>0
A képlet megadásánál kijelölöd az egész formázandó tartományt. Az A1 helyébe a formázandó tartomány első celláját írod, nem $ cimként.Ha bővülne a tartomány, akkor a cellát, vagy a szöveget csak kiegészíted az új értékkel, amit másként kell színezni.
Ennél jobb most nem jutott eszembe.
Üdv.
-
alfa20
senior tag
Sziasztok,
Olyat szeretnék, hogy van 5 külömböző színű cella, mennyiségekkel, tudok valamilyen függvényel színre összesíteni?
-
slashing
senior tag
Nem te vagy az első aki ilyet akar ahogy nézem, elég sok komment van talán van is rá valami értelmes megoldás nem néztem át őket mert elég sokat írnak
-
Wyll
őstag
Erre az érdekes problémára valakinek ötlet?
Új hozzászólás Aktív témák
- Kerékpárosok, bringások ide!
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Milyen videókártyát?
- Kínai és egyéb olcsó órák topikja
- Fujifilm X
- Öngyilkossághoz adott útmutatókat a ChatGPT, perelik az OpenAI-t és Altmant
- Háztartási gépek
- AMD Navi Radeon™ RX 9xxx sorozat
- Windows 11
- Motoros topic
- További aktív témák...
- Vírusirtó, Antivirus, VPN kulcsok
- Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Eladó Steam kulcsok kedvező áron!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3288
- LG 27GP95RP - 27" Nano IPS - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 600
- Targus Universal USB 3.0 DV1K-2K Compact docking station (DisplayLink)
- BESZÁMÍTÁS! Sapphire Nitro+ RX 7900XTX 24GB videokártya garanciával hibátlan működéssel
- Medion Erazer Beast X40-hez vízhűtés (MD 60961)
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: FOTC
Város: Budapest