-
IT café
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
-
őstag
Azt hogy tudom megoldani, hogy amennyiben az egyik cellába beírom, hogy 195000, úgy egy másik cellába automatikusan beírja, hogy 195.000 ?
Köszönöm
-
őstag
Újabb kérdésem lenne, ha már itt a heteknél/dátumoknál tartunk. Hogy lehet feltételes formázással megoldani, hogy egy adott cella legyen zöld, ha a benne szereplő dátum nagyobb vagy egyenlő mint egy másik cellában levő? Mert ilyen nem szerepel a kitételek között.
-
őstag
Olyat lehet csinálni hogy van egy nagyon bonyolult táblázatom és a kijelölt cellákra egy kerekítés függvényt húzzon rá? Akkor is ha már eleve tartalmaznak képleteket az adott cellák és azok természetesen maradjanak meg, csak húzza rá a kerekítés fgv-t?
Pl: KEREKÍTÉS(már meglévő fgv;3)
Valamit ki kellene találni mert nincs kedvem több száz cellát egyesével manuálisan átírni.
Köszönöm
-
őstag
Sziasztok!
Jelenleg 2019.08 hónap van.
Hogy bírom képlettel megoldani, hogy az aktuális hónap -1 hónapot írjon ki a cellába?
Jelenleg eddig jutottam:
=KALK.DÁTUM(MA();-1)
Ezzel az a probléma, hogy a kapott érték:
2019.07.05
Nekem pedig csak annyi kell, hogy2019.07
Ezt hogy tudom kivitelezni egy cellán belül?
Köszönöm
-
őstag
Sziasztok,
Pivot/Kimutatás problémába ütköztem.
Egy elég komplex kimutatást csinálok, aminél több slicer/szeletelő is van és egy-egy szeletelő 5-8 tábla adatait is változtatja.
A probléma annyi, hogy szépen össze rendezem nyomtathatóra és amikor máshogy állítom a szeletelőt, akkor kiírja, hogy kimutatás nem fedhet kimutatást.
Az ok adott a kérdés az, hogy mi erre a megoldás?
Van valami olyan megoldás, ami egymáshoz képest automatán méretezi/eltolja a kimutatás táblákat, hogy ne legyen átfedés? Valami auto expand vagy magnet vagy akarmi?
Köszönöm
-
őstag
Sziasztok!
Kezdő vagyok nagyon VBA-ban és elakadtam. Ebben kérnék segítséget, mert hiába túrom a netet egyszerűen nem áll össze amit szeretnék megvalósítani.
A szituáció:
Adott több táblázatként formázott tábla.
A forrás táblákban rengeteg oszlop van (80)
A cél táblában 8 oszlop van.
Az összes forrás táblából adott 8 oszlopot (nem egymás mellett levőket) szeretnék a cél táblába másolni úgy, hogy a fejléc ne, de az összes érték átkerüljön.
Az első táblánál még csak rendben is van, hogy egyenként bemásoltatom az oszlopokat, de a második táblánál meg kellene kerestetni a céltábla adott oszlopának utolsó adatot tartalmazó celláját, hogy az alá tegye a következő oszlopot.Eddig jutottam:
Private Sub CommandButton6_Click()
Worksheets("Munka_forras").ListObjects("Tbl_forras_1").ListColumns("Név").DataBodyRange.Copy
Worksheets("Munka_cel").ListObjects("Tbl_cel").Range(2, 1).PasteSpecial xlPasteValues
Worksheets("Munka_forras").ListObjects("Tbl_forras_1").ListColumns("Cim").DataBodyRange.Copy
Worksheets("Munka_cel").ListObjects("Tbl_cel").Range(2, 2).PasteSpecial xlPasteValues
End Sub
Kérdés:
Nem lehet valahogy össze vonni, hogy ezeket a másolásokat egyszerre végezze? Tehát kijelöli az összes oszlop adatát amit szeretnék és egyszerre bemásolja?!
Hogy tudom megoldnai, hogy ne a Range(2,2) -vel monjam meg hova tegye, hanem mondjuk az oszlop nevét adjam meg ?!
A második táblánál hogy fogom megmondani, hogy a már létező adatok alá másoljon?
Ezt találtam:
With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With
Csak sehogy nem bírom beilleszteni.
Valaki tudna ebben segíteni?
Köszönöm
[ Szerkesztve ]
-
őstag
válasz Fferi50 #42096 üzenetére
Köszönöm, így tökéletes a kijelölés.
A másolást azonban nem hajtja végre csak akkor, ha ezt írom:
celtabla.Range(2, 1).PasteSpecial xlPasteValues
Így azonban mindig legfelülről kezdi sajnos.
Az általad írt kódra kiáll ezzel a hibával:
Amennyiben üres még a tábla:
Run-time error '91': Object variable or With block variable not setAmennyiben már van a táblában egy "adag" másolva:
Run-time error '438' Object doesn't support this property or methodMit rontok el?
"Természetesen a sok tábla másolását csinálhatod ciklussal és akkor a forrás tábla neve helyett az indexét használhatod."
Ezt pedig nem is igazán értem -
-
őstag
Sziasztok.
Sajnos ismét elakadtam.
Szeretném kiíratni A oszlopba az adott excel fileban levő munkalapok nevét, a mellette levőbe pedig a munkalapon levő táblázatok neveit.
Eleve nem csinálja amit szeretnék, mert csak a munkalapok neveit teszi be A oszlopba, de felvetődik a kérdés mi van akkor, ha több tábla is van egy munkalapon?
Kérem aki tudja hol lövök mellé segítsen:
Sub proba_1()
Dim ws As Worksheet
Dim tbl As ListObject
Dim i As Single, x As Single
i = 1
x = 1
For Each ws In ThisWorkbook.Worksheets
Range("A1").Cells(x, 1) = ws.Name
x = x + 1
For Each tbl In ws.ListObjects
Range("A1").Cells(i, x + 1).Value = tbl.Name
i = i + 1
Next tbl
Next ws
End Sub
Köszönöm
[ Szerkesztve ]
-
őstag
válasz Fferi50 #42180 üzenetére
Így már értem és működik is, köszönöm!
Már csak azt kellene megoldani, hogy a munkalapok neve mellé azokat a táblákat tegye, amik az adott munkalapon vannak.
Erre nem jövök rá, mert a táblákból bármit ki bírok íratni a táblanév mellé, de a munkalap mellé az azt tartalmazó táblákat nem
-
őstag
válasz Delila_1 #42183 üzenetére
Köszönöm!
Így már látom mit hagytam ki
Addig jutottam, hogy kiírta a munkalapok mellé a táblát, de csak a B oszlopba 1-et. Ha több tábla volt azt nem folytatta C,D,E... oszlopokban.
(#42182) Fferi50 : El volt csúszva a táblanevek oszlop lefelé 1 cellával, mert a tábláknál nem volt x-1. Közben este erre rájöttem, köszi!
[ Szerkesztve ]
-
őstag
Olyan megoldás létezik erre
With Worksheets("munka1").ListObjects("tabla1").ListColumns(1).Range.Resize(, 82).Copy
End With
, hogy az oszlopok száma és annak kiterjesztése helyett meg lehessen adni a tábla fejlécében levő szöveget? Tehát, hogy ne az első 82 oszlopot jelölje ki a táblából, hanem mondjuk a megadott oszlopnévtől adott oszlopnévig bezárólag csinálja?
Vagy ide valami .Find megoldás dukál?
-
őstag
válasz Fferi50 #42186 üzenetére
Köszönöm, ezt ismerem ( Te mutattad nemrég ). A probléma csak az, hogy nem szeretném 82 oszlop nevét beírni, főleg hogy max 30 érték lehet az Union-ban.
Ezért keresek olyan megoldást, hogy megnevezek két oszlopot és az elsőtől az utolsóig jelölje ki.
Már, ha egyáltalán ez megoldható?!
-
őstag
Sziasztok,
azt hogy oldom meg, ha van egy táblám amire autofiltert tettem és a filter nem hoz vissza adatot akkor lépjen tovább?!
Forrastabla.Worksheets("Munka1").ListObjects("adatforras").Range.AutoFilter Field:=6, Criteria1:="kritérium1"
VisibleCellsCount = Forrastabla.Worksheets("Munka1").ListObjects("adatforras").Range.Cells.SpecialCells(xlCellTypeVisible).Count
If VisibleCellsCount > 1 Then........
és ekkor végezné el amit akarok.
Ha kisebb mint 1 akkor pedig menjen tovább.
Jelen esetben a teljes databodyrange-et átmásolja, ha a filter nem listáz semmit a táblázatba.
Hol nézem be? A headerben is számol? DataBodyRange nem működik a Range helyett, mert akkor leáll overflow-al a program.
Előre is köszönöm
[ Szerkesztve ]
-
őstag
válasz Fferi50 #42212 üzenetére
Ha szűrt táblában a ListColumns(1).DataBodyRange.Copy parancsot kiadom akkor minden esetben csak a szűrt eredményt másolja?
Mert, ha a szűrés nem hoz eredményt (azaz csak fejléc van),és akkor adom ki DataBodyRange.Delete parancsot és a szűrés által rejtett részt is kitörli, azaz mindent. (rá kell szűrnöm bizonyos értékekre, amik nem kellenek a táblázatba és így törlöm ki, de nem mindig szerepel a táblában.)
Nem teljesen értem miért van ez.
Ha pedig meg akarom adni a látható cellákat akkor nem működik a databodyrange-es hivatkozás, csak a range ?!
[ Szerkesztve ]
-
őstag
Bocs, ha egyértelmű kérdés, de nem jut eszembe a megoldás:
VBA-ban ki akarom cserélni az összes "-" karaktert 0-ra egy adott táblában. Ezzel nincs is semmi probléma, mert lefut a program és csinálja is amit kell.
Azt hogy mondom meg neki, hogy CSAK abban a cellában cserélje ahol nincs semmi más csak "-" karakter. Tehát pl jobbra-balra az nem jobbra0balra legyen
-
őstag
válasz Fferi50 #43047 üzenetére
Biztos, végülis így oldottam meg:
Selection.Replace What:="-", Replacement:="0", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
A LookAt:=xlWhole megoldotta, hogy a teljes cella tartalmát nézze.
Azért köszönöm!
Köszönöm!
-
őstag
Ez a Pivot table meg Pivot chart ennyire instabil/bugos? Van 20 elég nagy táblázatom egy excel fileban amiket felvittem az adatbázisba, és megcsináltam a kapcsolatokat közöttük. Van két táblázatom amikhez az összes többi van kötve (évszám tábla és hónap tábla). Ez azért van, hogy egy év és egy hónap slicerrel egyszerre tudjam az összeset változtatni.
Elkezdtem csinálni a pivot táblákat és a diagramokat (összesen kb 15-20 oldalon lenne kb 40 pivot tábla és 20 diagram összesen), de valami hihetetlen lassú és össze vissza kidobál.
A kapcsolatok jók, a struktúrák jók.
Ez ilyen? Milyen más megoldás van pivot táblák helyett kimutatásokat csinálni? Gondolom semmi.
Egyszerűbb lenne a helyzet, ha egy cellából olvastatnám ki VBA-val a táblákban megjeleníteni kívánt évet és egy másikból a hónapot?
Erre eddig csak olyat találtam, hogy a szűrő vagy a slicer értékét olvasná ki táblából. Az első azért nem jó, mert nem a szűrőben akarom az évszámot betenni, hanem a sorok közé, a második pedig szinte kivitelezhetetlen.[ Szerkesztve ]
-
őstag
válasz Fferi50 #43095 üzenetére
Szia!
Közben rászántam az időt és megoldottam a problémát, maradtam a pivot kimutatásoknál.
Amugy Excelben van az adatbázis.
Azt hogy tudom megoldani, hogy az összes olyan lapot ami nincs rejtve és úgy kezdődik a neve, hogy “EE_” azt nyomtassa ki egy PDF fileba?Minden munkalap egy A4-es oldalt tartalmaz, aminek az előláb részében be van állítva az oldalszám. Ha kijelölöm őket kézzel, (tehát az összes amit ki akarok nyomtatni ki van választva egyszerre) és rámegyek a nyomtatára akkor az oldalszámok is növekvő sorrendben vannak egymás után.
Ez lenne a cél, csak gombnyomásra.Köszönöm
-
őstag
válasz Fferi50 #43131 üzenetére
Szia!
Köszönöm szépen! Így tényleg kinyomtat minden oldalt. Nekem valamiért a saját kódommal csak az elsőt nyomta ki
Egy kicsit módosítottam a kódod, hogy én adhassam meg hova és milyen néven mentsen.
Beteszem ide, hátha valakinek a későbbiekben szüksége lesz erre a verzióra.Sub nyomtatd()
Dim lap As Worksheet, nyomtatni As Variant, nyomtato As String
Dim mappavalaszto As Integer
Dim fajlnev As String
mappavalaszto = Application.FileDialog(msoFileDialogSaveAs).Show
If mappavalaszto <> 0 Then
fajlnev = Application.FileDialog(msoFileDialogSaveAs).SelectedItems(1)
For Each lap In Worksheets
If Left(lap.Name, 3) = "EE_" And lap.Visible = xlSheetVisible Then nyomtatni = nyomtatni & "," & lap.Name
Next
nyomtatni = Mid(nyomtatni, 2)
nyomtatni = Split(nyomtatni, ",")
Sheets(nyomtatni).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fajlnev, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End If
End Sub
-
őstag
-
őstag
Sziasztok!
Adott egy szűrt (slicerrel) kimutatástáblázat (pivot table) 5 oszloppal. Ehhez tartozik egy oszlop kimutatásdiagram. A táblázatban mintavételek eredményei találhatók és a második oszlopban van a mintavétel helye. Egy mintavételi helyhez több sor is tartozik.
A problémám az lenne, hogy sok mintavételi helynél átláthatatlan a diagram, mivel ugye egymás mellé beteszi az összes mérési helyet. (A4-es lapra ki kell férjen egy diagram)
Valahogy megoldható az, hogy minden egyes mintavételi helynek külön diagramot hozzon létre automatán?
Próbáltam neten keresni valami kiindulást VBA-ban, de még csak hasonlót sem találtam.
[ Szerkesztve ]
-
őstag
Van egy táblázatom amiben ki szeretném cserélni az összes "^^" -t "=" -re.
Az alábbi makró le is fut, de csak a legelső oszlop első cellájában cseréli ki.Range("tabla1_tbl").Select
Selection.Replace What:="^^", Replacement:="=", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Makro rögzítéssel is ugyanezt rögzíti, de ott mindent kicserél.
Mi lehet a probléma?
-
őstag
Sziasztok!
Adott az alábbi kód:
Range("Tabla1_tbl[Oszlop1]").Formula = "=HAHIBA(([@[Oszlop2]]/([@[Oszlop3]])/1000),0)"
Ez miért az alábbi képletet adja vissza az Oszlop1-be?:
=@HAHIBA(([@[Oszlop2]]/([@[Oszlop3]])/1000);0)
Tehát betesz egy @-t a függvény elé.
Miért? Hogy lehet enélkül betenni a képletet az oszlopba?
Köszönöm
[ Szerkesztve ]
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen