-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Sprite75
tag
Sziasztok
A képen látható séma szerint van egy nagy táblázatom. Azt szeretném megoldani hogy a B táblázatból másolja át automatikusan (függvény vagy makró) az ugyanazon rendszámokhoz tartozó adatokat (dátum, sofőr neve, km állás mennyiség) az A1 vagy az A2 táblázatba (A1 az egyik, A2 a másik rendszám táblázata stb)
Fkeres-el próbáltam de az az első "találat" melletti cellákat másolja mindig. Makróval is próbáltam de azzal sem ment.
Segítséget előre is köszi -
Sprite75
tag
válasz Delila_1 #17940 üzenetére
Az előbbi. Az A1 A2 táblázatok külön külön munkalapon vannak. Ezekben már benne vannak az előző havi tankolások. Az e havi tankolások egy B formátumú táblázatban gyűlnek egész hónapban aztán hónap végén át kéne rakni rendszámonként külön munkalapra ahol további számítások vannak járművenként (átlagfogyasztás havi összesítés stb) Eddig járművenként másolgattam és ezt szeretném könnìteni, automatizálni
[ Szerkesztve ]
-
Sprite75
tag
válasz Delila_1 #17947 üzenetére
Nem csak 3 munkalapom van hanem kb 30 Van olyan hónap hogy a 30 járműből pl 10 nem tankol abban a hónapban. A példámban B táblázatnak nevezett "lista" munkalapjának a neve "szerkeszt" A járművek külön külön munkalapon vannak, ezek nevei az adott jármű rendszáma A képen amit felraktam csak példa adatok vannak
-
Sprite75
tag
válasz Delila_1 #17954 üzenetére
Ezt a sort jelzi hibának
usorLap = Sheets(lapnev$).Range("A" & Rows.Count).End(xlUp).Row + 1
Biztosan működne ez csak én nem vágom ezt a macro dolgot.Lehet hogy az is gond, hogy a "példában" amit felraktam A és B neveket adtam a táblázatoknak.
Esetleg elküldhetném neked a konkrét táblázatot valahová? -
-
Sprite75
tag
Sziasztok
A következő lenne a gondom amivel nem boldogulok.Az M8 tól kezdődően lefelé ki kellene számoltatnom a havi futott Km-eket.
Összesen kb 30 járműről lenne szó és mindegyiknek így néz ki a munkalapja.
Valahogyan a hónapok száma alapján kellene az adott hónap utolsó tankolási Km-ét kivonni az előző hónap utolsó tankolási Km-éből. Csakhogy a havi tankolások darabszám, vagyis az egy hónaphoz tartozó sorok száma mindig változó, ahogy a képen is látszik.
Ennél az autónál pl a 7. havi futott km a D19-D16, a 6. havi km D16-D14, az 5. havi D14-D9 stb.Az átlagfogyasztás átlagha, a tankolt mennyiség szumha függvénnyel { =SZUMHA($G:$G;J8;$E:$E) } van megcsinálva. De ezzel a futott Km-es dologgal nem boldogulok.
Előre is köszi a szegítséget[ Szerkesztve ]
-
Sprite75
tag
válasz Sprite75 #19062 üzenetére
Valami megoldásfélét találtam, bár nem teljesen jó:
{=MAX(HA($G:$G=J14;$D:$D))-(M8+M9+M10+M11+M13+M12+$K$2)}A havi legnagyobb km-ra állásból kivonja ez előző havi értékeket minusz az előző évi záró km-óra állást.
Ez majdnem jó megoldás akkor ha van minden hónapban tankolás, de pl ennél az autónál is a februárnál minusz érték jönne ki ha a semmiből kivonja a januári futott km-ert. Ja és még azoknál a hónapoknál is hülyeséget számol ami még hátra van az évből. (8,9,10,11,12 hó)Szóval finomítani kellene a dolgon, vagy ha valakinek teljesen más ötlete van azt is szívesen fogadom
-
Sprite75
tag
válasz Sprite75 #19063 üzenetére
Bonyolítás
{=HA(MAX(HA($G:$G=J14;$D:$D))=0;0;MAX(HA($G:$G=J14;$D:$D))-(M8+M9+M10+M11+M13+M12+$K$2))}
Ha a D oszlop vizsgálatának eredménye 0 mert nincs abban a hónapban tankolás akkor az adott hónap cellaértéke 0 egyébként pedig elvégzi az előbbiekben leírtakat.
Kicsit hosszú a képlet de működik -
Sprite75
tag
Nekem ez magas mint malacnak a zsiráfvályú.
Beraktam az M8 ba majd másoltam lefelé. Valami hiba lehet benne mert a márciushoz a M10-be nem ír semmit, viszont az utána következő hónapokat jól számolja.Közben Delila_1 -től kaptam egy ilyet privátban és ez jól működik.
M8
=HAHIBA(HA(DARABTELI(G:G;J8)>1;INDEX(D:G;HOL.VAN(J8;G:G;1);1)-K2;INDEX(D:G;HOL.VAN(J8;G:G;0);1)-INDEX(D:G;HOL.VAN(J7;G:G);1));"")
M9-től pedig
=HAHIBA(HA(DARABTELI(G:G;J9)>1;INDEX(D:G;HOL.VAN(J9;G:G;1);1)-INDEX(D:G;HOL.VAN(J8;G:G;1);1);INDEX(D:G;HOL.VAN(J9;G:G;0);1)-INDEX(D:G;HOL.VAN(J8;G:G);1));"")
A kettő közül egyiknek a működését sem értem teljesen de azért a segítséget köszönöm.
-
Sprite75
tag
Sziasztok
Adott egy ilyen adathalmaz.
Az A oszlopba kellene automatikusan kiíratnom hogy a B oszlopban szereplő jármű melyik kategóriába tartozik: Személy, Telep, Hússzállító stb. a B oszlop tartalma minden hónapban változik, pl kimarad néhány rendszám a listából vagy új kerül be ami az előző hónapban másképp szerepelt.Nem találok semmi olyan függvényt ami pl egy lista alapján meghatározná hagy pl a B3 ban lévő jármű melyik kategóriába tartozik és aztán az eredményt kiírná az A3-ba.
Remélem van valakinek ötlete erre.
Üdv Gabi
-
Sprite75
tag
Azért van most így hogy IFA személyszállító mert még manuálisan nem javítottam át az A oszlopot.
Azt gondoltam hogy kellene egy ilyen adatbázis, azt meg is tudnám csinálni mondjuk ennek a lapnak egy olyan részén ami mindig megmarad, merthogy a sorok száma, hogy épp hány jármű van az is változik havonta.
De mi lenne a képlet ami megállapítja hogy az milyen típusú jármű? -
Sprite75
tag
válasz Fferi50 #30049 üzenetére
Ha jól gondolom az fkeres-es nekem nem jó mert a tábla ahol keres ez nekem a B oszlopnál kellene hogy kezdődjön és akkor a függvény vagy a B oszlopban lévő adatot tudná kiírni vagy mondjuk a C oszlop ban lévő cellát ha a pl a táblának B -t adok meg
pl a fenti képben ami felraktam =FKERES(G3:G6;B;1
(ha G3:G6 területre rakok egy adatbázist a lehetséges keresendő értékekkel)
-
Sprite75
tag
Sziasztok
Ismét szeretnék egy kis segítséget kérniAdott a képen látható két táblázat.
Az szeretném elérni, hogy ha a Kútkönyv lapon beírok egy dátumot a D2 cellába akkor az Eredeti lap A és E oszlopából kerüljön be az ahhoz a naphoz tartozó rendszám ill tankolt mennyiség a Kútkönyv lap 20 as sorától kezdődően. Valamint a Kútkönyv C10 és C14 cellába kellene kerülnie pl ha 2016.02.03-t nézem akkor az Eredeti lap I118 és H121 cellában lévő adat. tehát az az naphoz tartozó nyitó mennyiség és a napi kiadott mennyiség.
Ezt a kútkönyv lapot aztán minden napra ki kell nyomtatnom és lefűznöm.
Eddig havonta egyszer csináltam meg és élég sokáig tart sima másolással megcsinálni. -
Sprite75
tag
válasz Delila_1 #30445 üzenetére
Nekem is van már két éve egy jó kis üzemanyagos táblázatom hála Delila_1-nek.
Erre a problémára tudnál esetleg valamit?
30426 hozzászólás -
Sprite75
tag
Sziasztok
Ha már valaki tett fel hasonló kérdést akkor előre is elnézést kérek de nem találtam.
A problémám az lenne, hogy a képen látható táblázatban pl a C2 cellában ahol 0# szerepel szeretném ha inkább üresen maradna a cella, ha a INDEX HOL.VAN függvény kombináció a táblázat Rendelés fülén ahonnan az adatokat szedné csak üres cellát talál.
Ezt majd nyomtatni kellene és úgy jobban áttekinthető lenne a nyomtatott lap ha a nem lennének tele 0-ával azok a cellák ahol nincs rendelés felvéve.
A C2 képlete
=INDEX(Rendelés!$C$4:$AX$108;HOL.VAN($A$2;Rendelés!$A$4:$A$108;0);1)
Előre is köszi
[ Szerkesztve ]
-
Sprite75
tag
Üdv
Olyat lehet szerintetek hogy az éppen kijelölt cella ahová írni akarok más színű legyen mint a többi? Ha pedig megvolt az adatbevitel álljon vissza az eredeti színére?
-
Sprite75
tag
válasz Sprite75 #32336 üzenetére
Delila egy korábbi írását felhasználva használva
[link]csináltam egy olyan oszlopot ahová kiírja egy sorban történt utolsó módosítás idejét.
Így:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C4:AY108"), Target) Is Nothing Then
Cells(Target.Row, 52).Value = Time
End If
End SubAztán ezt továbbgondolva szerettem volna megoldani hogy az épp kijelölt cella más színű legyen (a cellába íratott 1-est felhasználva a feltételes formázással) de nem teljesen jó a dolog.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("C4:AY108"), Target) Is Nothing Then
Cells(Target.Row, 54).Value = "1"
End If
End SubVagy teljes nem jó az elképzelés?
[ Szerkesztve ]
-
Sprite75
tag
válasz Delila_1 #32338 üzenetére
Alakul
Annak a cellának a színét szeretném változtatni ami épp ki van jelölve, nem pedig azét ahová az időt írja.
Azért szeretném mert ez egy rendelés felvevő táblázat lenne és jó lenne ha feltűnő lenne, hogy épp hol épp melyik az aktív cella, nehogy rossz oszlopba írja az adatot aki használja.
Tehát a pl a képen látható AX15 cella színének kellene változni amíg ki van jelölve
-
Sprite75
tag
válasz Delila_1 #32340 üzenetére
Már megint 10000 hála
Akkorát nevettem, a kollégák azt kérdezték, hogy neked meg mi bajod van?
A másik kódot ami meg az időt írja be kijelölt sor 52. oszlopába azt csak beillesztem ez után a kód után és úgy jó?
Mert most ezt megtettem és eddig nincs hiba.[ Szerkesztve ]
-
Sprite75
tag
-
Sprite75
tag
válasz Teo.papa #32355 üzenetére
Próbálgattam kicsit.
Nekem 2013-as van ugyan de win 10.Kiraktam vagy 30 ikont a gyors elérésre, amiből kb 25 látható is volt egyszerre. Ha vagy a monitor felbontását változtattam vagy a a képernyő beállításoknál a szöveg, az alkalmazások és más elemek méretét változtató csúszkát állítottam akkor változott a látható ikonok száma.Ha ez a két érték nálad mindkét laptopon egyforma akkor sajna más ötletem nincs.
-
Sprite75
tag
válasz Delila_1 #32352 üzenetére
Átolvasgattam mindent amit annak idején Fferi50 - el írogattatok ezzel kapcsolatban, és végül is sikerült úgy, hogy a munkalapon tudok használni feltételes formázást úgy hogy a "célkereszt" is jól működik.
Egy kis összefoglaló ha valakinek később kellene
Ezt a kódot kell a Munka1 kódlapjára
Public fmtcondis As New Collection
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ujfmtr As FormatCondition, ujfmtc As FormatCondition, ujfmtt As FormatCondition
On Error Resume Next
If IsError(Target.Cells.Count) Then Exit Sub
On Error GoTo 0
If Target.Cells.Count <> 1 Then Exit Sub
If fmtcondis.Count > 0 Then
On Error Resume Next
For Each fmt In fmtcondis
fmt.Delete
fmtcondis.Remove 1
Next
On Error GoTo 0
End If
With Target
With .EntireRow
Set ujfmtr = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
With ujfmtr '.FormatConditions(1)
With .Borders(xlTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
.SetFirstPriority
End With
End With
fmtcondis.Add ujfmtr, "fmt1"
With .EntireColumn
Set ujfmtc = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
With ujfmtc '.FormatConditions(1)
With .Borders(xlLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
With .Borders(xlRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 5
End With
.Interior.ColorIndex = 20
.SetFirstPriority
End With
End With
fmtcondis.Add ujfmtc, "fmt2"
Set ujfmtt = .FormatConditions.Add(Type:=xlExpression, Formula1:="1")
ujfmtt.Interior.ColorIndex = 36
ujfmtt.SetFirstPriority
fmtcondis.Add ujfmtt, "fmt3"
End With
End SubEzt pedig a ThisWorkbook -ra
Public kilepo As Boolean
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If kilepo Then Exit Sub
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Valóban kilép?", vbQuestion + vbYesNo, "Bezárás") = vbNo Then
Cancel = True
Else
valasz = MsgBox("Menti a változásokat?", vbQuestion + vbYesNoCancel, "Bezárás")
If valasz = vbCancel Then Cancel = True: Exit Sub
If Munka1.fmtcondis.Count > 0 Then
For Each fmt In Munka1.fmtcondis
fmt.Delete
Munka1.fmtcondis.Remove 1
Next
End If
If valasz = vbNo Then
ThisWorkbook.Saved = True
kilepo = True
Else
kilepo = True
ThisWorkbook.Save
End If
End If
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Munka1.fmtcondis.Count > 0 Then
For Each fmt In Munka1.fmtcondis
fmt.Delete
Munka1.fmtcondis.Remove 1
Next
End If
End Sub
Private Sub Workbook_Open()
Application.ScreenUpdating = False
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -1).Select
Application.ScreenUpdating = True
End SubÍgy ez a célkereszt a kijelölt cellára a Munka1 nevű lapon működik.
Ha pedig ugyanezen a lapon feltételes formázást is kell használni akkor az itt leírtakat kell alkalmazni.
Még egyszer köszönöm Delila_1 és persze Fferi50
-
Sprite75
tag
válasz Sprite75 #32376 üzenetére
Még egy apróság.
Azon a munkalapon amin fut ez a célkeresztes dolog nem működik a visszavonás gomb.
Fferi50 vagy Delila_1 szerintetek leht ezzel valamit kezdeni?
A gomb szürke lesz amit beírok valami adatot és ütök egy entert.
Az én esetemben azon a lapon ahol ezt szeretném használni a célkeresztes makrót a fejléc és az első két oszlop zárolva lenne arra a területre ahová pedig a rendeléseket írná a kolléga csak számokat írhat. Tulajdonképpen nem tud olyan cellát módosítani ami fontos lehet, (pl szumma a lap alján stb) így nem is biztos hogy valaha szükség lenne a visszavonás gombra, de ha mégis működne az is az lenne az igazi.
-
Sprite75
tag
válasz Sprite75 #32380 üzenetére
Átgondoltam. Mégis lehet hogy jó lenne a visszavonás gomb, mert mi van akkor ha a kedves koléga tévedésből egy már előzőleg beirt rendelést módosít de nem tudja hogy mi volt abban a cellában, akkor jól jönne a visszavonás. Vagy esetleg olyat lehet már egy előzőleg beítr adatot csak egy figyelmeztető ablak megjelenése után lehessen átírni?
-
Sprite75
tag
válasz Fferi50 #32381 üzenetére
És ezt is bonyolult megcsinálni hogy a C4 AY108 területen ha már van adat (1-300 ig) akor azt ne lehessen módosítani csak ha egy figyelmeztetést le ok-z a felhasználó. Ezen a területen csak az üres cellékat lehessen módosítani figyelmeztetés nélkül.
Ui
ha valakinek sikerül megoldani vendégem egy jó tyúk pörire.
Cím privátban
Pöri -
Sprite75
tag
válasz Sprite75 #32383 üzenetére
Ilyet már találtam de ez ugye minden változáskor figyelmeztet jelenleg A1 és C10 között. Ez lehet úgy átírni hogy csak akkor figyelmeztessen ha az adott cellában már volt valami szám 1-300ig?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:C10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
MsgBox "Cell " & Target.Address & " has changed."
End If
End SubEz a táblázat minden reggel egyébként üres lenne, úgy vennék fel az aznapi rendeléseket.
[ Szerkesztve ]
-
Sprite75
tag
válasz Fferi50 #32392 üzenetére
Hello
Az ez előző összefoglaló írásomban nem írtam, hogy egy ilyent is raktam bele
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C4:AY108]) Is Nothing Then
Cells(Target.Row, 52).Value = Time
End If
End SubEzt a Munka 1 kódlapjára írtam, de most , hogy bemásoltam azt is amit csináltál hibát ír, ha oda akarom berakni.
Próbálgattam többféle módon de nem sikerült. Össze tudnád hegeszteni a két kódot?
E nélkül működik amit írtál, nagyon szuper, de arra lenne lehetőség hogy úgy jelenjen meg a figyelmeztetés, hogy azért valahogyan tudja módosítani a cella értékét ha pl hibás éréket írt be a felhasználó vagy pl a megrendelő módosítaná a rendelését.
Eddig volt érvényesítés is beállítva a C4 AY108 területre de most azt kivettem, mert ha jól látom akkor a kód ezt is figyeli.
Viszont ha pl tévedésből szöveget írokilyen hibát ír kiBocsi hogy ennyit akadékoskodok de te nem ismered mire képes a munkahelyemen Pali bácsi aki majd használná ezt a táblát
Köszi előre is
[ Szerkesztve ]
-
Sprite75
tag
válasz Fferi50 #32408 üzenetére
Nagyon szuper köszi.
A Célkeresztes makróval kombinálva nagyon vagány.
Mondhatnám, hogy Pali bácsi biztos (az majdnem olyan mint az atombiztos de itt szigorúbbak a követelmények.)Hiba nélkül dolgozik, nagyon köszönöm.
Majd holnap élesben Pali bácsi is teszteli Ő képes egy 3*3 as táblában legalább 10 hibát találni vagy kreálni. A múltkor azzal a furcsa jelenséggel találkozott hogy a win asztalon minden ikon több példányban jelent meg.
Megoldottam a problémáját, levettem a billentyűzet sarkáról a CTRL ról egy iratos mappátSzóval holnap teszt.Küszi még egyszer
Üdv -
Sprite75
tag
Szasztok
Keresgéltem itt a fórumban de nem találtam a választ a következőre
Van egy táblázatban BA5A109 terület, amibe megjegyzéseket (szöveget) írnak.
Összesen eből a 104 cellából naponta kb 5-6-ba. Következő nap pedig lehet hogy másik 5-6 cellába ezek közül.Az eszen a területen található szöveges információkat szeretném összefűzve megjeleníteni ugyanennek a táblázatnak egy másik lapján egy adott cellába.
Lehetséges ez. Az összefűz -el ha jól tudom csak 30 cella tartalmát lehet megoldani, így gondolom az nem megoldás. -
Sprite75
tag
válasz Fferi50 #32870 üzenetére
Köszi. Megpróbálom úgy akkor az összefűzzel. A szűrős módszer sajna nem jó mert aki használja annak bonyolult lenne. Azt a lapot amire az összefűzést csinálnám naponta többször is nyomtatják. Ez alap egyébként tartalmazza az aznap felvett megrendeléseket összesítve és ide szeretném a rendelésekhez írt esetleges megjegyzéseket.
-
Sprite75
tag
válasz Pakliman #32882 üzenetére
Hello
Ott a pont
Köszönöm szépen.A Rendelés fülön ha beírnak valamit a "BA" megjegyzés oszlopba azok a beírások megjelennek a Összesítve fülön az aznapi rendelések összesítésével együtt, amit már lehet is nyomtatni.
Összesen 105 megrendelő van, de a gyakorlatban kb 5-6 bolthoza van írva megjegyzés naponta, így bőben elfér az Összesítve fül Megjegyzések cellájában.Köszönöm még egyszer, hátha később hsznos lesz másnak is .
-
Sprite75
tag
Sziasztok
Biztos megint egyszerűt kérdezek, de nem találom, hogy hogyan lehet azt megcsinálni, hogy ha pl
A1-A12 területre érvényesítéssel meg van csinálva, hogy a csak Januártó-Decemberig lehessen a hónapokat kiválasztani, akkor mikor kiválasztok egy hónapot a mellette lévő cellába B1-B12 részre írja be számmal, hogy az hanyadik hónap.Persze HA fügvénnyel meg egy segédtáblázattal megcsináltam de nem elegáns
Új hozzászólás Aktív témák
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Bitdefender Total Security 3év/3eszköz! - "Tökéletes védelem most kedvező áron..."
- Eredeti Windows, telepítéssel! Digital Doctor Számítógép Szerviz
- AKCIÓ! - STEAM kulcsok /Anuchard, Aragami, Children of Morta, stb. - 2024.04.17.