- Milyen egeret válasszak?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Steam Deck
- Hobby elektronika
- Ízléses, masszív és praktikus mikrotorony jött a Jonsbo műhelyéből
- Hővezető paszták
- Miért fontos a regisztráció előtt elolvasni a feltételeket
- Apple asztali gépek
- Fujifilm X
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
-
PROHARDVER!
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
-
Fferi50
Topikgazda
Szia!
Ha még nincs megoldásod, ezt a makrót másold be egy modul lapra.Sub keresi()
Dim kodok As Range, adatok As Range, adat As Range, kod As Range, adatcim As String
Sheets("Munka1").Range("B:B").Clear
Set kodok = Sheets("Munka2").Range("A1").CurrentRegion
Set adatok = Sheets("Munka1").Range("A1").CurrentRegion
Set adat = adatok.Cells(1)
For Each kod In kodok.Cells
Set adat = adatok.Find(what:=kod, after:=adat, LookIn:=xlValues, lookat:=xlPart)
If Not adat Is Nothing Then
adatcim = adat.Address
Do
adat.Offset(0, 1).Value = 1
Set adat = adatok.Find(what:=kod, after:=adat, LookIn:=xlValues, lookat:=xlPart)
Loop While adat.Address <> adatcim
Else
Set adat = adatok.Cells(1)
End If
DoEvents
Next
Application.ScreenUpdating = True
MsgBox "Készen vagyunk!"
End Sub
A munkalapok neveit igazítsd a sajátodéhoz. A makró minden olyan érték mellé beír egy db 1-est, amelyik a kódok listájában előforduló értékkel kezdődik. Ne lepődj meg, ha kicsit sokáig fut.
Üdv. -
Enikő 39
friss újonc
Sziasztok,
segítséget szeretnék kérni. Van egy táblázat, mely hús megrendelést tartalmaz és egy lapra 8 ember megrendelését lehet feltüntetni. Lenne egy névlista, melyet a táblázatban a név melletti cellában szeretnék feltüntetni, de úgy, hogy ne kelljen mindegyiket egyesével beirogatni nyomtatáskor. Ehhez kérnék segítséget, hogy ezt hogyan lehetne megoldani...
Arra gondoltam, hogy egy másik munkalapra felvinném sorban a neveket és valamilyen hivatkozással? vagy nem tudom...
Van erre valakinek valamilyen ötlete?Köszönöm a segítséget!!
-
Fferi50
Topikgazda
válasz
szricsi_0917 #44295 üzenetére
Szia!
Makróban a tartományokat a Range tulajdonsággal kell megadni.Sheets("Összerendelés").Range("af6") = Application.WorksheetFunction.CountA(Sheets("Összerendelés").Range(abc.Address & ":" & abc1.Address))
Üdv. -
szricsi_0917
tag
válasz
szricsi_0917 #44295 üzenetére
Sziasztok
Közben megtaláltam a megoldást! -
szricsi_0917
tag
Sziasztok
Egy kis segítséget szeretnék kérni.
Mi lehet a probléma az alábbi makró részlettel?
Ez csak egy teszt, tehát csak próba elnevezések vannak benne:Sub proba()
Set abc = Sheets("Összerendelés").Range("A1:A10000").Find(What:=18, LookIn:=xlValues)
Set abc1 = abc.Offset(0, 29)
Sheets("Összerendelés").Range("af6") = Application.WorksheetFunction.CountA("Összerendelés!" & abc.Address & ":" & abc1.Address)
End SubSzerintem rosszul adom meg a CountA tartományát.
-
-
Pakliman
tag
Szia!
Egy kis makrózással megoldható...
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = Range("A1").Address Then
'Duplaklikk az A1 cellán
Cancel = True 'Megakadályozzuk, hogy szerkesztő módba lépjen a cellában.
Dim sha As Worksheet: Set sha = Worksheets("Munka1") 'ActiveSheet
Dim shk As Worksheet: Set shk = Worksheets("Munka2")
Dim usa As Long: usa = sha.Cells(sha.Rows.Count, "A").End(xlUp).Row 'A Munka1 utolsó sora
Dim usk As Long: usk = shk.Cells(shk.Rows.Count, "A").End(xlUp).Row 'A Munka2 utolsó sora
Dim sora As Long
Dim sork As Long
'Nem kell folyton újraszámolni, sem villogtatni a képet...
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
'Kiürítjük a B oszlopot...
sha.Range("B2:B" & usa).ClearContents
For sora = 2 To usa
For sork = 2 To usk
If sha.Cells(sora, 1) Like shk.Cells(sork, 1) & "*" Then
'Ha a Munka1 aktuális cellája "hasonlít" a Munka2 aktuális cellájára, akkor...
sha.Cells(sora, 2) = 1 '...a Munka2 2. oszlopába berakunk egy 1-est
Exit For 'Mivel van találat, a több elemet már nem vizsgáljuk, továbblépünk...
End If
Next sork
Next sora
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End If
End Sub -
Fferi50
Topikgazda
Szia!
"Minden olyan szám kell aminek a kezdete megegyezik a Listában lévőkkel."
Bocs, de meddig számoljuk a kezdetet? Hány karakterig? Milyen határoló karakter van? V vagy S vagy - vagy micsoda más?
Mert a listádban van 6-7-8-9 karakteres keresendő tétel....
És hat karakterig elég sok egyezőség is.
Legalább a keresendő listád lenne egyértelmű....
A képletet minden érvényes elválasztó/határoló karakterre meg kellene csinálni.
Üdv. -
Telda
addikt
válasz
Fferi50 #44290 üzenetére
De az is kell
.
Minden olyan szám kell aminek a kezdete megegyezik a Listában lévőkkel.
A Listában vannak olyan számok amik V-re végződnek. (Ezeket szépen le is válogatta.)
Pl. ez 30480700 benne van a listában, akkor a következőket találja meg:
30480700S01-073
30480700-073
30480700
Vagy ez 4186396V van a lsitában, akkor:
4186396V
4186396V-045
4186396V-301
4186396VS01-045
Ilyen "Kezdete" szürést nem lehet tömegesen csinálni?Köszönöm hogy ennyi idő szánsz rám!
-
Fferi50
Topikgazda
-
Fferi50
Topikgazda
Kiegészítés:
Ha feltételes formázást szeretnél (mert akkor nem kell segédoszlop), az alábbi képletet használhatod. Jelöld ki az A2 cellát, majd:
Kezdőlap - Feltételes formázás - Új szabály - A formázandó cellák kijelölése képlettel -- Érték formázása ha ez a képlet igaz:=HAHIBA(HOL.VAN(HAHIBA(BAL($A2;SZÖVEG.TALÁL("-";$A2)-1);$A2);Lista;0);"N")<>"N"
Kiválasztod a megfelelő formázást. OK.
Ezután a szabályok kezelése menüpontban beállítod az érvényesség tartományát az A oszlopodnak megfelelően.
Szűrésnél így az A oszlopra használhatod a színszűrőt.Üdv.
-
-
-
Delila_1
veterán
A kettes lapon lévő tartománynak nevet adsz. Legyen ez pl. Lista.
Az egyes lapon a tartománynak feltételes formázást adsz, a képlet=HOL.VAN(A2;Lista;0)
Vagy képletet írsz az egyes lapon a B oszlopba.
=HA(HOL.VAN(A2;Lista;0);1)
A fellelhető értékek mellé 1-et ír, a többihez #HIÁNYZIK szöveget. Biztosan lehetne szépíteni, de most szaladok. -
Telda
addikt
Sziasztok!
Nagy segítséget szeretnék kérni.
Van nekem két munkalapom.
Az egyes munkalapon lévő számok közül szeretném kikeresni az összes olyan tételt, ami a kettes munkalapon lévőkkel kezdődik.
Például a kettes lapon szerepel a 4105709V, akkor keresse ki az összes tételt ami ezzel kezdődik.
4105709V-045
4105709V
4105709V-091
4105709V-006
4105709V-126
4105709V-193
4105709V-236
4105709V-269
4105709V-301
Eddig ezt szűréssel csináltam, de egyenként nagyon lassan halad.
Csatolom a munkafüzetet.
[link] -
Bazs1981
aktív tag
Sziasztok!
Abban kérném a segítségeteket, hogy véletlen számot kellene generálnom 0,1 és 0,5 között, mi ennek a képlete?
-
gepesz13
tag
Sziasztok!
Valamit elnyomtam és nem tudok rájönni, hogy mit. Excel táblában a nyilakkal nem az aktív cella mozog hanem az egész lap. Kérlek segítsetek mert kezdek begolyózni.
Üdv és köszi! -
Zola007
veterán
Adott egy nagyon egyszerű függvény:
=MARADÉK(M168-N167;1)Két időpont közötti óra/percet kellene kiszámolnia
Nagyrészt jól működik, kivéve pl. mikor
N167=23:00
M168=06:00Ekkor kiakad és
• cellába nem ír semmit
• belekattintva nem látszik a függvényből semmi, csak a cellák száma, de kurzorral lehet mozogni a "semmiben" jobbra-balra
• de függvényszerkesztőben látszik és ott jól is írja az értéket
mi lehet a gond? -
HREH
senior tag
Van egy munkalapom, amelyen a C1:G1 tartományban van 5 játékos neve.
Azt szeretném elérni, hogy ha az A2 cellába manuálisan beírok egy nevet, akkor az A21-es celláig automatikusan töltse ki a cellákat, a megadott nevek sorrendjében, majd ismét kezdje az elejétől.
Itt egy kép, hogy mire gondolok: link (nem A21-ig csináltam a képet, de addig kellene, hogy működjön)
A2-be beírom a Dani nevet, aláírja már automatikusan az Elemért, majd ismét indul az elejétől. Természetesen a nevek változnak a C1:G1 tartományban.
Az A2:A21 tartomány fix, 20 játékon keresztül kell osztó, a csavar annyi benne, hogy lehet 6-7-8 játékos is, ekkor hasonlóképpen kellene, hogy működjön a dolog.Jöhet akár makróval is.
Köszönöm! -
Mutt
senior tag
válasz
maliszka #44258 üzenetére
Szia,
...Ebbe lehet importálni CSV file-ból pl banki adatokat, amiket nem akarok egyenként felvenni....
A fenti képen bal oldalt van egy elméleti adatsor letöltve a bankodból, jobb oldalt pedig a programnak megfelelő sorrend van.
H2-ben ez a képlet:
=HA($A2<>"";B2;"")
J2-ben pedig ha magyar területi beállítású Excel-t használsz akkor ez (a helyette a tizedesvesszőt pontra cseréli a proginak, importálásnál ez az alapértelmezett):
=HA($A2<>"";HELYETTE(SZÖVEG(C2;"#0,00");",";".");"")
K2-ben ez a képlet (feltételezve hogy csak a tényleges kiadásokat/bevételeket vezeted):
=HA(A2<>"";"C";"")
I2 képlete:
=HA($A2<>"";SZÖVEG(A2;"éééé-hh-nn");"")
M2 képlete:=HA(ÉS($A2<>"";D2<>"");D2;"")
I-oszlopba neked kell bevinned a programban használd kategóriáidat (javasolt egy adatérvényestés ehhez).
O-oszlopban ezen adatokat már csak össze kell fűzni és a végére még egy vesszőt tenni.
O2-ben a képlet:=HA(A2<>"";SZÖVEGÖSSZEFŰZÉS(",";HAMIS;""""&H2:M2&"""")&",";"")
Ezeket a képleteket jó sokszor másod le és kész is a sablonod.
A következő lépés már csak az O-oszlopban lévő adatok kijelölése és másolása egy szövegszerkesztöbe ami képes UTF-8-as kódolással menteni. pl. az ingyenes Notepad++
Ezek után a fájlt már csak fel kell másolni a telóra.üdv
Ps. A https://github.com/viszi/codes/blob/master/Excel/Useful/Export2CSV/Export2CSV.xlsm oldalon van egy Excel fmakró, ami képes kimenteni adott elválsztókkal a kijelölt tartományt. Ez majdnem jó lenne, de az ékezetes karaktereket nem jó kódolással menti ki a programnak így esetedben felejtős.
-
Delila_1
veterán
válasz
zsoltzsolt #44259 üzenetére
Modulba tedd.
Az aktív cella fölé szúr be 59.000 sort.Sub Sorbeszuras()
Rows(Selection.Row & ":" & Selection.Row + 59000).EntireRow.Insert
End Sub -
zsoltzsolt
addikt
Sziasztok!
Hogyan lehet egy táblázatba adott számú, jelen esetben 59.000 sort beszúrni? Vagyis, hogy a számát pontosan lehessen megadni!
Előre is köszönöm az ötleteket! -
maliszka
csendes tag
Hello, a lenti problémára keresek megoldást, a rászánt időt természetesen honorálom :)
Ezt a költségfigyelő alkalmazást használom:
https://play.google.com/store/apps/details?id=com.handyapps.expenseiq&referrer=utm_source%3Deiqweb%26utm_campaign%3Dheadlink
Ebbe lehet importálni CSV file-ból pl banki adatokat, amiket nem akarok egyenként felvenni.
De képtelen vagyok excel táblából úgy konvertálni, hogy elfogadja a program.Itt van leírva, hogy mit fogad el, de nekem nem megy :)
https://www.expense-iq.com/faq
IMPORT, EXPORT DATA & CLOUD SYNCErre kellene nekem egy sablon + egy útmutató. Excel vagy open office, mindegy.
Előre is köszi
-
Taktoj
aktív tag
Valaki esetleg próbálta már telegram egyik csatornájáról scrapelni?, Mennyire lehetséges hogy nagy tudásommal megtudnám csinálni? illetve gondolom nem nagyon milyen szakit kellene keresnem ezügyben?
-
Mutt
senior tag
Sziasztok,
Másik fórumon az alábbi probléma merült fel: felhasználó szeretné ha megad számokat és azok ismétlésének számait (ami eltérő is lehet), akkor abból a legkönnyebben legyen egy kész lista.
A képen bal oldali listából kellene a jobb oldali.
Power Query-vel ez nagyon könnyen elérhető. A lényeg, hogy felsorolást kapcsos zárójellel az alső és felső érték megadásával lehet létrehozni. pl. {1..99} vagy {'a'..''z'}
A listát sorokba kell bontatni és kész is az eredmény.
üdv
-
Fferi50
Topikgazda
válasz
Taktoj #44253 üzenetére
Szia!
Szerintem valami ott még mindig nem kerek. Így látatlanban sajnos nem tudok sokkal többet mondani.
Ha kikapcsolod az automatikus újraszámítást (manuálisra állítod), akkor mennyi a futásidő?
Talán megpróbálnám először 100 sorral, aztán 1000 sorral és nézném, hogy mennyi ideig dolgozik.
Milyen függvények vannak benne? Ha táblázat, akkor az automatikusan terjed a tartományban. Indirekt, eltolás és egyéb volatile függvények okozhatnak ilyet még esetleg.
Ha nem szupertitkos a dolog, akkor priviben esetleg elküldhetnéd és megnézném. Mondjuk ma este még rá tudok nézni, utána csak a jövő hét közepén érek rá.
(Tudod, a dokihoz is el kell menni, a távdiagnosztika csak ritkán műxik.)
Üdv. -
Mutt
senior tag
válasz
alfa20 #44251 üzenetére
Szia,
PowerPivot-tal megy, az kinézettel csak annyi a gond, hogy a lenti képen az I-J oszlopot el kell rejteni ha zavaró.
Lépések:
1. Pivot létrehozásakor az adatmodelt is be kell pipálnod ahhoz hogy elérd a DAX függvényeket.
2. Megtervezed a Pivot-odat.
3. A mezőválasztónál a fejlécen jobb klikk, majd új mező létrehozása, aminek a képlete esetemben:=CALCULATE(SUM(Range[Value]);FILTER(Range;Range[Date (Year)]=MAX(Range[Date (Year)])))-CALCULATE(SUM(Range[Value]);FILTER(Range;Range[Date (Year)]=MIN(Range[Date (Year)])))
A mezőneveket a sajátod szerint add meg. A képlet feltételezi hogy csak 2 éved van, MIN/MAX.
4. Behúzód a helyére az új mezőt.
5. Csinosítgatsz.Alternatív megoldás:
Pivot melletti oszlopban képletekkel kiszámolod a különbséget. Itt figyelned kell arra, hogy a Pivot tud bővülni vagyis a fix hivatkozások miatt érdemes INDEX/MATCH és IFERROR-okat használni.Egy másik lapra kiteszed a Slicer-t és ott megint INDEX/MATCH párossal megjeleníted a végeredményt. Az eredeti lapot pedig elrejted.
Ezt hívják dashboard-nak. A lényeg a vizualizáció, a háttérszámítások egy "rejtett" helyen vannak, a fő lapon mindig csak a kívánt tartalom jelenik meg dinamikusan.
üdv
-
Taktoj
aktív tag
válasz
Fferi50 #44249 üzenetére
Köszia a tippeket, ezeket megcsináltam azon üres cellálkat hagytam meg amik szükségesek, feltéterles formázásokat töröltem, továbbá töröltem 10 ezer sort 10 oszlopot, igy maradt 4100 sorom s 20 oszlopom autoszűrővel, tábálázatnak formáztam nemrég..talán nem kellett volna?.. max 10 képlet van benne,s az egész egy fulet kulon lapra atmasoltam, hivatkozásokat eltávolitottam. Gyorsabb lett, de csak annyira hogy rámondhassuk. egy adatra amibol 18 db van a 4100 ból 45 másodpercig szűrte... a baj már nem is izgat csak hogy hogyan tudnék ebbol minimálisan használható dolgot csinálni, mentés sima xlsx lett.? biztos kihagytam valamit , de nem akarom újra csinálni
nem regelt 2016 on fut, ezt próbálgatom, de lehet jobban járok ha nem is veszem meg... inkabb visszatérek a gg tablazathoz?
-
alfa20
senior tag
válasz
Fferi50 #44250 üzenetére
Igen ezt ismerem, de nem boldogulok vele, mert az alaptáblában dátum szerint napi árbevételek vannak 2019 és 2020. A pivot rendezi egymás mellé év szerint az árbevételt.
És ide szeretnék egy változás oszlopot, mekkora a változás mértéke 2019-hez képest.
Ehhez az kellene, hogy a pivot 2019-es árbevételét kivonja a mellette lévő pivot 2020 árbevételéből. -
Fferi50
Topikgazda
válasz
Taktoj #44247 üzenetére
Szia!
Nézd meg légy szíves, hogy a képletekben milyen tartományok vannak. Egész sorokat vagy oszlopokat tartalmazó (pl. A:A) képletek lassítanak rendesen.
Feltételes formázás egész oszlopokra/sorokra szintén.
Nézd meg, hogy nincs-e olyan rendellenesség, hogy üres terület is használt területnek minősül. Ezt úgy lehet, hogy F5 - Irányított - utolsó cella. Ekkor láthatod, hogy az Excel melyik cellát tekinti utolsónak a munkalapon. Ha ez nem esik az érvényesnek gondolt területedre, akkor az utolsó használt sor és oszlop utáni tartományokat (külön - külön a kettőt) kijelölöd a végéig és törlöd.
Ezután csökkennie kell a méretnek és a számolási sebességnek is nőnie illik.
Üdv. -
Taktoj
aktív tag
sziasztok. Elképzelhető hogy egy makrómentes 10 ezer soros max 30 oszlopos táblázatban xlsb be mentve mérete 5MB, ha csak egy oszlopban van használva segádtáblából vett adat, annyira belassitja az excel hogy értékmásolás ..igaz 10ezer soros... percekig tar. A gép nem uj, de xeonos proci van benne 8 giga rammal ssd vel. lehet hogy mentési kimenetet kellene változtatni? vagy milyen akciók lassithatnak ennyire?
-
alfa20
senior tag
Sziasztok,
Van egy pivot táblám amiben előző és idei én egy adott időszakára mutatja az árbevételt különböző termék csoportokra. Olyat lehet valahogy, hogy ezen pivot tábla egy új oszlopába számolja az eltérést. Tehát a pivot tábla egyik oszlopát ki lehet vonni a másikból?
Ugyan ebbe a pivotba egy forgási sebességet is szeretnék számoltatni, de itt sem jöttem rá hogy egy sor adatait hogy tudnám felhasználni.A szeletelők miatt szeretném a pivotban elvégezni a számolást, ha lehet.
Köszi előre is a válaszokat.
-
Fferi50
Topikgazda
válasz
RedHarlow #44243 üzenetére
Szia!
Rendben. Néhány dolgot én is úgy feltételeztem, hogy nem láttam a mintád valódi helyzetét.
Ennek a képletnek már mennie kell szerintem:=HAHIBA(INDEX($O$1:$O$11680;HOL.VAN($T2;$B$1:$B$11680;0)+HA(DARABTELI($B$1:$B$11680;$T2)>OSZLOP()-21;OSZLOP()-21;-SOROK($O$1:$O$11682)));"NINCS TÖBB")
Egy kis magyarázat:
A HOL.VAN függvénnyel megkeressük az adott érték első előfordulását (ez sajnos lemaradt az előző képletből), ehhez adjuk a keresés sorszámát. Az első hozzáadás 0 lesz, hiszen a megtalált sorban lesz az első érték.
A -SOROK rész pedig azt garantálja, hogy amint megvolt a szükséges darabszám, hibás legyen az INDEX értéke.
És persze az is bejátszott, hogy fejléc volt az oszlopokban. A képletet az U2 cellába kell írnod és utána húzható le és jobbra is.
Remélem, így már jó lesz.Üdv.
-
RedHarlow
aktív tag
válasz
Fferi50 #44176 üzenetére
Sajnos még mindig nem oké.
B oszlop = Order numberek
O oszlop = szükséges adatok
T oszlop = Order numberek (ismétlődők eltávolítva)
U oszlop = képletU oszlop = 21 - 1 = 20
=HAHIBA(INDEX($O$1:$O$11680;HA(DARABTELI($B$1:$B$11680;$T2)>=OSZLOP()-20;OSZLOP()-20;0));"NINCS TÖBB")
Ezzel a képlettel U oszlop értéke valamiért a O oszlop fejléce lesz mindig. Az elhúzott képlet első oszlopa jó érték már, azonban még egyel elhúzva ugyan azt ismétli, nem írja ki se hogy NINCS TÖBB, se másik adatot.
-
Fferi50
Topikgazda
válasz
Morphy #44241 üzenetére
Szia!
A PrintArea szöveges változót vár, azaz a nyomtatási terület címét. Tehát a változód neve, mondjuk nyomtter, akkornyomtter="$A$1:$B$"
, illetve ha egy cellába teszed (ez legyen az X1), akkor a cella értéke legyen$A$1:$B$2
.
EzutánWorksheets("final").PageSetup.PrintArea=Worksheets("info").Range("X1").Value
vagy:Worksheets("final").PageSetup.PrintArea=nyomtter
Persze a nyomtter változód a feltételnek megfelelően kell beállítanod.
Ebben az esetben nem kell külön cellába kiírni a címet.
Üdv. -
Morphy
csendes tag
válasz
Morphy #44233 üzenetére
Na, az első részt és a mentési részt sikerült megoldanom. Már csak egy maradt:
Ha az info lapon az A1-be kerül adat, akkor a nyomtatási terület legyen a final lapon A1:B2
Ha az info lapon az A2-be kerül adat, akkor a final lapon A3:B4
Ha az info lapon az A3-ba kerül adat, akkor a final lapon A5:B6
....Egy külön cellába kihozom, hogy melyik területet nyomtassa, de a makrónál a .PageSetup.printArea -t nem tudom paraméterezni a váltózóval, mert béna vagyok.
Tudna valaki erre megoldást?
-
-
Mutt
senior tag
Annyi pontosítás, hogy ahogy nézem a sort könnyebben el lehet érni, vagyis a a kód rövidebb tud lenni.
illetve annyit finomítottam, hogy csak akkor frissít ha a linkedcell értéke nem jó.
Sub UpdateLinkedCells()
Dim sp As Shape
Dim rng As Range
Const sorEltol As Long = 0
Const oszlopEltol As Long = 7
For Each sp In ActiveSheet.Shapes
'az aktív lapon talált objektumok közül csak a jelölőnégyzeteket keressük meg
'hiba esetén menjünk tovább
On Error Resume Next
If sp.DrawingObject.progID Like "*CheckBox*" Then
'a jelőlőnégyzet a TopLeftCell.Column oszlopban található, a sort pedig TopLeftCell.Row adja meg
'a sor és oszlop azonosítókat csal akkor toljuk el a megadott értékkel ha ráférnek még a lapra
If sp.TopLeftCell.Row + sorEltol <= Rows.Count And sp.TopLeftCell.Column + oszlopEltol <= Columns.Count Then
Set rng = Cells(sp.TopLeftCell.Row + sorEltol, sp.TopLeftCell.Column + oszlopEltol)
'frissítsünk ha az új hely máshol van
If Intersect(rng, ActiveSheet.Range(sp.DrawingObject.LinkedCell)) Is Nothing Then
'mentsük át az új helyre az eddigi értéket
rng = ActiveSheet.Range(sp.DrawingObject.LinkedCell)
'töröljük a korábbi hely tartalmát
ActiveSheet.Range(sp.DrawingObject.LinkedCell).ClearContents
'linkeljük be az újat
sp.DrawingObject.LinkedCell = rng.Address
End If
End If
End If
On Error GoTo 0
Next sp
End Sub -
Morphy
csendes tag
Sziasztok!
Egyszerre két segítséget szeretnék kérni, mert egyszerűen nem boldogulok vele:
Két lap van a munkafüzetben, az info és a final.1.) Az Info lapon A1, A2, A3 és A4 cellában jelenhetnek meg adatok egy lista alapján. Amennyiben nem üres az A1 akkor szeretném a B1 cellákban lévő internetes cím hivatkozást egy a final lapon lévő képre tenni, hogy az PDF-ként mentve is kattintható legyen. A B1-ben lévő hivatkozás link változhat az A1 függvényében. Illetve ugyan ez igaz az A2, A3, A4-re is. Ha nincs adat az A oszlop valamelyikében, akkor abból a sorból nem kell másolnia.
2.)A final lapon lévő részt szeretném elmenteni pdf-ben, de úgy, hogy az előbb említett A1, A2, A3, A4 függvényében legyen kijelölve a nyomtatandó terület.
Pl: A1-be került adat, akkor a B1-ről másolja a linket a final egyik képére. Az A2 üres, de az A3 ismét adatot tartalmaz, így a B3-ről másolja a linket a final másik képére, az A4 szintén üres. A nyomtatási terület az A1 és a A3 által meghatározott rész lenne.
Pár napja már küzdök vele, de nem tudtam még bemakrózni.
Segítségeteket nagyon köszönöm!
-
Mutt
senior tag
válasz
darvak #44231 üzenetére
Szia,
...a Linkedcell cellákat beállítja az aktív munkafüzeten lévő összes beillesztett jelölőnégyzetre egységesen pl. 7 db cellával jobbra...
Próbáld ki a lenti kódot. A sorEltol és oszlopEltol állandókat változtatva tudod megadni, hogy mennyivel legyenek arrébb a kapcsolt cellák.
Sub UpdateLinkedCells()
Dim sp As Shape
Dim sor As Long
Dim rng As Range
Const sorEltol As Long = 0
Const oszlopEltol As Long = 7
For Each sp In ActiveSheet.Shapes
'az aktív lapon talált objektumok közül csak a jelölőnégyzeteket keressük meg
If sp.DrawingObject.progID Like "*CheckBox*" Then
'a jelőlőnégyzet a TopLeftCell.Column oszlopban található, de hogy melyik sorban azt
'csak a magassága alapján tudjuk megmondani
sor = getRow(sp.top + sp.Height / 2)
'ha megvannak sor és oszlop azonosítók, akkor toljuk el a megadott értékkel őket ha ráférnek még a lapra
If sor + sorEltol <= Rows.Count And sp.TopLeftCell.Column + oszlopEltol <= Columns.Count Then
Set rng = Cells(sor + sorEltol, sp.TopLeftCell.Column + oszlopEltol)
'mentsük át az új helyre az eddigi értéket
rng = Range(sp.DrawingObject.LinkedCell)
'töröljük a korrábi hely tartalmát
Range(sp.DrawingObject.LinkedCell).ClearContents
'linkeljük be az újat
sp.DrawingObject.LinkedCell = rng.Address
End If
End If
Next sp
End Sub
Function getRow(pos As Double) As Long
Dim c As Long
Dim h As Long
c = 0
h = 0
Do While pos > h
c = c + 1
h = h + ActiveSheet.Cells(c, 1).Height
Loop
getRow = c
End Functionüdv
-
darvak
senior tag
Sziasztok,
Active-X jelölőnégyzeteket használok, szeretnék egy makrót kérni, ami a hozzárendelt, azaz Linkedcell cellákat beállítja az aktív munkafüzeten lévő összes beillesztett jelölőnégyzetre egységesen pl. 7 db cellával jobbra.
A "7 cellás" eltolás példájával élve:
1 jelölőt megkeres és beazonosítja, hogy a bal felső sarka a B2 cellában van, akkor a Linkedcell-t beállítja hozzá B9-re.Valaki tudna segíteni?
Előre is köszönöm
-
Dr V
őstag
Sziasztok!
Hogyan lehet megoldani, h ha a cellába beírok egy számot elé beírjon megadott szöveget?
-
csferke
senior tag
Szia.
Siker
2. Ha igen, akkor kell egy szövegdoboz a formra, ahova tudja a felhasználó a szöveget gépelni és ezek után lehet visszamenteni az összefúzött szöveget a lapra.
Ezt a megoldást nem tudom használni mert a kérdéses Form-ot több helyen is használom. Úgymond egy univerzális Form. Nem volt kedvem minden egyes bevitelre külön-külön Form-ot készíteni
Ezt megcsinálod a mutatott makrórészlet előtt, majd jöhet amit mutattál. Ezzel a cella értéke a kiválasztott lesz - mivel pedig ezt használod Defaultként, az Inputboxban hozzá tudod írni a szükséges részt.
Így összejött és működik.Köszönöm
-
tomi_x
tag
Sziasztok!
Adott egy táblázat, amelyben egyes cellák adatait egy másik file-bol importálja.
A táblázatot viszont szeretné olyan valaki is megnézni akinek nincs meg a másik file.
Be lehet valahol állítani, hogy ne frissítsen és az adatokat lássa, ne a képletet ? -
J.Ani
friss újonc
válasz
Fferi50 #44217 üzenetére
Köszi... de.... Nem működik vagyis nem adja össze... Sajnos a lapfülek szerkezete nem egyforma, mert minden építésvezető másképp kéri. A laponkénti összeadás és azt összeadni az összesítő oldalon nem működig mert pl. Gipsz Jakabnak minden munkaterületen van egy nyilvántartása és ha szabin van akkor azt minden lapfülön fel van tüntetve... így többszörösen beíródna a szabadság. Az egyedi azonosító sem működik, mert az építésvezetőknek is át ell látni amit én most kitalálok... Szóval az kellene, hogy a lapfülenkénti DARABTELI függvényeket hogy tudnám összeadni?
-
Delila_1
veterán
FFeri ötlete szerint a DARABTELI függvényt minden lapon ugyanabba a cellába írd be.
Legyen ez a példában a B20.
Az összesítő lapon a 3 lap (KHT, XY, és Harmadik) lapon egy cellában 1 db képlettel összesítheted.=SZUM(KHT:Harmadik!B20)
Az első, és az utolsó lap nevét kell megadnod az összegzéshez. -
Fferi50
Topikgazda
Szia!
Egyrészt: mit jelent az, hogy nem működik? Papírforma szerint az összeadásnak működnie kell, ha az alapfüggvények működnek.
Másrészt: mi lenne, ha laponként ugyanabban az oszlopban összegeznéd a szabadságokat a Darabtelis képlettel majd minden lapból azt az oszlopot adnád össze az összesítő lapon.
(Persze ez majdnem ugyanaz mint a képletes összesítő, csak két lépésben. Talán nehezebb elrontani.)
Ha a dolgozó egyedi azonosítóját használnád, akkor a DARABHATÖBB függvény adna neked szerintem eredményt az összesítő lapon, persze ezt is laponként összeadva.
Ha a jelenléti ívek szerkezete ugyanolyan, akkor az Adatok - összesítés menüpontot is érdemes lenne megnézned.
Üdv. -
J.Ani
friss újonc
Halihó! Segítséget kérnék... Munkaidő nyilvántartás, több helyszín, kb 36-40 fő, így több lapfül melyeknek más-más neve van, egy oldalon kell összesíteni személyenként. Ezzel nincs is gond, csak az összesítőben fel kell tüntetni, hogy ki hány napot volt szabin vagy beteg... az Az alábbi képletet használtam: =(DARABTELI('KHT'!C2:C63;"SZ")), de mivel egy fő több munkaterületen is dolgozik a következő lapfülről így néz ki a képlet: =(DARABTELI('XY'!C5:AG5;"SZ"))... és így tovább... A kérdésem az hogy hogy tudom összehozni, hogy a lapfülenkénti képleteket összeadjam? Próbáltam így, de nem működik:
=(DARABTELI('KHT'!C2:C63;"SZ"))+(DARABTELI('XY'!C5:AG5;"SZ")) -
-
Mutt
senior tag
válasz
csferke #44210 üzenetére
Szia,
A Beviteli formon csak AC listából választasz, vagy van ott még több dolog is?
1. Ha nem, akkor jobb megoldás az Adatérvényesítés opciót használni.
2. Ha igen, akkor kell egy szövegdoboz a formra, ahova tudja a felhasználó a szöveget gépelni és ezek után lehet visszamenteni az összefúzött szöveget a lapra.üdv
-
Mutt
senior tag
válasz
bitpork #44208 üzenetére
Szia,
Próbáld ki ezt az UDF-et:
Function RemainingDays(keydate As Date, Optional period As Long = 180, Optional maxdays As Long = 42) As Long
Dim wsRoutes As Worksheet
Dim c As Long
Dim ElapsedDays As Long
Dim LastRow As Long
Dim travelDays As Long
Set wsRoutes = ThisWorkbook.Sheets("Ark1")
With wsRoutes
LastRow = .Range("C" & Rows.Count).End(xlUp).Row
Dim splitDate
Dim travelStart As Date
Dim travelEnd As Date
'loop thorugh travel dates to find matching records
For c = LastRow To 2 Step -2
'separate merged travel start & end dates
splitDate = Split(.Cells(c, "C"), "-")
'check only arrays with 2 elements
'split generates 0-based arrays
If UBound(splitDate) = 1 Then
'try to convert strings to date
travelStart = DateSerial(Right(Trim(splitDate(0)), 4), Mid(Trim(splitDate(0)), 4, 2), Left(Trim(splitDate(0)), 2))
travelEnd = DateSerial(Right(Trim(splitDate(1)), 4), Mid(Trim(splitDate(1)), 4, 2), Left(Trim(splitDate(1)), 2))
'find the row which has travel start earlier then given keydate
If travelStart <= keydate Then
'Debug.Print "KeyStart: " & keydate - period & " KeyEnd: " & keydate
If travelEnd >= keydate - period Then
travelDays = travelDays + .Cells(c, "L")
'Debug.Print vbTab & "Row: " & c & " TravelStart: " & travelStart & " TravelEnd: " & travelEnd & " Days: " & .Cells(c, "L")
End If
End If
End If
Next c
RemainingDays = maxdays - travelDays
End With
End FunctionHasználata pedig annyi, hogy megadsz neki egy dátumot és ő az Ark1 füzeten alulról felfelé haladva megkeresi, hogy az utazások alapján melyik sorok L-oszlopbában lévő számokat kell összegezni.
Ha nem egy mezőben lennének szövegként az utazási dátumok felsorolva, hanem különálló rekordonként akkor egy SZUMHATÖBB is elég lehet. Feltételezve, hogy a problémát jól értettem.
üdv
-
Fferi50
Topikgazda
válasz
csferke #44210 üzenetére
Szia!
"Az AC1:AC12 listából egy Form-al kérném az adatot BeviteliForm.Show de így mindjárt beírja a kiválasztott fix részt és nem tudok hozzáírni."
Ezt megcsinálod a mutatott makrórészlet előtt, majd jöhet amit mutattál. Ezzel a cella értéke a kiválasztott lesz - mivel pedig ezt használod Defaultként, az Inputboxban hozzá tudod írni a szükséges részt.
Üdv. -
csferke
senior tag
Szia Mutt!
Csak most jutottam oda, hogy megnézzem amit küldtél. Sajna nem boldogulok vele.
Eddig így használtam. Az E19-be csak 1-2 féle adatot kellet bevinni és azt is csak pár szavat.Range("E19").Select
Default = ActiveCell.Value
MyValue = InputBox(Prompt, Title, Default, xpos, ypos)
ActiveCell = MyValueMivel időközben az E19 cellába írandók igencsak kibővültek és hosszabbak is lettek azt szeretném elérni, hogy egy legördülő listából (AC1:AC12) válasszam ki a fix részt. Azonban ehhez a fix-hez többször még hozzá is kellene fűzni valami szöveget.
Az AC1:AC12 listából egy Form-al kérném az adatot BeviteliForm.Show de így mindjárt beírja a kiválasztott fix részt és nem tudok hozzáírni.
Valahogy/valahol itt be szeretnék kérni/írni szöveg-et is InputBox-al és a végén
ActiveCell = MyValue & " " & szovegköszi
-
Mutt
senior tag
válasz
sutyesz96 #44204 üzenetére
Szia,
get.cell függvényt hogy tudom elérni magyar nyelvű excelben?
A GET.CELL egy Excel 4 makró függvény, magyar neve CELLÁT.VESZ
2 módon tudod elérni:1. Hozz létre egy Excel 4.0 makrólapot, majd ott normál módon tudod haználni.
2. Névkezelőben hozz létre egy új formulát,a képlete:
=CELLÁT.VESZ(20;!A1)
Ahol 20-as a képlet paramétere esemben, amely igazat ad vissza ha félkövér betűtípus van a cellában. A !A1 pedig egy relatív hivatkozást fog takarni, ha B1-en állva hozod létre a névkezelőben a képletet, akkor mindig a cellától balra lévő cellát fogja kiértékelni.B1-ben a képlet csak ennyi:
=getcell
üdv
-
Sziasztok!
Kellene nekem egy kis segítség. Természetesen nem ingyen - lévén nem egyszerű a dolog, már ha egyáltalán meg lehet excelben oldani!
Adott ez a tábla.A problémám a következő.
C oszlop -önmagunknak megjegyzés dátum szerint mikor volt az utazás.
D oszlop -hazautazás napjainak száma
E oszlop -utazás típusa, de mint ilyen lényegtelen
G oszlop -Hónap amikor a napok el lettek költve utazással
H oszlop -hónap hosszúsága napokban
I oszlop -hónapok napjainak összesített száma
L oszlop -napok amiket otthon töltök
N oszlop -otthon töltött napok számaEnnyiből kellene kiszámoltatni, hogy tetszőleges 180 nap alatt (a tetszőleges itt állítható választhatóságot jelentene ha van rá lehetőség) mennyi időt lehet hazautazással otthon tölteni. Ez az érték nem haladhatja meg soha a 42 napot.
Tehát ha tudom h az utolsó 6 hónapban 38 napot voltam otthon akkor megkaphassam a 42(max)-38(már eltöltött otthoni szabadnapok számát)=4 (még felhasználható hazalátogatás) számát. Ezt meg lehet oldani excelben?
Még egyszer hangsúlyozom - ha ez nekem 1-2-3ezer fortintba kerül akkor vállalom a segítség ellentételezését.MOD
Ha valaki tud segíteni itt kérem jelezze és privátban névvel számlaszámmal várom
Köszönöm szépen előre is!
-
sutyesz96
őstag
sziasztok!
get.cell függvényt hogy tudom elérni magyar nyelvű excelben?
köszi előre is!
-
Mutt
senior tag
válasz
benjoe1 #44180 üzenetére
Szia,
Makrómentesen 2 megoldás:
1. A Projektneveket egy Kimutatással soroltam fel alul.
2. B10-ben ez a csúnya tömbképlet van.=HA(A10<>"";SZÖVEGÖSSZEFŰZÉS(";";IGAZ;HA(ELTOLÁS($B$1;HOL.VAN($A10;$A:$A;0)-1;;;DARAB2($1:$1)-1)>0;ELTOLÁS($B$1;0;;;DARAB2($1:$1)-1);""));"")
Kell hozzá Excel 2016-tól elérhető SZÖVEGÖSSZEFŰZÉS, a végén CSE-t kell nyomni. Másold le sokszor, hogyha új projekt jön akkor automatikusan megjelenjen. Ha az oszlopok száma nem bővül (vagyis nem hétről-hétre adjátok hozzá őket, akkor a második ELTOLÁST le lehet cserélni fix tartományra, pl. $B$1:$BA$1-re)
2. Excel 2010-től van Power Query, amiben kb. 10 lépés. A lényeg az ún. UNPIVOT (magyarul elemi értékre bontás).
üdv
-
lappy
őstag
válasz
Darko_addict #44201 üzenetére
Szeretnél egy jelenléti ívet csinálni amiben benne vannak az emberek nevei adott hónappal és azt akarod kinyomtatni?
-
Darko_addict
őstag
Sziasztok!
Office 365 keretében a legfrissebb Excel verziót használom.
Van egy havi jelenléti ív, amit eddig mindig kinyomtattak 40 lapon, majd kézzel írták fel az emberek nevét rá és húzták ki a hétvégéket, hogy nehogy valaki elrontsa (félreírja). Kb. 30 perc megcsinálni... Csináltam egy Excelt, megszerkesztettem, ahogy elvárják (ők csak fénymásolták, nem volt meg az eredeti...), majd másik munkafüzetbe leírtam az emberek neveit és az elsőbe csináltam egy legördülő listát. Úgy tudom, hogy a legördülő lista alapján úgy tud minden név mellé "saját" jelenlétit csinálni, ha ez makróban van megadva. A makrókhoz semmit nem értek...
Ezt találtam:
Sub Iterate_Through_data_Validation()
Dim dvCell As Range
Dim inputRange As Range
Dim c As Range
'Which cell has data validation
Set dvCell = Worksheets("Munka1").Range("A1")
'Determine where validation comes from
Set inputRange = Evaluate(dvCell.Validation.Formula1)
For Each c In inputRange
dvCell = c.Value
'add some print page code here
Next c
End SubDe nem hajlandó nyomtatni. Fórumposztban ez szerepelt angolul (csak hogy autentikus legyen az információ): "You will have to add the print code inside the for/each/next loop". A Print Code-ról semmit nem találtam. Ki tudunk valamit találni közösen?
Köszi szépen!
Új hozzászólás Aktív témák
Hirdetés
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- Samsung Odyssey G6 S27BG650EU - 27" QHD 2K 240Hz Ivelt - Gaming monitor - 1,5 év Gyári garancia
- BESZÁMÍTÁS! ASUS ROG STRIX X570-E Gaming alaplap garanciával hibátlan működéssel
- Iphone 16E 128GB Fekete Bontatlan 24 Hónap Garancia
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest