2417
megoldást keresek erre a problémára
  • Delila1
    #814
    Jobb ötlet, ha az M oszlopba f-et írsz, ha ki van fizetve, és n-et, ha még nincs. O2-be: =HA(ÉS(E2<MA()+2;M2="n");1;0)
    A kritérium tábla első esetben: R4-be az O oszlop címe, R5-be 1, S4-be az M oszlop címe, S5-be n. A szűrő párbeszéd dobozában a Szűrőtartomány legyen R4:S5.
    A második szűrésnél csak az R4:R5 tartományt kell módosítanod, R4-be jön a P oszlop címe, R5-be =WEEKNUM(MA();2).
  • Delila1
    #813
    Irányított szűrővel lehet megoldani a kigyűjtéseket.
    A leírásodban N az utolsó oszlop, ezután tettem be még kettőt. Persze ezen változtatsz majd, ha nem felel meg.
    Feltételezve, hogy az M oszlopban jelölöd valami módon, hogy ki van egyenlítve a tartozás (erről nem írtál), az O2 képlete: =HA(ÉS(E2<MA()+2;M2="");1;0), a P2-é: =WEEKNUM(E2;2). Az O oszlopban 1 lesz az érték, ha esedékes a fizetés, a P oszlop beírja, hogy az E oszlop dátuma az év hányadik hetére esik.

    Az első esetben azokat a tételeket akarod kigyűjteni, ahol a dátum <ma()+2, és nincs kiegyenlítve, holott régebbi a dátum.
    Az R4-be beírtam az O1 címét, R5-be 1-et. Ez a kritérium tábla.
    R8-ba az A oszlop címe, S8-ba az N-é, T8-ba at I-é, U8-ba a B-é, és V8-ba az E-é, vagyis felsoroltam az oszlopok címét, amikhez az adatokat akarom rendelni.
    Kijelöltem az A:P tartományt az elsőtől az utolsó sorig, ahol a szűrendő adatok vannak. Adatok menü, Szűrő, Irányított szűrő.
    A párbeszéd doboz kiállítása: Más helyre másolja, a Listatartományt automatikusan beírta, Szűrőtartománynak kijelölöd az R4:R5 területet, a Hova másolja rovatban pedig az R8:V8 tartományt. Leokézva R9-től megkapod a kért adatokat. Ezeket simán átmásolod egy másik lapra, ahol tovább dolgozol velük.

    A második kigyűjtésnél csak a kritérium táblát kell módosítani.
    R4-be a P oszlop címe kerül, R5-be =WEEKNUM(MA();2)

    Ezeket elvégzed a Vevők, és a Szállítók lapon is.

  • petx
    #812
    Igen bele futottam :) Eredetileg a stringben lévő pontokat én is kicseréltem vesszőre (mer hogy így jó, gondoltam), de ez valóban nem volt jó ötlet. Így utólag látom, hogy ha pontként hagyom akkor viszont 2003 excel szépen megeszi. Bár nem értem, hogy így miért jobb neki. :)
    A lényeg, hogy ez is megvan. még 1x köszöi!
  • Delila1
    #811
    Nem a negatív számokkal, hanem a tizedes törtekkel nem állt szóba a makró, mégpedig a tizedes vesszők miatt.
    Sikerült kiküszöbölni a hibát úgy, hogy a cellába írás [cells(15,1)=szov]
    sor elé betettem egy ciklust:

    For b = 1 To Len(szov)
    If Mid(szov, b, 1) = "," Then szov = Left(szov, b - 1) & "." & Right(szov, Len(szov) - b)
    Next

    Ha be van állítva az Option Explicit, a b változót is dimenzionálni kell Integerként.

  • sgsamu
    #810
    Elnézést! A lényeg... a dátumok!
    Esedékesség E oszlop.
    Segédtáblában rögzíteném a hetet záró dátumot pl. 02.22.
  • petx
    #809
    Cool. Megy. De egy gyökér vagyok! Mindent próbáltam már és is ilyen banális. :)
  • Delila1
    #808
    Ímé:

    Sub Szum()
    Dim ter As Range
    Dim CV As Object
    Dim szov As String

    Set ter = Application.InputBox("Jelöld ki a tartományt", "Tartomány kijelölése", Type:=8)
    For Each CV In ter
    If CV.Value >= 0 Then
    szov = szov & "+" & CV.Value
    Else
    szov = szov & CV.Value
    End If
    Next
    Cells(15, 1).Formula = "=" & szov
    End Sub

    A tartomány különálló cellákból is összeállhat. Azt nem szereti, ha az első összeadandó cella értéke negatív.
  • petx
    #807
    Szia Delila!

    Köszönöm a segítséget. Sajnos én is idáig jutottam. Vagy szum, vagy string megjelenítés. Nekem igaziból csak az a művelet kellene amit excel akkor csinál amikor a te makród futtatása után az A16 cellába kétszer kattintok és fogja magát és felismrei képletként a benne lévő stringet.
    pl: ha az A16 cellában ez +5+6+8-5-6 str volt taláható és kétszer bele kattintok akkor felismeri formátumot és képletet csinál belőle. De nem árulja el, hogy hogyan :(

    Köszi előre is!



  • Yan
    #806
    próbáld meg ide bemásolni.
    akkor megmarad a tagolás is. ráadásul kitudja copyzni
  • Delila1
    #805
    Elnézést, hogy foglalom itt a sok helyet, figyelmetlenül olvastam a kérdést, nem írtam bele az összegzendő értékek kiírását.

    Sub Szum()
    Dim sor, oszlop As Integer
    Dim ter As Range
    Dim sz As Double
    Dim CV As Object
    Dim szov As String
    Set ter = Application.InputBox(prompt:="Kérem a tartományt", Type:=8)
    For Each CV In ter
    sz = sz + CV.Value
    If CV.Value > 0 Then
    szov = szov & "+" & CV.Value
    Else
    szov = szov & CV.Value
    End If
    Next
    Cells(15, 1) = sz
    Cells(16, 1).Formula = szov
    End Sub
  • Delila1
    #804
    Az előző makróban a Dim sor, oszlop As Integer felesleges, hagyd ki.
    Itt egy másik makró, ahova fixen beírhatod az összegzendő tartományt, ami nálam most A1:B10. Az eredményt az A15 cellába írja ki.

    Sub másik()
    Dim sz As Double
    Dim ter As String
    Dim CV As Object

    ter = "$A1:$B$10"

    For Each CV In Range(ter)
    sz = sz + CV.Value
    Next

    Cells(15, 1) = sz
    End Sub
  • Delila1
    #803
    Hol vannak a dátumaid?
  • Delila1
    #802
    Nem megy nekem ez a képfeltöltés, bemásolom ide a makrót, csak csúnyán összerántja, nem látszanak a tagolások.

    Sub Szum()
    Dim sor, oszlop As Integer
    Dim ter As Range
    Dim sz As Double
    Dim CV As Object

    Set ter = Application.InputBox(prompt:="Kérem a tartományt", Type:=8)

    For Each CV In ter
    sz = sz + CV.Value
    Next

    MsgBox sz
    End Sub
  • Delila1
    #801


    A makró bekéri az összegzendő területet, amit egérrel kijelölve adhatsz meg. Üzenetdobozban kiírja az eredményt (MsgBox sz), de ehelyett adhatsz egy cellacímet, ahova beírja, pl. Range("C30")=sz
  • petx
    #800
    Sziasztok!

    Egy kérdés hátha ....
    Készítettem egy makrót, ami egy tömbben lévő szám értékekekt stringbe összefűz és műveleti jeleket is tesz elé. pl: str = +45+46-48. Ezt be is illesztem egy cellába.
    Egyetlen gond van vele, hogy képletként szeretném használni, de erre nem találtam semmilyen megoldást.
    Az a baj hogy látnom kellene, hogy az érték miből jön ki és nem elég ha az eredményt kapom meg, így csak stringént tudtam a makróban megoldani.
    Jelenleg kiborít, hogy ha bele kattintok a cellába akkor felismeri képletet az excel, de makróból ezt nem tudom megoldani.
    Van valakinek ötlete?

  • sgsamu
    #799
    Sziasztok!
    Új feladattal bíztak meg a mu.helyemen: vevő és szállító számlákat kell nyilvántartanom és figyelnem mit mikor kell fizetni v. mikor várható a fizetés. Külön fülön tartom nyilván a szállítókat és a vevőket
    A oszlop mindig a cégnév, B a számla száma, N oszlop a bruttó számlaérték; devizanem I oszlop (HUF v. EUR). A segítségetekre lenne szükségem.
    KÉRDÉSEK (excel 2003):
    Szállítók:
    1. egy adott napon esedékes fizetnivalókat hogyan tudom kigyűjtetni automatikusan (a ma elküldendő fizetnivalók=eddig ki nem fizetettek és a holnap esedékesek MA()+1)
    2. e héten esedékesek (ez pillanatnyilag feb.22-ig esedékesek és a ki nem fizetettek)
    VÁRT EREDMÉNY- külön fülön: cégnév; összeg(ek), devizanem; szlaszám
    cégenként is kellene összesíteni

    Vevő oldalon uez. csak ott mint várhatóként jelenik meg.

    A dolgot bonyolítja, hogy van amikor ugyanaz a cég vevő is meg szállító is (más árut adunk, mint kapunk) ezeket külön kellene vevőként és szálíltóként egymás mellé tenni és a különbözetet egy harmadik oszlopban megmutatni - "szaldó"

    Eddig listába írtam a számlákat és egy másik fülön kimuatás varázslóval kínlódtam, de ott a dátumok nem jönnek sorba hogy kipipálhassam (mivel minden egyes új szlámla felvitelekor összekeverednek a dátumok...
    Előre is köszi
    Samu
  • Delila1
    #798
    Szívesen.
    Persze, hogy feltedeted az újabb kérdésedet, azért van a fórum, hogy segítsünk egymásnak.
  • baaka
    #797
    köszi! Esetleg ha még lesznek kérdéseim feltehetem neked?Remélem nem gond!
  • Delila1
    #796
    A 2 azt jelenti, hogy az F:G tartomány 2. oszlopából adja vissza azt az értéket, amelyiket az 1. oszlopában megtalált.
    A súgóban keress rá az FKERES függvényre, ott megtalálod az utolsó paraméter leírását, jobban, mintha itt leírnám. Az 1 helyett IGAZ paramétert is írhatsz, azonos értékűek.
  • baaka
    #795
    Köszi szépen! Működik!
    Az lenne a kérdésem hogy a 2;1 Mit jelent?[=FKERES(A1;F:G;2;1 )]

    Még egyszer köszi a gyors választ!
  • Delila1
    #794
    Az F1 legyen 0, F2 20 ... F5 pedig 80.
    G1-be 1, G2-be 2 ... G5-be 5.
    A B1 függvénye: =FKERES(A1;F:G;2;1), ezt másold le az A oszlop adatai mellé.
  • baaka
    #793
    a kép:
  • baaka
    #792
    Sziasztok! A fenti képen láthatjátok meddig jutottam el a feladatban!A feladat arról szól hogy az A oszlopba 0-tól 100-ig feltöltsük véletlen százalékos számokkal, a G oszlopba pedig megvannak adva a százalékhatárok az F oszlopba pedig hogy mely százalékok között hányas érdemjegy lenne!

    És a B oszlopba pedig ki kellene kiírnia az A oszlop mindegyik százalékához hogy az hányas jegy lenne úgy hogy az F És G táblából olvassa ki ezeket!

    Ehhez kellene nekem egy függvény(képlet)! Remélem tudtok segíteni előre is köszi!

    pl B1-be azt kellene kiírnia hogy 5.(tehát ötös mert 80 és 100% között van)

  • Delila1
    #791
    Ez jó hír, szívesen. :)
  • mcngoht
    #790
    Köszönöm! :) Mostmár tökéletes minden!
  • Delila1
    #789
    Akkor töröld az előbbit. Alt+F11-re bejön a VB szerkesztő. Bal oldalon állj a füzeted nevére. Insert menü, Module.
    A most kapott üres lapra ezt másold be:

    Sub Valami()
    Range("A1:B1").Select
    Selection.Insert Shift:=xlDown
    Cells(1) = Cells(3)
    Cells(2) = Cells(4)
    Cells(3).Select
    End Sub

    Értelmesebb címet is adhatsz neki :)
    Tegyél ki egy gombot az Űrlap eszköztárból, és rendeld hozzá a makrót.

  • mcngoht
    #788
    Kitünően működik! :) Köszönöm szépen! És hogyha azt szeretném hogy csak akkor írja be a1-be és b1-be ha rá klikkelek egy vezérlő gombra? akkor mit kell még csinálnom? :)
  • Delila1
    #787
    Rendeld a lapodhoz a makrót (lapfülön jobb klikk, Kód megjelenítése, a jobb oldalon kapott üres lapra másold be):

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$1" And Cells(3) > "" Then
    Range("A1:B1").Select
    Selection.Insert Shift:=xlDown
    Cells(1) = Cells(3)
    Cells(2) = Cells(4)
    Cells(3).Select
    End If
    End Sub

    Vidd be a C1-be a dátumot, és amint a D1-be is bevitted az értéket, a makró lecsúsztatja az A:B tartományt, és beírja az aktuális adatokat az A1-be és a B1-be, majd a C1-re áll, hogy írhatsd a következő adatot.
  • mcngoht
    #786
    Sziasztok! Azt hogy lehet megoldani, hogy van egy beviteli mezőm, kettő cella. Pl.:c1(ez dátumot tartalmaz), d1(ez egy összeget tartalmaz)
    Szeretném ha az ide beírt értékeket, átírná a1,b1-re. Aztán ha új értéket írok a c1-d1 cellákba, akkor ami előzőleg az a1-b1-ben volt az 1 sorral lejjebb csúsztassa, és az új értéket írja a helyére... Remélem kivitelezhető valahogy... Ha nem, akkor egy olyan megoldás is jó ha mindíg a sor végére írja az új értéket. Előre is köszönöm a segítséget! :)
  • Delila1
    #785
    Szívesen.
  • ity
    #784
    Ez nagyon jó :)
    Köszönöm szépen, működik is. A cellákat manuálisan színezem az előtte lévő oszlopok szűréseiből. Csak a 3-as piros kód helyett kellett keresnem egy 40-es barackot, hogy látható is legyen a szám.
    Még egyszer köszönm szépen a segítséget.
  • Delila1
    #783
    Nem bíztam benne, hogy sikerül feltenni a képet. Kishitű vagyok.

    Összeállítod a táblázatot a kép szerint. A G2 és a H2 érvényesítés, a valutanemeket tartalmazzák. Kiválasztod a jelenlegit, és azt, amire át akarod váltani. A makróban egy ciklussal végig haladsz az árakat tartalmazó területeken, és az értékeket felszorzod az I2-vel.
  • Delila1
    #782
  • DarkSector
    #781
    aham...
  • Yan
    #780
    így írd be:
    '1 P
    (aposztróf, shift1)
  • DarkSector
    #779
    hallod megcsináltam, de automatikussan visszaugrik általánosról valami másra egyéni vagy mi...
  • Prakesz
    #778
    Kedves Fórumosok!

    Egy kis segítséget kérnék tőletek Excel (2003) témakörben. Több fórumot bejártam - főleg külföldi -, de nem tudtam választ kapni egy kisebb problémámra, ami a következő:
    Egy beruházás megtérülési és cash-flow-elemzését készítettem el, kb. 12.000 képlettel (sok-sok összefűzött oldal + n. számú grafikon, kimutatás stb). A rendszer fordít magyarról angolra (ill. németre, franciára -igény szerint) és vissza, a számítások EUR-ban vannak, mert a megrendelő külföldi. O.K.

    Azonban egy kis többlet-igény merült fel a befejezés után: ne csupán EUR-ban, hanem USD-ben, CAD, ill. CHF-ben is tudja váltani (mutatni) a táblákat.

    Erre létrehoztam egy árfolyamváltó-lapot, azonban rájöttem, hogy lesz egy kis gond. A származtatott oldalak, illetve cellák átkonvertálása nem akkora gond, ám azokon a lapokon, ahol input adatokat viszünk fel, ezeknél körkörös hivatkozást végez az Excel. Ezt még ki lehet küszöbölni egy-egy oldaltükrözéssel (vagy éppen pl. indirekt() függvénnyel), ám a származtatott cellákat leszámítva is kb. 8.000 képletet kellene átdolgoznom.

    Tud valaki egy szép kis makro ötletet adni arra, hogyan lehetne leegyszerűsíteni az életet úgy, hogy a főlapon kiválasztott pénznemnek megfelelően (egy oldalon előre definiált - tehát nem kell on-line update-elni az MS Money Currency-vel - árfolyammal) minden oldalon átváltsa az aktuális EUR összegeket a választott pénznemre?
    Minden segítséget nagyon köszönök.
  • Delila1
    #777
    Meg lehet oldani. A lapfülön jobb klikk, Kód megjelenítése. Bejutottál a VB szerkesztőbe.
    A jobb oldalon kapott üres lapra másold be:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then 'Itt írd át az 1-et a saját oszlopod sorszámára
    If Range(Target.Address).Interior.ColorIndex = 3 Then _
    Target.Value = Target.Value * -1
    End If
    End Sub

    A megjelölt sorban írd át az 1-et annyira, ahányadik oszlopodban akarod végrehajtani a cserét.
    Egy kis villogás után a beírt szám elé negatív előjelet tesz.

    Ez csak akkor működik, ha a cellák hátterét NEM feltételes formázással pirosítottad ki. Ha igen, akkor ismernem kell a feltételt.
  • ity
    #776
    Tegnap este se jutottam gépközlebe, szóval most tudtam csak megnézni a javaslatokat.

    Az egynél több feltételre való szűris működik. Köszönöm szépen.

    A második példával vannak gondjaim, de némi átalakítás után személyemre szabható. Ezt is köszönöm szépen.

    Lenne még egy kérdésem, de ez lehet eleve butaság :)
    Lehet-e olyasmit csinálni, hogy ha pl. van egy adott oszlopom, ami teljesen üres és elkezdem felvinni az adatokat, akkor ha előre megjelöltem mondjuk piros háttérszínnel pár cellát, akkor a bevitt pozitív számokat, a pirosan megjelölt cellákban negatív számként írja be?
  • DarkSector
    #775
    oks thx