Excel kérdés

Jelentkezz be a hozzászóláshoz.

#864
Köszönöm

#863
Helló!
Van egy sorom:
Rows("5:10").Delete Shift:=xlUp
Azt szeretném elérni, hogy a törlendõ tartomány egyik elemét változóval tudjam megadni. (Mondjuk a 10.)
Delila1
#862
Ha a dátumaid az A1-ben kezdõdnek, akkor a B1-be:
=HA(VAGY(HÉT.NAPJA(A1;2)=6;HÉT.NAPJA(A1;2)=7);"X";"")

Ez csak a szombatok és vasárnapok mellé tesz X-et. Ha az ünnepnapok mellé is szeretnél tenni, akkor az év ünnepnapjait be kell valahova írnod egymás alá, majd ennek a kijelölt tartománynak add az Ünnepek nevet (Beszúrás, Név, Név megadása).
Ezután a B1 képlete:

=HA(VAGY(HÉT.NAPJA(A1;2)=6;HÉT.NAPJA(A1;2)=7;NEM(HIBÁS(FKERES(A1;Ünnepek;1;0))));"X";"")

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#861
Szeretném megoldani, hogy egy oszlopba az aktuális hónap munkaszüneti napjainál egy x-et rakjon. Hogy tudom megcsinálni?
Kösz

Delila1
#860
Nincs mit.

Ha már VB-nél tartunk, a programnyelvekben megengedett a matematikai képtelenség:
s = Right(s, Len(s) - 1), nem szükséges új változó (s2) deklarálása.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

Delila1
#859
Nincs mit.
Ha már VB-nél tartunk, nem szükséges új változót alkalmazni a példádban.
s2 = Right(s, Len(s) - 1) helyett az s = Right(s, Len(s) - 1) is elég. Igaz, hogy ez matematikai képtelenség, de a programnyelvekben normális értékadás.
😊

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#858
Jó azt azért tudom, hogy 5+4=9 de én string-eket adtam össze. Az asc-t és a chr-t is ismerem csak nem jutott eszembe ez az alkalmazásuk. De persze köszönöm szépen mégegyszer a segítséget.

Delila1
#857
Az & összefûzi az adatokat. Alma & fa=Almafa, 5+4=9, 5 & 4=54.

Az oszlop változó az aktív oszlop sorszámát veszi fel, ha tehát az aktív oszlopod N, akkor 14 lesz a változó értéke.
Az "A" betû ASCII kódja 65, a lekérdezése munkalapon =kód("A"), vagy ha az A a B3 cellában van, akkor =kód(b3). Itt érdemes megemlíteni, hogy a kód(b3) függvény a B3 cella elsõ karakterének ASCII kódját adja vissza.

VB-ben: változó(vagy cella)=asc("A").

Az asc ellentéte a CHR(x), ami egy numerikus értéket alakít át nem numerikussá. Mivel az A értéke 65, ezért kell 64-et hozzáadni az oszlop változó értékéhez. Ha a változó értéke 1, akkor a chr(változó+64) értéke "A". A változó 14-es értéke esetén 64+14=78, ami az N karakter ASCII megfelelõje.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#856
Wow! Te tényleg értesz ehhez az Excel Visual Basic-hez! Ezt az & jeles dolgot nem is tudtam. Ez menyiben különbözik a + -tól? És a Chr(oszlop + 64) sem hiszem hogy eszembe jutott volna! Szóval köszönöm szépen a segítséget, sokat segítettél és ismét tanultam valamit!<#worship>

Delila1
#855
Kicsit kevesebb sorral:

Sub Címmel()
Dim lap As String
Dim cím As String

lap = ActiveSheet.Name
cím = Selection.Address
Sheets("Munka1").Cells(1).Formula = "=" & lap & "!" & cím
End Sub


Másik megoldás, ahol relatív hivatkozás lesz a Munka1!A1-ben:

Sub RelHiv()
Dim lap As String
Dim sor As Integer
Dim oszlop As Integer

lap = ActiveSheet.Name
sor = ActiveCell.Row
oszlop = ActiveCell.Column
Sheets("Munka1").Cells(1).Formula = "=" & lap & "!" & Chr(oszlop + 64) & sor
End Sub

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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! :-)
#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)

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

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.

&#165; xfire: kistekila

#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)

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

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?

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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?

Gigabyte Z170-HD3P, I5 6600K@4Ghz@1,17V, 2x8 DDR4 Corsair Vengeance 2666Mhz, NZTX Kraken X61, EVGA Supernova G2 750W, Samsung 850 evo 128Gb, WD Blue 1TB, Phantes Enthoo Pro M Acrylic

Delila1
#844
=INDIREKT("B"&A1)

Azt hiszem, erre kérdeztél rá.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

Delila1
#843
Szívesen, örülök, hogy sikerült.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

Yan
#842
talán, ha jól értelmeztem.

=HA(A1=7;A1;"semmi, vagy amit akarsz kiiratni")

&#165; xfire: kistekila

#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!
#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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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...

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

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

Xubuntu 14.04.5 /WIndows 7 Enterprise/Windows XP professional SP3(némely szoftver inkompatibilis az elöz?vel). :)

#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.

#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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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

&#165; xfire: kistekila

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....

Xubuntu 14.04.5 /WIndows 7 Enterprise/Windows XP professional SP3(némely szoftver inkompatibilis az elöz?vel). :)

#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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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)

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

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.

Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.

#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.