Excel kérdés
Jelentkezz be a hozzászóláshoz.
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.)
=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.
Kösz
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.
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.
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.
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.
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.
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! :-)
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
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.
😊
de látom tényleg félreértettem, meló mellett csak felületesen olvastam el.
¥ xfire: kistekila
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?
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.
Í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.
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é!
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
Azt hiszem, erre kérdeztél rá.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
=HA(A1=7;A1;"semmi, vagy amit akarsz kiiratni")
¥ xfire: kistekila
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!
Nagyon jó.
Botton_Click esemény lett, és változókba tölti a beírt dátumok numerikus értékeit.
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.
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?
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
.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.
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!
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
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). :)
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.
Azt szeretném kérdezni, hogy egy listából hogyan tudom összeválogatni különbözõ adatokhoz tartozó dátumokat havonta.
M.
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.
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.
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!
vagy =c1 és végig másolod
¥ xfire: kistekila
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). :)
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
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.
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
Program az, ami az adatokat hibaüzenetté konvertálja. Lassú munkához idő kell.
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.
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.