2417
megoldást keresek erre a problémára
-
#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
-
#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)
-
#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? -
#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)
-
#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é! -
#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? -
#844 =INDIREKT("B"&A1)
Azt hiszem, erre kérdeztél rá. -
#843 Szívesen, örülök, hogy sikerült. -
#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. -
#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? -
#837 Szívesen. -
kelan #836 Köszönöm szépen a segítségedet, pont erre volt szükségem! :) -
#835 Vagy csak simán átváltod a dátumokat tartalmazó cellák formátumát általánosra. -
#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!
-
#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. -
#830 A dátumokat tartalmazó oszlop címét a SOR, és az ADAT mezőbe húzd át. -
#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. -
#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? -
#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! -
#822 ctrl+c, ctrl+v és a beillesztésjelnél választod "csak az értéket",
vagy =c1 és végig másolod -
#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 -
#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 -
#817 A szállítóknál a P oszlop képlete: =HA(WEEKNUM(E2+1;2)=WEEKNUM(MA()+1;2);1;0) -
#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.