2417
megoldást keresek erre a problémára
  • Delila1
    #854
    Mindkét kérdésedre a cells.find keresést javaslom. Az első esetben a találat sorának értékét beteszed egy változóba (sor=selection.row), és a módosítások begépelése után ennek a sornak az oszlopaiba íratod be az új értékeket.

    A másodiknál egy ciklusba teszed a keresést, minden találatnál mejeleníted a formon az aktuális sor értékeit, és két gombhoz rendelve vagy kezdesz valamit az aktuális sor adataival, vagy tovább kerestetsz. Do Loop ciklusba érdemes tenni, ahol azt figyelteted, hogy a sor értéke nem lett-e kisebb, mint az előző találatnál, mert ez a keresés az utolsó előforduló érték után az elsőt találja meg.

    A szintaktika:
    Cells.Find(What:="aa", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
    xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
    , SearchFormat:=False).Activate

    ahol az "aa" helyére a textboxod text értékét írod be.
  • vajasmester
    #853
    Sziasztok!
    Tud nekem valaki segíteni? A problémám a következő: adott egy táblázat A3:G1000ig. ennek is csak egy része tartalmaz adatokat. Csináltam hozzá gyönyörű form-ot amivel lehet hozzáadni adatot a következő üres sorba. Pl. 342-ik sor még tartalmaz adatot, akkor makróval a 343-ik sorra ugrik és 6 textbox értékeit beilleszti a megfelelő oszlopokba. Hogy érthető legyen: A oszlop "darabszám", B oszlop "gyártó", C oszlop "tulajdonság" stb.. B oszlophoz tartozik a textbox1, C oszlophoz a textbox2... és így tovább. (mert az A oszlop "darabszám" excelen belül SZUM fügvénnyel számított) Van egy listboxom, ahová beállítottam a rowsource-ot A3:G1000. listboxban benne van az összes sor amit eddig tartalmaz a táblázat, sőt ha új sort adok hozzá a "hozzáad" commandbuttonnal, akkor az is megjelenik. Űrlapként funkcionál a Form, de oda-vissza szeretném ha működne, tehát ha kiválasztok egy elemet a listboxban akkor azt módosítani is szeretném, és visszaíratni a saját sorába, nem pedig legalulra új sorként /hozzáadás gomb - már működik/ (így működik, de ez nem jó) Egy készletlistáról van szó tulajdonképpen. Jelenleg ha kiválasztok egy elemet a listboxban akkor a megfelelő textboxokban (1-6-ig) a listbox megfelelő oszlopainak az értékét (szövegét) írja.

    A másik meg a keresés lenne egy különálló textbox-al amihez tartozik egy button, amit ha megnyomok akkor az adott textboxba írt szöveget kikeresi a listboxban, és rá is ugrik. ( a háttérben is kereshet magában az excel táblában, a lényeg hogy a listboxban válassza ki a találatot..) és persze lehetnek egyforma találatok tehát újbóli megnyomásra ugorjon a következőre, és így tovább, majd kezdje az elejéről. És persze, hogy bonyolítsam a már amúgy is jócskán bonyolult dolgot, szabad szöveges keresés legyen, tehát a listbox bármelyik oszlopában lévő találat érdekel. Például ha beírok egy számot akkor az "termék ára" /<- nem ez a neve../ oszlopban is keressen vagy a "darabszám" vagy "tulajdonság", stb.. bárhol érdekel a találat...
    listbox properties-ben beállítva 7 oszlop, és oszlopfejléceket is mutatja, de ez lényegtelen.

    Előre is köszi a segítségeket! :-)
  • Tyco
    #852
    Köszi a választ de nem ilyen egyszerűre gondoltam csak nehéz megfogalmazni hogy mit is alkarok. De közben asszem rájöttem a megoldásra:
    Az aktív lap aktív cellájára fog hivatkozni a Munka1 A1 cellája.

    Sub t()
    Dim h, mf, s, o, s2, o2 As String
    mf = ActiveSheet.Name
    s = Str(ActiveCell.Row)
    o = Str(ActiveCell.Column)
    s2 = Right(s, Len(s) - 1)
    o2 = Right(s, Len(o) - 1)
    h = "=" + mf + "!" + "R" + s2 + "C" + o2
    '
    Worksheets("Munka1").Cells(1, 1) = h
    End Sub
  • Delila1
    #851
    változó=Sheets("Munka2").Cells(1,1)

    vagy ha pl. egy másik lapon lévő cellán állsz – ez az aktív cella –, és oda akarod bevinni a Munka2!A1 értékét:
    Selection=Sheets("Munka2").Cells(1,1)

    Az aktív lap B3 cellájába (ha nem a B3 az aktív):
    Cells(3,2)=Sheets("Munka2").Cells(1,1)

    A Cells(1,1) helyett írhatsz Cells(1)-et is, mert a cellákat így értelmezi az Excel: A1 -> Cells(1), B1 -> Cells(2), ... IV1 ->Cells(256)
  • Yan
    #850
    idézőjelek nélkül is hivatkozhatsz bármelyik cellára.
    :)
    de látom tényleg félreértettem, meló mellett csak felületesen olvastam el.
  • Tyco
    #849
    Sziasztok!
    Egy ilyen hivatokzást: =Munka2!A1 tehát, hogy egy lap cellája hivatkozzon egy másik lap cellájára hogyan lehet megírni makróban úgy, hogy a munkalap neve és a cella is változó legyen?
  • Delila1
    #848
    Szívesen.
    Igen, az a válasz is a kérdésedre jött. Én is háromszor olvastam el a kérdést, mire rájöttem, mit szeretnél elérni. Először nekem is a HA függvény jutott eszembe. Nem a megfogalmazással volt baj, csak elég nehéz szavakba önteni ezt a kérdést.
    A "B"-t is megadhatos egy cellában. Ha pl. a C1-be írod a B betűt, a függvény:
    =INDIREKT(C1&B1)
    Másik lapra is hivatkozhatsz: =indirekt("Munka1!A" & b1)
  • Delila1
    #847
    Ze gye kicsit azavosra sikeürlt. :)

    Írd le kicsit pontosabban, hogy mi is a feladat!
    Az a kérdés, hogy 1 embernek mennyit kell fizetnie, ha x szoba ára y Ft, és z személy bérli?
  • Chender
    #846
    Delila egy angyal vagy! Kösz a gyors segítséget!

    Ha ez is nekem jött: =HA(A1=7;A1;"semmi, vagy amit akarsz kiiratni")
    , akkor ezt nem tudtam értelmezni, mert nem írt ki semmit, ha nem írtam az idézőjelek közé!
  • rvn
    #845
    Hello! kellene egy gyors segítség! Adott egy tábla. Egyik oszlopba a szobák számai, melette a hozzá tartozó rá. Vannaka bérlők, és melette h meik szobát vették ki. Nekem az árat kell kiszámolni csak össze van keveredve. Meik függvényt használjam és hogyan?
  • Delila1
    #844
    =INDIREKT("B"&A1)

    Azt hiszem, erre kérdeztél rá.
  • Delila1
    #843
    Szívesen, örülök, hogy sikerült.
  • Yan
    #842
    talán, ha jól értelmeztem.

    =HA(A1=7;A1;"semmi, vagy amit akarsz kiiratni")
  • Chender
    #841
    Sziasztok!

    Lehet az Excelben dinamikusan hivatkozni? Azt értem ez alatt, hogy egy cella tartalmát szeretném megjeleníteni, de attól függően, hogy egy másik cellában milyen szám áll. Pl: A1-ben 7-es szám van. Én egy cellában a B(A1)-es (B7 cella) tartalmát szeretném kijelezni. Értelemszerűen az A1- ben lévő érték időnként változik. Próbáltam =B(A1) kombinációkat, de sajnos mindig hibát jelzett. Tud valaki segíteni?
    Köszönöm előre is!
  • dadalia
    #840
    Köszönöm!
    Nagyon jó.
    Botton_Click esemény lett, és változókba tölti a beírt dátumok numerikus értékeit.
  • Delila1
    #839
    A TextBox eseménye ilyesmi legyen:

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    sz = TextBox1.Text
    If sz > "" And Len(sz) = 10 Then
    If Mid(sz, 5, 1) = "." And Mid(sz, 8, 1) = "." And _
    IsNumeric(Mid(sz, 1, 4) * 1) And IsNumeric(Mid(sz, 6, 2) * 1) _
    And IsNumeric(Mid(sz, 9, 2) * 1) Then _
    Sheets("Munka2").Cells(1, 1) = CDate(TextBox1.Text) * 1
    End If
    End Sub

    A TextBox-ból való kilépés után a Munka2!A1 cellája felveszi a beírt dátum numerikus értékét.
    Ha nem írsz be értéket, vagy nem a 2009.12.27 formában írod be a dátumot, nem történik semmi.
  • dadalia
    #838
    Működik! Köszönöm!

    Még egy kérdés!
    UserFormon TextBoxba beírt dátumot (pl: 2009.12.27)hogy tudnám átváltatni álltalánosra, vagy számra?
  • Delila1
    #837
    Szívesen.
  • kelan
    #836
    Köszönöm szépen a segítségedet, pont erre volt szükségem! :)
  • Delila1
    #835
    Vagy csak simán átváltod a dátumokat tartalmazó cellák formátumát általánosra.
  • Delila1
    #834
    A dátumokat nem "2009.12.27" formátumban, hanem számként kell megadni.

    .MinimumScale = 40174
    .MaximumScale = 40272

    A lapodon egy oszlopban hivatkozol a dátumokat tartalmazó cellákra (=A2), és a képleteket formátumát általánosra, vagy számra állítod. Így megkapod a dátumok számértékét.
    A tengely formázásánál már beállíthatod a dátum formátumot.
  • dadalia
    #833
    Helló Mindenkinek!
    Elakadtam, hát ide szaladtam...
    Diagram kategória tengely, skála értékeinek átállítását próbálom makróval elvégeztetni.
    Így rögzítette:

    ActiveChart.Axes(xlCategory).Select
    With ActiveChart.Axes(xlCategory)
    .MinimumScale = "2009.12.27"
    .MaximumScale = "2010.04.04"
    .BaseUnitIsAuto = True
    .MajorUnit = 7
    .MajorUnitScale = xlDays
    .MinorUnitIsAuto = True
    .Crosses = xlCustom
    .CrossesAt = "2009.12.27"
    .AxisBetweenCategories = True
    .ReversePlotOrder = False
    End With
    ActiveWindow.Visible = False
    Windows("Diag.xls").Activate
    Range("A3").Select

    A With alatti minden sorra hibaüzi jön, hogy az érték nem állítható be!
  • Delila1
    #832
    Erről írtam az előbb...
  • Mikeee76
    #831
    Nem diagramon vagy összesíteni kellene, hanem a magukat a napokat (dátumokat) kellene bejuttatni a listából a kimutatásba. Kimutatásvarázslóval csak összeget vagy a darabszámot összesíti.
  • Delila1
    #830
    A dátumokat tartalmazó oszlop címét a SOR, és az ADAT mezőbe húzd át.
  • gergely1991
    #829
    Megcsinálod a dátumozást úgy hogy a cellaformázás>számfülön az kategóriáknál kiválasztod a dátum mezőt.(Majd ha lehet akkor másolod)
    Diagram varázslónál amikor létrehozol egyet vagy a 2.lépés-nél a adat fülön kiválasztod a x kategóriatenger felirataihoz beszúrod a dátumhoz tartozó cellákat (ugyanúgy ahogyan a tartományt hoztad létre)vagy amikor létrehoztál egyet:Akkor dupla katt az egyik értékre és kiválasztasz neki egy színt(ugyanúgy mindegyikhez)
    Gondolom erre gondoltál
  • Mikeee76
    #828
    Az előzőhöz
    Egy kereszttáblás kimutatás celláiban kellene a dátumokat feltüntetni.
    Bal szélen oszlopban az adatok, felső sorban a hónapok, a megfelelő dátumokat pedig az 'adatterületen' a megfelelő cellákba kellene beírni.
    Úgy tudom a kimutatásvarázslóval csak számokat lehet kezelni.
  • Mikeee76
    #827
    Sziasztok!

    Azt szeretném kérdezni, hogy egy listából hogyan tudom összeválogatni különböző adatokhoz tartozó dátumokat havonta.
    M.
  • Delila1
    #826
    Ezt csak makróval lehet megoldani.

    Sub Csere()
    Dim A, B, köztes
    Dim a_cim As String
    Dim b_cim As String

    Set A = Application.InputBox("Melyik cella tartalmát cseréljem meg?", "Csere", Type:=8)
    a_cim = A.Address
    Set B = Application.InputBox("Melyikkel?", "Csere", Type:=8)
    b_cim = B.Address
    köztes = A
    Range(a_cim) = B
    Range(b_cim) = köztes
    End Sub

    A makró bekéri a két cella helyét, amit egérkattintással is megadhatsz, utána felcseréli a két értéket. Tehetsz ki hozzá egy gombot, ha többször használod.
  • kelan
    #825
    Sziasztok! Hogyan tudnám rávenni az Excelt, hogy két kijelölt cella tartalmát felcserélje?
  • Delila1
    #824
    Kimutatás diagramot készíts, ne sima diagramot.
    Jelöld ki a két oszlopot, Adatok -> Kimutatás vagy kimutatásdiagram -> Kimutatásdiagram (kimutatással együtt).
    Az Elrendezésnél a SORhoz tedd a terméket tartalmazó oszlop címét, az ADAThoz az eladott darabszámét. Figyelj, hogy ide az összeg kerüljön, mert előszeretettel darabszámot akar tenni az Excel. Ha darabot tenne, duplaklikk, a megjelenő párbeszéd dobozban átállíthatod összegre.
    Új adatok felvitele után adj frissítést a kimutatásban. A kimutatáson állva a Kimutatás eszköztáron egy felkiáltójel ikon adja a frissítést.
  • cicamisa
    #823
    Sziasztok!

    Diagramot kell készítenem és elakadtam. Már széttanulmányoztam a súgót és a guglit is.
    A lényeg, hogy oszlopdiagramot kell készítenem a termékféleségek és az eladott darabszám függvényében. A probléma az, hogy van kb. 10 féle termék. Mellette lévő oszlopban az eladott darabszám. De emellett más adatok is vannak a táblázatban, ezért nem 10 sor van, hanem kb. 50. Így egy termék az oszlopban többször is szerepel. Azt kellene elérnem, hogy a diagramban van 10 oszlop a termékeknek, majd mikor ismételten az adott termék kerül rögzítésre, akkor annyival növelje a diagram értékeket, amennyi be van írva a darabszámba mellé.

    Pl. 50 sorban 8-szor szerepel a bab, a darabszám az mindig más érték.

    Hogyan lehetne rávenni az ecxel-t, hogy automatikusan figyelje, hogy mikor a bab-ot rögzítem, akkor a darabszámával növekedjen a diagram?

    Gondolom valamilyen hozzárendeléssel, de ezt nem találtam a súgóban.

    Excel 2007-es-ben van.

    Köszönöm előre is!
  • Yan
    #822
    ctrl+c, ctrl+v és a beillesztésjelnél választod "csak az értéket",
    vagy =c1 és végig másolod
  • gergely1991
    #821
    Ha jól értettem akkor csak az eredmény legyen ugyanaz akkor így:
    Abszolút hivatkozással:
    Például:
    =$A$1+$B$1 Így nem változik meg egyik érteke sem....
  • eNorti
    #820
    Egy olyan kérdésem lenne, hogy át szeretném másolni egy cella tartalmát egy másik cellába, de úgy, hogy ne a függvény másolódjon, hanem csak a függvény eredménye.

    Pl.: Ha csinálok egy 'A1+B1=C' függvényt akkor a függvény nélkül csak az eredményt tudjam kimásolni azaz a 'C'-t.

    THY
  • Delila1
    #819
    Amikor átviszed a vevők adatait a gyűjtő lapra, az összegeiket szorozd meg -1-gyel így: egy cellába (akárhova) beírod a -1-et, másolod, kijelölöd a vevők összegeit, jobb klikk, irányított beillesztés, szorzás. A -1-et tartalmazó cellából törölheted az értéket.
    Két napja írtam privátban, hogy ha megadod az e-mail címedet, elküldöm a tovább egyszerűsített lapokat.
    Még jobb, ha elküldöd a fájlodat, persze hamis adatokkal, hogy lássam a felépítést.
  • sgsamu
    #818
    Delila köszi. Minden jól működik!
    Hogyan tudnám a kifizetetlen, azonos vevőket és szállítókat összesíteni, hogy a végén csak a különbözetet kelljen elszámolni a cégek között?
    Példa: Pirosalma Kft, mint szállító 1000 Ft, vevőként ugyanő 1500 Ft. Egyenleg 500 Ft-al tartozik a Pirosalma nekünk.
    Azt már megcsináltam, hogy kézzel kerestem ki az azonos cégeket és az egyenleg oszlop megjegyzése attól függ száll. v. vevő a nagyobb beírja ki kinek tartozik. Nekem automatán kellene hogy összesítse a ki nem fizetett, de azonos cégeket.
    Köszi
    Samu
  • Delila1
    #817
    A szállítóknál a P oszlop képlete: =HA(WEEKNUM(E2+1;2)=WEEKNUM(MA()+1;2);1;0)
  • Delila1
    #816
    Tanítsd meg a 2003-at sok új függvényre: Eszközök/Bővítménykezelő.
    Jelöld be az Analysis ToolPak, és egy bajjal az Analysis ToolPak-VBA előtti négyzeteket.
    Az O oszlop képlete ezután =HA(ÉS(E2<MA()+2;AB2="n");1;0), A P-é pedig legyen =HA(WEEKNUM(E2;2)=WEEKNUM(MA();2);1;0).
    Három fix adat lesz a kritérium táblában:
    S4->AB oszlop címe, R5->1, S5->n. Csak az R4 változik a kigyűjtendő adatoknak megfelelően. Az egyik kigyűjtésnél az O, másiknál a P oszlop címét kell beírnod.
    Mikor átmásolod az adatokat a gyűjtő lapra, egy oszlopba vidd be melléjük, hogy ez a vevő_heti, vevő_lejárati adata. A szállítók lapján alakítsd át a képletet az n+1 naphoz.
  • sgsamu
    #815
    Köszönöm az eddigieket Delila. A kiegyenlítést nem az M, hanem az AB oszlopban jelölöm i a kifizetett n a ki nem fizetett.
    Az excel 2003 sajnos nem ismeri a weeknum-ot. Ezzel próbálkoztam már. Egyébként a szállítók fülön nem esik egybe a hetek száma a fizetési kötelezettséggel, mert n napon indított összeg csak n+1 napon érkezik a szállítóhoz, tehát a köv.hétfői esedékesség is még adott hét kötelezettsége.