Hirdetés
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- eBay-es kütyük kis pénzért
- GoodSpeed: Márkaváltás sok-sok év után
- D@reeo: Pi-hole és a Telekom Sagemcom F@st 5670 DNS beállítása
- N€T0X|N: Poloskahegy
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- bb0t: Ikea PAX gardrób és a pokol logisztikája
-
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
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#5899
üzenetére
Köszönöm a linket, csináltam már ilyent.
Viszonylag sok apró makrót használok, legalábbis ahhoz sok, hogy egyforma legyen az ikonok kinézete. -
válasz
Delila_1
#5898
üzenetére
Hali!
Először nekem sem volt szimpatikus a Office 2007 csomag, mivel a jól megszokott menürendszert lecsérélték, de aztán jobban megismerve, nagyon is logikus az, csak szokni kell.
Az adatsávokkal nagyon egyszerű dolgozni, lehet variálni tetszés szerint a színeket: [link]
Az ikonok az más tészta, eddig még nem fordult meg a fejemben, hogy saját ikonok legyenek a "gyári"-ak helyett/mellett, de megint egy remek ötletet/fejtörőt adtál, utánanézek, aztán ha jutok valamire, akkor írok...
Fire.
UI: Hát ez nem tartott sokáig, elméletileg nem lehet saját ikont használni, de addig is egy kis olvasni való, főleg a VB kód lehet érdekes számodra, ott egy kis betekintést nyújtanak a használatukhoz. persze nem adom fel, mert ha megtalálom, hogy melyik fájlban tárolják az ikonokat, akkor azt ki is tudom bányászni ill. módosítani és esetleg új ikonokat hozzáadni anélkül, hogy az excel reklamálna. Jó ötletet adtál...
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#5896
üzenetére
Nagyon nem szeretem a 2007-es verziót, de azt meg kell adni, hogy az adatoknál, amik a torta diagram fölött vannak, nagyon mutatós a cella színezése a tartalom szerinti mértékben.
Más fórumon is kérdeztem már, de nem sikerült rájönni, hogyan lehetne a saját ikonjaimhoz saját rajzot rendelni. Az már összejött, hogy az Excel ízlése szerinti képet csatoljak hozzájuk, de ez nem nagyon felel meg a céljaimnak, nem jellemzőek a makrók tartalmára. Te ezzel a verzióval dolgozol. Nem tudod a megoldást? Vagy megszüntették ezt a kényelmi funkciót? -
Garffi
tag
Mindenkinek köszönöm szépen a hozzászólást.
A csatolásoknál csak átirányítottam hogy melyik fájlba keresse és SIKER!

-
válasz
Delila_1
#5895
üzenetére
Hali!
Nézd, ha valóban sok munkafüzetről van szó, akkor egyértelmű adatkapcsolato(ka)t létrehozni, mert valóban az az ésszerű megoldás. Viszont ha személy szerint nekem lenne az a feladatom, hogy 2db munkafüzetet kell kezelni biztosan nem foglalkoznék a kapcsolatokkal. Ez ilyen "szakmai ártalom" vagy hasonló.
Mivel (többek közt) adatbázis-kezelőket írok, adatbázist tervezek/építek ezért nem használom ezt a fajta külső munkafüzetes megoldást, mert egy összetettebb adatbázis esetén(25-30 tábla) egyszerűen követhetetlen lenne. Az excel-t "csak" mint megjelenítő eszközt használom, ami a pl hálón megosztott adatbázist jeleníti meg. Az adatbázis-kezelő szoftver végez el minden olyan műveletet, amely által létrehozott eredménytáblák adatait átvéve az excel a user felé "érthetővé" áttekinthetővé stb stb teszi...Szóval sokszor a fentiekből adódóan másképp közelítek egy adott "problémához", és egész másképp oldok meg dolgokat, mint ahogy azt a "szakkönyvekben" le vagyon írva...
Van amikor jó, de van amikor rossz, mert néha túl bonyolultan közelítem meg a dolgot, holott van rá roppant egyszerű(a "szakkönyvben" is szereplő) megoldás.
De ez már így marad. nem aggódom, mert itt vagy Te(és még páran) akik remekül le tudják adott esetben egyszerűsíteni a "képleteimet"...

Fire.
UI: Azt az excel képet úgy gugliztam, az épp nem saját volt...

(csak olyat tudtam volna belinkelni, amiben személyes adatok vannak, az meg azért nem tűnt jó ötletnek)
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#5892
üzenetére
Elég sűrűn előfordul, hogy van egy füzet, ami évente, havonta, vagy hetente más-más füzetből gyűjti össze az adatokat. Nem értek egyet Veled, hogy nincs szükség az átkapcsolásra, hiszen ez a legegyszerűbb, leggyorsabb átírásra. Aki nem dolgozik ilyen füzetekkel, annak valóban szükségtelen ez a lehetőség.

Klasszak a diagramjaid.
-
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#5892
üzenetére
Az eredeti kérdés megoldásához mindenesetre mindkét válasz jó, a csere, és a csatolás átváltása is.
-
válasz
Delila_1
#5891
üzenetére
Hali!
Persze, az csatolás, hisz fizikailag nem a "forrás" munkafüzetben vannak az adatok, hanem egy másik/külső/hálózati stb stb állományban. De ehhez nincs szükség adatkapcsolatra, mert nem erre találták ki elsődlegesen, hogy excel munkafüzeteket "kapcsolgass"(persze lehet, csak ebben az esetben nincs értelme, mert szükségtelen), hanem arra, hogy a legkülönbözőbb formátumú állományokkal/adatbázisokkal tudjon együttműködni az excel.
Fire.
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#5890
üzenetére
Tudomásom szerint ha másik füzet cellájára hivatkozom, az csatolás.
-
-
-
Garffi
tag
Sziasztok!
BUÉK mindenkinek!
Következő a problémám:
Van egy mappa
C:\Könyveles\2009 ebben a mappában van 2 fájl: 2009.xls és 2009 Bér.xls
ezt a két fájlt átmásoltam a C:\Könyveles\2010-es mappában majd átneveztem őket:
2010.xls és 2010 Bér.xls-re='C:\Könyveles\2009\[2009 Bér.xls]Január'!G14
adott a fenti hivatkozás a 2009.xls fájlbanHa megnyitom a 2010-es mappában lévő 2010.xls-fájlt akkor a fenti hivatkozás így módosul:
='C:\Könyveles\2010\[2009 Bér.xls]Január'!G14
még mindig a 2009 Bér.xls-re hivatkozik a 2010-es mappában.Kérdésem a következő:
Hogy lehet megoldani egyszerűen /rengeteg hivatkozás van/ hogy a 2010 es mappában lévő 2010 Bér.xls fájlban a hivatkozásokban lévő [2009 Bér.xls]-t kicseréljem [2010 Bér.xls]-re.
Mert most egyesével írogatom át a 2009-et 2010-re a hivatkozásokban
.
Valaki mondjon egy megoldást. Köszi! -
Delila_1
veterán
válasz
Fire/SOUL/CD
#5885
üzenetére




Mindenkinek! -
Boldog Új Évet Kívánok minden kedves topic-lakónak!

Fire.
-
Josh
tag
Azt szeretném kérdezni, hogy hogyan tudnám azt megcsinálni, hogy:
van 2 táblázat.
Az egyikben fel vannak sorolva a cikkszámok.
A másik táblázatban vannak cikkszámok + darabszámok.
Hogy tudnám az első táblázatba egy képlettel beíratni az Excellel az adott cikkszámhoz tartozó darabszámokat?
-
sonar
addikt
Mi állíthatódott el ha megnyomom a freeze panel-t akkor a kijelzőt úgy freezelei, hogy felosztja négy részre és azokat freezeli

-
Delila_1
veterán
válasz
Aprósólyom
#5880
üzenetére
Nem kaptad meg a két küldeményemet, vagy lefagytál?
Ezt nem ide akartam írni, hanem a privátba.

-
Delila_1
veterán
válasz
Aprósólyom
#5878
üzenetére
Meg lehet csinálni, küldd el a füzetet.
-
Aprósólyom
addikt
válasz
ArchElf
#5877
üzenetére
Jajj neee... Akkor ez túl nagy dolog? És ha csak rosszul közelítem meg a dolgot? Ha valahogy név szerint külön-külön lehetne rendszerezni amit egy ilyen folytonos adatoszlopból nyerek ki, az kellene. Azt mondod ilyet nem is tudna hivatalosan az excel? Mert auto szűrés az van, másolni is tudom a szűrt adatokat, csak ha ezt macroval csinálom, akkor nem működik.

-
ArchElf
addikt
válasz
Aprósólyom
#5876
üzenetére
Ha van Access-ed, inkább azzal állj neki szerintem.
Persze nem lehetetlen megoldani Excelben sem, de ez már erősen a hackelés kategória.AE
-
Aprósólyom
addikt
Sziasztok!
Szeretném úgy rendszerezni, hogy nevenként egy külön munkalapba átkerüljönenek a napi bejegyzések (minden dolgozónak lenne egy külön munkalapja, hogy jobban átláthassam). A lényeg, hogy automatikusan történjen. Egyébként egy munkaidő számítás lesz. Eddig sokat erölködtem, de egyenlőre nem tudtam megoldani, hogyan lehetne automatizálni. Macroval is probaltam de sajnos nem nagyon értek hozzá.
Tovább az is jó lenne, ha egy hónapon belül szépen rendbe lennének téve a munkanapok nevenként, vagyis: Az a baj, hogy nem mindenki jön minden nap, sőt hetente változik, hogy ki mikor... Azt szeretném elérni, hogy ha esetleg volt két napja a dolgozónak mikor nem dolgozott, vagyis adat sem jött be felőle, akkor automatán kihagyhatna az excel azoknak a napoknak üres cellákat, hogy be tudjam írni, hogy szabin volt-e vagy betegség miatt maradt távol, mert csak azt tudnám elérni, hogy egymás alá kerüljenek ahogy az adatok is bekerülnek de az így sokszor nem lenne jó. Nagyon sokat kellene szerkeszteni utólag.

-
Delila_1
veterán
válasz
gericooper
#5874
üzenetére
A képletet tartalmazó cella formátumával lehet baj. Állítsd általánosra.
-
gericooper
aktív tag
sziasztok
Cégnél Excelben Fkeres / hol.van stb függvényeknél a #HIÁNYZIK hibaüzenet valójában hamisan jelenik meg.
"F2"-re (cellába belépés szerkesztése) majd elfogadás (Enter) a hiba eltünik azaz a talált érték erül a cellába .EZt az F2-es mókát ott kell eljátszani amely tartományban keresek. Tehát mégegyszer: A képletek jók csak az említett módszerrel frissíteni kell.
Az "összes frissítése" menüpontra nem működik a dolog. kössz az ötleteket.
üdv,g -
Nowhere
tag
Sziasztok!
Van egy ilyen kis vicces sor, hogy:
O000093;83425;37;0;1200;;2009.11.25;H0001;Kovács Monkey;2000Ezt txt-ben kapom, majd annyit kell vele csinálnom, hogy a név; utáni összeget leszedem a sorról és kész is. Jelenleg nagyon fapadosan szétdarabolom a ; közötti dolgokat majd a &-tel összeillesztem, lehagyva az utolsó összeget, majd újra txt-t gyártok belőle. Nincs valami elegánsabb képlet vagy megoldás erre?
KÖSZÖNÖM a segítséget! -
Delila_1
veterán
válasz
VANESSZA1
#5862
üzenetére
Vegyük, hogy a számokat az A oszlopban akarod generálni. Az A1 képlete:
=RANDBETWEEN($C$1;$D$1)
Ha a függvényeid között nem találod a fentit, az Eszközök/Bővítménykezelőben az Analysis ToolPak elé tegyél pipát.
Másold le a függvényt, ezután az A oszlop függvényei helyére irányítottan illesztd be az értéküket.
A B1 képlete: =DARABTELI(A$1:A1;A1), ezt is másold le, ameddig kell.
Ahol a B oszlopban 1-nél nagyobb számot találsz, ott az A oszlop értéke 1-nél többször szerepel a listában.
Tehetsz rá feltételes formázást, hogy kiabáljon.
Lehetne rá makrót írni, de sok adatnál ez elég lassú lenne, függvényekkel is jól megoldható. -
VANESSZA1
őstag
Véletlen számgenerátort lehet az Excel-ben csinálni?
Arra gondolok, hogy van egy névsor, és mindegyik névhez szeretnék egy véletlen számot generálni, mely a C1; és D1-es cella értékei közt van.
Fontos lenne, hogy akiknek már van egy ilyen generált szám, azt a számot kihagyja, mégegyszer azt a számot ne használja fel, hogyha a névsor későbbiekben bővítem.Lehetséges ilyen?
-
sonar
addikt
Sziasztok,
Talán tud vki segiteni egy kis script írásban.
Van egy Excel 2000-em és mivel XML-t ez még nem tud feldolgozni egy html-be van ágyazva és azt már meg tudom nyitni.
Viszont ezen nekem még tovább kellene dolgoznom mert így eléggé kusza.
Végig kéne mennem sorról sorra és azokat a sorokat amiknek az első oszlopa tartalmazza az "Updated", "Changed" szó vmelyikét egy új sheet-re át kéne pakolni, a többivel nem kell foglalkozni. Viszont vannak benne összevont sorok.
Pl.:
Próbáltam auto filterrel, de nem akar működni. Gondolom a sok üres sor miatt. -
ulrik19
tag
Valahogy nem egészen így kellene kinéznie...
A táblázat "belsejébe" (magjába, ahol összesíteni szeretnél) csak olyan mezőket tegyél be, amik összegezhetők. (mennyiség és érték)
Majd úgy kell formázni, hogy vízszintesen tegye egymás mellé őket, ne függőlegesen egymás alá...
Amit a képen látok, az valami részösszegzésesnek tűnik. Ezzel is megoldható mondjuk, ha az azonos termékbejegyzések mindig egymás után jönnek (pl. ABC-rendezve az oszlop), viszont nincs beállítva minden összegzendő mező. (Adatok/Részösszegek... menü)
-
babli
tag
Sziasztok!
Bocsássatok meg előre is, ha láma kérdést teszek fel. TELJESEN kezdő, mondhatni tudatlan vagyok makrókészítés és VBA scriptek terén.
Lenne egy nekem bonyolult feladat Excelben!
A főnököm kitalálta, hogy a céges készletnyilvántartó program Excel-exportját buheráljam meg makróval a következő módon:-az egyes termékek kóddal és dátummal szerepelnek a listán. Így míg egy adott napon pl 12 van egy termékből, másnap már lehet hogy minuszban lesz, vagy érkezik még termék.
-tehát egy termék többször szerepel a táblázatban! Úgy kellene átalakítani a táblázatot, hogy minden termék csak egyszer szerepeljen, az aktuális darabszámot számolja ki!!!
Az alábbi képen remélem jól látható a probléma:
Például az "Ászokcsavar M 8*100" ne 3szor szerepeljen (12, -8 és 5 darabbal) hanem csak egyszer (a darabszámokat összeadva: 9darabbal)!!!
Ennyi lenne...
Előre is köszönök minden segítséget!
Lehet, hogy megtaláltam volna a választ ha végigolvasom a fórumot, de idő hiányában ez sajna nem megy!Köszi...
-
Delila_1
veterán
válasz
Fire/SOUL/CD
#5846
üzenetére
Akkor éppen hiányoztam az iskolából...
Az öregedésről egyes számban beszélj!
-
ulrik19
tag
Csak azért, hogy mások számára is hasznos legyen a téma

Csináltam egy bővített vlookup() függvényt...
Használata pl:
=multivlookup($E$1:$N$100;3;0;1;A1;4;B1/2;10;"Béla")
ahol:
$E$1:$N$100 a keresés helye (mint vlookup)
3, azaz a tábla 3. oszlopában lévő adatot adja vissza
0, azaz ha nem talál semmit, 0-t adjon vissza. (lehet "" is akkor üresen marad, de bármi más szintén mehet ide)
ez a három kötelező paraméter
ez után lehet megadni a feltételeket az alábbi módon (a fenti példát követve)
párosával kell nézni a paramétereket:
1;A1 azaz a tábla 1. oszlopában A1-gyel egyenlő érték legyen (természetesen nem csak hivatkozás lehet itt)
4;B1/2 azaz a tábla 4. oszlopában a B1 cella értékének felét keresse
10;"Béla" azaz a tábla 10. oszlopában a "Béla" szöveg legyen
lehet 1, de akár több feltételt is belerakni, rugalmasan kezeli
Ha több sor is megfelelne a feltételnek, akkor az első találatot adja vissza
(a paraméterek között ÉS kapcsolat van, tehát mindnek meg kell felelni)Public Function multivlookup(HolKeressen As Range, MelyikOszlopAdatatAdjaVissza As Byte, HaNincsTalalat As Variant, ParamArray OszlopInformaciok() As Variant) As Variant
'Ha nem páros számú az OszlopInformaciok argumentum (az UBound elemszám-1 értéket ad vissza ilyenkor)
If (UBound(OszlopInformaciok) + 1) Mod 2 = 1 Then
'adjon vissza hibát
multivlookup = CVErr(1)
Exit Function
End If
Dim i As Integer, j As Integer, ok As Boolean
For i = 1 To HolKeressen.Rows.Count
ok = True
For j = 0 To UBound(OszlopInformaciok) Step 2
'ha nagyobb oszlopszám a hivatkozás, mint ahány oszlop egyáltalán van...
If HolKeressen.Columns.Count < OszlopInformaciok(j) Then
'adjon vissza hibát
multivlookup = CVErr(2)
Exit Function
End If
'ha nem felel meg a feltételnek, akkor ok = False (ne is vizsgálja ezt az adatsort tovább...)
If HolKeressen.Cells(i, OszlopInformaciok(j)) <> OszlopInformaciok(j + 1) Then
ok = False
Exit For
End If
Next j
'ha van találat, akkor ok = True (ne is menjen tovább, mert az első találot adatom vissza)
If ok Then
multivlookup = HolKeressen.Cells(i, MelyikOszlopAdatatAdjaVissza)
Exit Function
End If
Next i
'ha volt találat, akkor már kiléptünk a függvényből... ha nincs, akkor:
multivlookup = HaNincsTalalat
End Function -
válasz
ulrik19
#5838
üzenetére
Szia!
A két táblázat eredménye nem egyezik, cak példa

olyan nincs, hogy több ugyanaz az állomás ugyanabban az időben kétszer szerepel. A G cell az adott paraméterek eredménye: NOof SN = Number of Serial number.
Tehát azt mutatja, hogy adott álomáon Pass-os vagy failos hány darab volt.Milyen minta filest küldjek?
Igazából én ezt már megcsináltam de nagyon bonyolultan. VLOOKUP hegyek, meg makrós másolgatásokból áll az egész, csak nagyon nem szép megoldás. de ezt elküldöm. -
ulrik19
tag
a minta kimenet H4-es cellájában a 4 mit jelent? Mármint hogyan jött ki a táblából?
Ha pl. ugyanabban az idősávban több azonos pass van (station is azonos), akkor mi kerül a célcellába? Az összes megfelelő darabszáma, vagy egy itt nem látható oszlop (talán az említett G) értékösszege? Ha tudsz küldeni egy minta file-t, szerintem nem túl bonyolult megcsinálni.
Egy olyan spec függvényt kell írni rá, ami egyszerre több cella értékét is vizsgálja többféle bevitt paraméter szerint.
-
Sziasztok!
El vagyok akadva és segítséget szeretnék kérni.
Konkréten annyira el akadtam, hogy azt sem tudom hogy kezdjek neki
a feladat a következő
van egy ilyen táblázat:
És egy ilyet kéne produkálnom belőle:

Egy kis értelmezés. Az A oszlopban vannak az állomás nevek. Ebből van 15 darab.
a kritériumnak meg kell felelni a B oszlopnak, tehát hogy csak azokat a sorokat vegye figyelembe, ahol a B oszlop értéke: BOARD. Ha ez is megvan akkor a következő oszlop ami érdekes, hogy pass-os vagy fail-os. A következő pár oszlop nem érdekes, már csak a két utolsó. Az F oszlopban van az oda írt óra tehát ha 6 akkor az a 6:00-6:59-ig értendő, illetve G oszlopan a hozzá tartozó eredmény.Tudna ebben nekem valaki segíteni?
-
ulrik19
tag
válasz
ulrik19
#5833
üzenetére
hmmm, egy picit módosítanom kellett:
Public Sub ktgelosztas()
Dim osszeg As Double, i, strAr, strAr2
osszeg = Int(Val(InputBox("Felosztandó összeg a kijelölt cellák között:")))
strAr = Split(Selection.Value, ";")
For i = 0 To UBound(strAr)
strAr2 = Split(strAr(i), "=")
Range(Trim(strAr2(0))).Value = Val(Range(Trim(strAr2(0))).Value) + Int(osszeg * Val(strAr2(1)) / 100)
Next i
End SubHa nem egész százalékra van szükséged, akkor tizedespontot kell használni. Pl. harmadoláshoz: 33.3333
-
ulrik19
tag
megoldható ez is.Ez némileg másképp működik. Meg kell adni egy cellában, hogy melyik cellákba kell szétosztani, és milyen arányban. Gondolom, ez előre rögzíthető, vagyis általában ugyanazt a dolgot ugyanabban az arányban ugyanazokra a ktghelyekre osztasz szét.
Pl. legyen egy cella tartalma ez: N12=20;N16=30;N21=10;N26=40
Itt százalékban van megadva, hogy melyik cellára mekkora rész menjen. Nem vizsgálja a program, hogy az összeg 100%-e! Persze azt is bele lehet szőni... Fontos az egyenlőségjel, és az is, hogy ;-vel kell elválasztani az elemeket.Állj rá erre az egy cellára. Majd indítsd a makrót:
Public Sub ktgelosztas2()
Dim osszeg As Integer, i, strAr, strAr2
osszeg = Int(Val(InputBox("Felosztandó összeg:")))
strAr = Split(Selection.Value, ";")
For i = 0 To UBound(strAr)
strAr2 = Split(strAr(i), "=")
Range(Trim(strAr2(0))).Value = Val(Range(Trim(strAr2(0))).Value) + osszeg * Val(strAr2(1)) / 100
Next i
End SubEzzel a módszerrel egyébként több költségallokációs módot tudsz tárolni. De azon a sheet-en kell tárolni, ahol az adatok vannak.
-
ulrik19
tag
Én így csinálnám. Ehhez a makróhoz célszerű hozzárendelni egy billentyű-kombinációt is.
Public Sub ktgelosztas()
Dim cella As Object, osszeg As Integer
osszeg = Int(Val(InputBox("Felosztandó összeg a kijelölt cellák között:") / Selection.Count))
For Each cella In Selection
cella.Value = Val(cella.Value) + osszeg
Next
End SubHasználata:
kijelölöd azokat a cellákat, amikre szét akarod osztani az értéket. (a ctrl nyomva tartva az egérrel ugye tudsz egymástól független cellákat sorban kijelölni, ahányat csak szeretnél)Majd indítod a makrót (pl. a hozzárendelt billentyűkombinációval).
A progi bekéri a számot, amit szétoszt annyi részre, ahány cellát kijelöltél, és a kijelölt cellák értékét növeli a rá jutó résszel. (ha valamelyik kijelölt cellában szöveg volt, akkor azt nullának értelmezi, ha szöveget adsz be a felugró ablakban, akkor nullát ad mindenhova, vagyis nem változik az érték. Ha valamelyik kijelölt cellában képlet van, akkor az felül fog íródni a konkrét értékkel)
hajrá!

-
Delila_1
veterán
válasz
Fire/SOUL/CD
#5828
üzenetére
Nosza!
-
Hali!
Őrület, miket variál ez a hölgyemény...

(most már csak az lenne az igazi, ha csinálnál egy Form-ot is, tartományok->combo-ba, hány részre kell osztani->combo-ba stb stb, aztán a Form-ról átvenné a makród a paramétereket...
)Fire.
-
Delila_1
veterán
Na még egy utolsó. A költségek nevei az A1:A10 tartományban vannak, az eddigi összegek pedig B1:B10-ben.
Állítsd pirosra azokat az összegeket (B oszlop), ahova az új összeget szét akarod osztani.
A szétosztandó összeget írd be a D1-be.Sub Eloszt_1()
For sor = 1 To 10
If Cells(sor, 2).Font.ColorIndex = 3 Then Db = Db + 1
Next
For sor = 1 To 10
If Cells(sor, 2).Font.ColorIndex = 3 Then
Cells(sor, 2) = Cells(sor, 2) + Round(Cells(1, 4) / Db)
End If
Next
End SubA makró végig szalad a B1:B10 tartományban, és összeszámolja a piros karakteres cellákat, ezek darabszáma lesz az osztó. Újra végig lépked ugyanott, és a piros cellák tartalmához hozzáadja a D1-ben talált összeg annyiad részét, ahány piros cellát talált.
Azt hiszem, ez volt az eredeti kérdésed. -
Delila_1
veterán
Akkor a personal.xls-be vidd be:
Function Eloszt(Összeg As Double, Részre As Integer)
Eloszt = Összeg / Részre
End FunctionKijelölöd a cellákat, beírod: =Eloszt(26253;3), és Ctrl+Enterrel egyszerre beviszed a kijelölt cellákba. Az osztó és osztandó persze minden esetben más lehet.
-
Pá
addikt
válasz
Delila_1
#5823
üzenetére
Köszönöm ez így tökéletes lenne, csak sajnos még egy kicsit bonyolultabb.

Nem voltam pontos, amikor megfogalmaztam.Szóval a költséghelyek nem fixek. Van legalább 10db és minden egyes esetben abból kéne kiválasztani 2-3-at. Tehát úgy kéne megoldani, hogy a beviteli cella könnyen paraméterezhető legyen, hogy épp melyik 2-3 költséghely között ossza el az adott összeget.
Szerk: ha túl bonyolult azt is beletenni, hogy néha 2 néha 3 felé kell osztani az összeget, akkor legyen úgy, hogy mindig csak 2 felé.
-
Delila_1
veterán
Beteszem a kétféle megoldást. Mindegyiknél a beviteli cella az A1, a 3 másik pedig A3, A4, és A5.
Az első makró vagy a makrók közül indítható, vagy egy gombhoz rendeled. Bevitele: Alt+F11, Insert/Module, a kapott üres oldalra másold be.Sub ktsg_elosztás()
Dim sor
For sor = 3 To 5
Cells(sor, 2) = Cells(sor, 2) + Int(Cells(1) / 3)
Next
End SubA másik a bevitelt követően automatikusan hajtódik végre. Ennek a bevitele: Lapfülön jobb klikk, Kód megjelenítése, a kapott üres oldalra másold be.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sor
If Target.Address = "$A$1" Then
For sor = 3 To 5
Cells(sor, 2) = Cells(sor, 2) + Int(Target.Value / 3)
Next
End If
End Sub -
Pá
addikt
Nah, ez nem lesz egyszerű, de remélem megoldható.

Egy olyan beviteli mezőt szeretnék csinálni, ahova beírok egy számot és megadok 2-3 cellát, hogy azok között egyenlően ossza el ezt és írja oda be őket. Van még egy csavar. Azokban a cellákban ahova be kell írja az elosztott értékeket, már alapból vannak számok és azokat nem kéne felülírja, hanem hozzá kéne adja az új értékeket.
Egyébként költségallokációra kéne. Szóval vannak költségkategóriák, pl utazás, szórakozás, kaja stb. A beviteli mezőbe beírnám, hogy 26253Ft és megadnám ezt a 3 cellát és akkor az excel szét kéne dobja ezt az összeget a 3 kategórai között. Tehát mind a 3 cella jelenlegi értékéhez hozzá kéne adjon 8751Ft-ot. Ezután úja szeretném használni a beviteli mezőt, hogy más költségeket adjak hozzá más cellákhoz.
Megoldható?
-
ulrik19
tag
Így van, ahogy Delila írta, meg kell fordítani a gondolatot. Ugyanis a next automatikusan megtörténik, amint a ciklusmag végére ér a folyamat. Vagyis, ha az elágazásod arról szól, hogy mikor nem egyezik meg a sheet neve a vizsgálandóval, akkor ha egyeznek, nem történik semmi a cikluson belül.
For Each lap In Workbooks(valtozo).Worksheets
If lap.Name <> el Then
... ide jön amit végeztetni akarsz ...
End If
Next -
akaido
addikt
válasz
Fire/SOUL/CD
#5815
üzenetére
Köcce a tippeket!

Magyar mindkettő Excel, csak a régi gépen Office XP volt-lehet ez a bibi, bár a legtöbb mentett fájlt megnyitja simán, meg az újabb 2003-asnak ismernie kellene a régebbit.
Open office-ban is megpróbálom megnyitni hátha. -
Hali!
Ja értem. Arra gondoltam, hogy abszolút meg sem nyílik. Igen, van bent hibajavító, de csodákra az sem képes. Azon esetleg gondolkozz el, hogy mi az ami változhatott. Angol excel volt, most magyar vagy a területi beállítások, vagy valami egyénileg telepített betűkészletet használtatok a régi gépen, ami most nincs telepítve, stb stb.
Fire.
-
akaido
addikt
válasz
Fire/SOUL/CD
#5813
üzenetére
Krix-kraxokat ír ki, tehát teljesen össznyee-vissznya karaktereket amelyek hírből sem hasonlítanak excel táblára.
Van itt itt is mint a wordben helyreállító funkció?(képet holnap tudok betenni)
-
-
akaido
addikt
Üdv!
Irodai gépünk teljesen megújult. A régi gépről mentett korábbi .xls fájlokat nem nyitja meg az újonnan telepített Office 2003-as Excel. Találkozott már valaki hasonló problémával? -
Hali!
Sajnos a Pascal vagy C/CPP-ban megszokott Continue utasítás itt nem létezik, helyette a Goto utasítást kell bevetni.
(az Exit For/Exit Do egyenértékű a Break Pascal vagy C/CPP utasítással, az Exit For kilép a For ciklusból, míg az Exit Do, a Do-Loop ciklust szakítja meg.)Példaprogi
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
j = 0
For i = 1 To ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets(i).Name = "Munka5" Then GoTo label001
j = j + 1
label001:
Next
MsgBox (j)
End SubFire.
-
Cuci3
tag
Annyira iszonyítos a hallgatás, hogy meg kell szakítanom egy kérdéssel:
Van egy ciklusom, ami végiglépked az összes munkalapon. A cikluson belül van egy elágazásom, ami megvizsgálja a munkalap nevét. Ha a munkalap neve Ellenőrzés, akkor a következő lapra kellene ugrani. Kérdés, hogy oldom ezt meg. Van-e olyan sor, ami a következő For-ba ugrasztja a progit - lentebb a program részlete. Goto-ra én is gondoltam, de az mégsem lenne annyira jó.For Each lap In Workbooks(valtozo).Worksheets
If lap.Name = el Then
Ide kellene valami next lap, vagy ilyesmi.
Else
End If
Next -
gyga
senior tag
kösz nektek
-
ulrik19
tag
válasz
ulrik19
#5802
üzenetére
Ez pedig egy elegánsabb megoldás:
'végigmegy az összes munkalapon, és amelyik nem a kijelölt terület munkalapja,
'összeadja az azonos elhelyezkedésű cellák értékét
Public Function SubTotal(cRange As Range)
Dim lap As Worksheet, Sum As Double
Sum = 0
For Each lap In Worksheets
If Not lap.Name = cRange.Worksheet.Name Then Sum = Sum + lap.Cells(cRange.Row, cRange.Column)
Next
SubTotal = Sum
End FunctionEnnek használata pedig:
=SubTotal(L154)Persze, lehet más cella is az argumentumban. Azt a cellát kell belerakni ebbe a képletbe, amiket szeretnénk az összes többi sheeten összegezni. Mivel cellahivatkozás, másolható máshová, tehát "átírja" a hivatkozást, mint bármilyen más függvény használatakor.
(Bár a Sum = 0 sor nem lenne kötelező, javaslom, hogy minden hasonló helyzetben adjátok meg a kezdőértéket. Néha előfordulnak cifra dolgok ennek elhagyása esetén
) -
ulrik19
tag
válasz
Delila_1
#5792
üzenetére
Én nem eseményhez kötném a lefutást, hanem így oldanám meg:
Public Function SubTotal(xRow As Integer, xCol As Integer)
Dim lap As Byte, Sum As Double
Sum = 0
For lap = 2 To Worksheets.Count
Sum = Sum + Sheets(lap).Cells(xRow, xCol)
Next
SubTotal = Sum
End FunctionAztán az Összesítő sheet 3 megfelelő cellájába mehet ez a képlet (magyar excelnél a , helyett ; kell természetesen
):
=SubTotal(154, 12)
=SubTotal(155, 12)
=SubTotal(156, 12)Vagyis ez egy összeadó függvény, ami a megadott sor- és oszlopszámú cellákat összeadja valamennyi munkalapon (kivéve az összesítőt). Jelen esetben L154-es, L155-ös és L156-os cellák összegét.
-
ulrik19
tag
sub akármi() ekvivalens a public sub akármi() használatával
vagyis "kintről" elérhető.ugyanakkor: private sub akármi() esetében a hatókör nem engedi, hogy máshonnan meghívják, ezért a makróindításnál sem látszik. DE, a 3 sub-nak egy modulban kell lenniük.
egyébként szerintem mindig célszerű kitenni a private/public kulcsszót, hogy totál egyértelmű legyen.
Új hozzászólás Aktív témák
- Witcher 1 Collector's Edition
- Árváltozás+játék!The Witcher 2 Assassins of Kings Collector's Edition
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Vadiúj AM 4 procik! Raktáron! Kamatmentes rèszletre is! ÈRDEKLŐDJ!
- BESZÁMÍTÁS! MSI H310M i5 9500 16GB DDR4 120GB SSD 2TB HDD RTX 3050 8GB Zalman T4 Plus AeroCool 550W
- AKCIÓ! LG UltraGear 27GR93U-B 27 4K 144Hz IPS monitor garanciával hibátlan működéssel
- HIBÁTLAN iPhone 12 mini 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3392, 100% Akkumulátor
- magyar billentyűzet - 172 - Lenovo Legion Pro 7 (16IAX10H) - Intel Core U9 275HX, RTX 5080
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest

![;]](http://cdn.rios.hu/dl/s/v1.gif)




.








megoldható ez is.
Fferi50
