Hirdetés
-
PROHARDVER!
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Surfym@n
senior tag
válasz
Fire/SOUL/CD
#7798
üzenetére
jó szórakozást...

teret el ne görbítsd...
-
-
Surfym@n
senior tag
válasz
Fire/SOUL/CD
#7796
üzenetére
Köszi, így már jó.
Diagramos kérdésemre van ötleted esetleg?
-
válasz
Surfym@n
#7794
üzenetére
Hali!
Ahhoz, hogy két monitoron tudj így dolgozni, az kell, hogy az Excel 2007 2 példánya fusson. Alapban nem így fut, egy példányon belül nyitja meg a különböző munkafüzeteket.
Ahhoz, hogy ezt elérd (Feladatkezelőből van a kép), Excel gomb/Excel beállításai/bal oldalt Speciális/jobb oldalt Általános csoporton belül az Az egyéb DDE-alapú alkalmazások mellőzése elé tegyél pipát. Lépj ki az Excelből, majd indítsd el újra. Arra felhívnám a figyelmet, hogy ez esetben, csak úgy nyithatsz meg munkafüzetet, hogy azt az excelből betöltöd. Az a megoldás, hogy ütök egy entert egy XLS-en és elindul az excel és automatikusan megnyitja az xls-t, az nem fog működni...Remélem segít...
Fire.
-
föccer
nagyúr
-
Surfym@n
senior tag
Sziasztok!
Olyan problémám van, hogy excel2007 alatt sehogy sem tudom kihasználni mind a két monitort, amivel dolgozok. Mit kell beállítani excel2007-ben, hogy pl. 2 táblázatot két külön ablakban (ezáltal külön monitoron) láthassak? Eddig ahány táblát megnyitottam, valamennyit egy "nagy ablakon" belül futtatta, s az osztott nézet is csak ezen belül valósult meg.
Másik kérdésem grafikonhoz kapcsolódó. Lehet olyat excel2007-ben készíteni, hogy ha van két különböző nagyságrendű grafikonom, akkor két külön értéktengelyt állítsak be nekik (egyik értéktengely a diagram egyik oldalán, másik a másik oldalon) az informatívabb grafikonábrázolás végett.
Segítségeteket köszönöm.
-
Hali!
Akkor C1-be:
=HA(VAGY(B1=0;A1=0);A1-B1 & " m2";(B1/A1-1)*100 & "%")Nem tudom, melyikből vontad ki melyiket, de ezt módisíthatod. Ebben az esetben a C oszlopot SZÁM-ként formázd. Ennek a megoldásnak az a hátránya, hogy így nem fogsz tudni utólagos számolási feladatokat elvégezni a C oszlop adataival.
Erre az lehet a megoldás (már ha szükséged van rá), hogy a D oszlopot használjuk kvázi, mértékegységként. Ez esetben:
C1-be
=HA(VAGY(B1=0;A1=0);A1-B1;(B1/A1-1)*100)D1-be
=HA(VAGY(B1=0;A1=0);"m2";"%")C oszlopot jobbra, míg D oszlopot balra igazítod...
Fire.
-
válasz
Fire/SOUL/CD
#7790
üzenetére
Közelítünk a tökéleteshez, köszönöm a segítségedet Fire.
A közepén, a nem megengedett érték helyére befirkantottam, hogy akkor a két cella különbsége legyen beírva, ez odáig ok is lenne, de egy %-os sorban vagyunk, azt nem lehetne elérni, hogy beírja az eltérést, de mögé biggyessze a mértékegységet (m2)? Akkor egyértelmű lenne, hogy azokban a sorokban nem százalék van, nem arányszám, hanem tényleges eltérés.
Aztán ígérem, befejeztem ennek a csavarását...

-
-
válasz
Fire/SOUL/CD
#7788
üzenetére
Köszönöm, ez így tökéletes.
Ha még egy kicsit cifrázhatnám, aztán már lehet, hogy sok lesz: mit lehetne tenni az ügyben, ha valamelyik cellaérték 0? Gondolok itt arra, hogy lesz olyan, amikor a mért adat 0, vagy az előirányzott, de lehet mind a kettő is. Egyik esetbe ugye jön a zéróosztós hiba, a másik esetben a -100 százalék. Nem tudom, hogy lehetne-e olyan feltételrendszer, hogy ha az adat zéróosztós, akkor azt valami más módon jelezni lehet-e, mondjuk a két cella közti különbséget ez esetben. Bár csak ötletelek. Csak nem szeretném, ha buta zéróosztó vagy hülyeség szerepelne ott.
-
-
Sziasztok,
már olyan rég nem kérdeztem butaságokat, hogy éppen itt az ideje.

Hogy lehetne azt megoldani, hogy adott egy nominálási táblázat, amiből eltérési adatokat szeretnék gyártani.
Szép magyarosan egy példával érzékeltetném, ha sikerül: mondjuk van egy adott napon egy adatom, ami mondjuk 100. Mellette az adott napra mért adat, ami mondjuk 120. Ehhez képest szeretném, ha a mellette lévő rublikába olyan érték kerülne, hogy ez az érték a 100-hoz képest hány százalékkal tér el, lefele vagy felfele, és az igazi az lenne, ha ez 30% alatt lenne, akkor zölddel kerülne bele az eltérés, ha ezt meghaladó, akkor pirossal.
Lehet, hogy zagyvaságnak hangzik, ha nem érthető, megpróbálok még egyszer nekifutni.Remélem tudtok segíteni, előre is köszönöm az önzetlenségeteket!
-
föccer
nagyúr
válasz
Delila_1
#7783
üzenetére
Igen, addig látszik, amig nem 40 oszlop van egy lapra kinyomtatva 6-os betűnagysággal (85% nyomtatási nagysággal), olyan szorosra véve az oszlopokat, hogy a cellatartalmaknak így is csak az eleje látszik. Sajnos így is nagyon zsúfolt
. És mindennek fejébe egyszerre 10-12 lappal kell majd dolgozni. Hidd el, legnagyobb gondomnak se szeretném, ha +ba azt kelljen bogarászni, hogy melyik lap éppen miről szól.No, hamán nyomtatá:
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Lehet-e valami olyat csinálni, hogy ne kapásból kinyomja a nyomtatóra, hanem jelenírse meg a nyomtatási párbeszéd ablakot? Mint Delphiben az
if printdialoge.execute then
begin
...
endobjektummal csináltam? Vagy ez is ezt csinálja? Még nem próbáltam ki, mert nem akarom fölösbe használni a festéket, meg a paprít
Illetve figyelembe veszi-e az eredetileg beállított nyomtatási területeket, illetve az olddalbeállításokat (margók, élő fej élőláb, minden oldalon látszódó sorok beállaítása stb). Gondolo igen, csak még nem mertem kipróbálni...Köszi,
üdv, föccer
-
föccer
nagyúr
válasz
Delila_1
#7779
üzenetére
Nem baj az. Az eredeti tábla második sora eddig is üres cellák voltak. Egészen pontosan erre a sorra volt beállítva az autoszűrő. Így teljesen pörfekt, ha abba a sorba írom a critériumokat. Már csak azért is, mert így a nyomtatásban, az üres sorban eléggé feltünő az a néhány kitöltött cella. Így ránézésre látszik, hogy melyik oszlopok, mi szerint vannak szűrve
És végeredményben ezt volt a cél.üdv föccer
mod:
Mikor már a lapra álltál [Sheets("Receptek").Select], nem kell külön megadni a lapot:
Sheets("Receptek").Cells(1, i).Value = F.Criteria1 helyett elegendő a
Cells(1, i).Value = F.Criteria1Amikor nem adtam meg neki a teljes elérést, akkor a vezérlők sheeten hajtotta végre cellatartalom beírását. Nem tudom miért, de így volt. Ezzel tutira mentem, és így szépen műxik.
üdv, föccer
-
Delila_1
veterán
A
Cells(1, i).Value = F.Criteria1 sor helyett legyen
Cells(1, i).Value = Right(F.Criteria1, Len(F.Criteria1) - 1)Mikor már a lapra álltál [Sheets("Receptek").Select], nem kell külön megadni a lapot:
Sheets("Receptek").Cells(1, i).Value = F.Criteria1 helyett elegendő a
Cells(1, i).Value = F.Criteria1 -
Delila_1
veterán
Sub föccer()
Dim AF As AutoFilter
Dim F As Filter
Dim i As Long, usor As Long, C As Long
Sheets("Munka1").Select
Set AF = ActiveSheet.AutoFilter
C = AF.Filters.Count
For i = 1 To AF.Filters.Count
Set F = AF.Filters(i)
If F.On Then
Cells(1, i).NumberFormat = "@"
Cells(1, i).Value = F.Criteria1
End If
Next
End Sub -
föccer
nagyúr
válasz
Delila_1
#7770
üzenetére
No, itt a végleges, nálam is hibátlanul futó makró

Sub CommandButton1_Click()
Dim AF As AutoFilter
Dim F As Filter
Dim i As Long, usor As Long, C As Long
Sheets("Receptek").Select
Set AF = ActiveSheet.AutoFilter
C = AF.Filters.Count
Range(Cells(2, 1), Cells(2, C)).Value = ""
For i = 1 To AF.Filters.Count
Set F = AF.Filters(i)
If F.On Then
Sheets("Receptek").Cells(2, i).NumberFormat = "@"
Sheets("Receptek").Cells(2, i).Value = F.Criteria1
End If
Next
End SubKöszi a segítséget, nélkületek nem lett volna meg. Soakt tanultam belőle. Most jön a következő feladat

Üdv, föccer
-
válasz
Fire/SOUL/CD
#7776
üzenetére
Tárgytalan, elkeltek.
Fire.
-
Hali!
Akit érdekel esetleg
Excel 2007 VBA Reference
Excel 2003 VBA ReferenceFire.
UI: Akit az Excel-el kapcsolatban érdekel EBooks, az privben keressen meg.
-
föccer
nagyúr
válasz
Delila_1
#7774
üzenetére
viszont a runtime- error még mindig él, és vigyorog az arcomba...
bekapcsolok mindent, és csinálok egy restartot, hátha....
hmm, restart után nem dobott hibát....
Viszont be kelett tennem egy Sheets("Receptek").Select-et, hogy utánna helyesen fusson a Set AF = ActiveSheet.Autofilter utasítás.
No, a másik, hogy ugyan hibát nem jelez, de nem írja be nekem a megfelelő adatokat... Még nem tudom, de minden esetre legalább van egy futtatható makróm.
Köszi szépen az eddigieket is. Nagy voltál

Üdv, föccer
-
Delila_1
veterán
-
föccer
nagyúr
válasz
Delila_1
#7770
üzenetére
Run-Time error '91':
Objekt variable or With block variable not set.A hibát For i = 1 To AF.Filters.Count sorraadja.
Ha inicializálom elötte az i -t nem segít. Ha az elejére beszúrok egy sheets("Receptek").select-et, nem segít.

Lassan kezdem azt hinni, hogy bennem van a hiba...
Kérdés: a lent írt kódban mit akar csinálni az usor változó? Nem egészen tudom értelmeni az
usor = Range("A65536").End(xlUp).Row utasítást...
Köszi az eddigi segítséget. Nem tudom, hogy mi a rákért nem akar rendesen menni...
üdv, föccer
-
Delila_1
veterán
Itt a sültgalamb – én is segítséget kértem hozzá.
Sub Filt()
Dim AF As AutoFilter, F As Filter, i As Long, usor As Long
Set AF = ActiveSheet.AutoFilter
usor = Range("A65536").End(xlUp).Row
For i = 1 To AF.Filters.Count
Set F = AF.Filters(i)
If F.On Then
Cells(1, i) = Cells(usor, i)
End If
Next
End Sub -
föccer
nagyúr
Private Sub CommandButton1_Click()
Dim i As Integer
Dim w As WorksheetSet w = Worksheets("Receptek")
For i = 1 To 20
If w.Cells(2, i).AutoFilter > "" Then
Cells(2, i).Value = Selected.AutoFilter.Filters
End If
NextEnd Sub
Nem spammelek, csak próbálkozom
Hogy lásd, hogy nem csak a sültgalambot várom
)Köszi,
üdv, föccer
mod:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim w As Worksheet
Set w = Worksheets("Receptek")
For i = 1 To 20
If w.Cells(2, i).AutoFilter > "" Then
w.Cells(2, i).Value = w.Cells(2, i).AutoFilter.Criteria1
End If
Next
End Subobjekt required. Mindezt a w.cells(2, i).value = w. cells(2, i).autofilter.criteria1 sorra...
üdv, föccer
-
föccer
nagyúr
Következő próba:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim w As Worksheet
Set w = Worksheets("Receptek")
For i = 1 To 20
w.Cells(2, i).Select
If Selected.AutoFilter.Filters > "" Then
Selected.Value = Selected.AutoFilter.Filters
End If
Next
End SubAzt mondja, hogy Range osztály select metódusa hibás...

-
föccer
nagyúr

Private Sub CommandButton1_Click()
Dim i As Integer
Dim w As Worksheet
Set w = Worksheets("Receptek")
For i = 1 To 20
w.Cells(2, i).Selected
If Selected.AutoFilter.Criteria1 > "" Then
Selected.Value = Selected.AutoFilter.Criteria1
End If
Next
End SubMiért nem akarja az igazságot??? Pedig annyira egyszerű utasítást akarok kiadni, hogy pascalban már 100000x megcsináltam volna...
Itt sem a szemantikával van a bajom, hanem az ismeretlen objektumokkal...üdv, föccer
Excel nem ismeri az objekt pascalt?
-
föccer
nagyúr
válasz
Delila_1
#7764
üzenetére
Amennyiben nem ez a célod, írd le pontosan, mit is akarsz. Azt szeretnéd, hogy a Lista lapon egyenként beállítod a (20) szűrőt, és ezek a kézzel beállított kritériumok jelenjenek meg a Kritériumok!B1
20 tartományában?Majdnem.Az egyenként, kézzel beállított kritériumok jelenjenek meg, ugyanezen lapon azokban a cellákba, ahol az autószűrő is van. Magyarán, azt szeretném elérni, hogy úgy jelenjen meg a nyomtatásban, mintha egy érvényesítés-> listából választottam volna ki.
De lassan meg lesz a megoldás, csak még nem látom át teljesen, a szintaktikát, meg az objektumok kapcsolatát.

kérdés: mi a különbség a ":=" és az "=" között. Pascalban az első az értékadás, a második pediglen érték vizsgálat. De ahogy nézem, ez itt fordítva van?

Valamint az értékadás jobbról balra, vagy balról jobbra történi?
köszi,
üdv, föccer
mod: amit írsz kódot, még mindig a kritérium cellákat ellenőrzi, hogy üresek-e. Nekem arra lenne szükségem, hogy az autoszűrő critériumát vegye feltételnek, és ha annak van valamilyen értéke, akkor ezt az értéket kell bevinni a cella értékének. Tehát a feltételt és a műveletet kellen még megcserélni
. Jah, és mindezt persze ugyaz azon a munkalapon.Köszi szépen.
Üdv, föccer
-
Delila_1
veterán
Most ezt tudja:
Nevezd át a lapokat. Ahol a sok adatod van, legyen Lista, a másik Kritériumok.
A Lista lapon vannak 20 oszlopban az adataid. A Kritériumok lapon a B1:B20 tartományban érvényesítéssel vannak az egyes oszlopokra vonatkozó kritériumok, pl. ha a Lista!A oszlopban az almára akarsz szűrni, akkor a Kritériumok!B1 cella értéke alma; ha az Lista!E oszlopban Fótra szűrnél, akkor a Kritériumok!B5 legyen Fót.
A gombot az Űrlapvezérlők közül tedd ki a Kritériumok lapra.
Sub filt()
Dim i As Integer
Sheets("Lista").select
Cells(1).Select
For i = 1 To 20
If Sheets("Kritériumok").Cells(i, 2) > "" Then
Selection.AutoFilter Field:=i, Criteria1:=Sheets("Kritériumok").Cells(i, 2)
End If
Next
End SubAmennyiben nem ez a célod, írd le pontosan, mit is akarsz. Azt szeretnéd, hogy a Lista lapon egyenként beállítod a (20) szűrőt, és ezek a kézzel beállított kritériumok jelenjenek meg a Kritériumok!B1:B20 tartományában?
-
WildBoarTeam
senior tag
válasz
Delila_1
#7758
üzenetére
Így van nem összegezni akarok.

Lestem is egy nagyot erre a folyamatra, mert rögtön kínai volt.
Sajnos ez szerintem tényleg makrós megoldást igényel, de ehhez kevésnek érzem magam. Mivel a D oszlopban lévő címekhez kell néznem az E oszlop negatív összegeit, viszont a D oszlop címei mögött nem kellene figyelni az emelet+ajtó számokat.
Vagyis úgy kellene, hogy megnézem a D oszlopban a címet a házszámig, összehasonlítom az alatta lévővel, addig amíg ugyan az, ha eltér, akkor megnézem ezekhez a címekhez tartozó E oszlop sorait, ha mindegyik negatív, akkor a címek hátterét megváltoztatom. Na ez az amit nem tudom hogyan oldjak meg.
-
föccer
nagyúr
válasz
Delila_1
#7756
üzenetére
A feltételnt nem fordítva kellene? Ha az autoszűrő critériuma nagyobb mint "", akkor a cella értéke legyen a critériummal egyenlő? Így azt vizsgálja, hogy van-e valami a cellában, és ha igen, akkor a kritériumot beállítva a cella tartalmának. Nekem pont fordítva kelle...
Üdv, föccer
-
föccer
nagyúr
válasz
Delila_1
#7756
üzenetére
Runtime error '1004'
Range osztály Autofilter metódusa hibás

Egyébként amikor a Sheets paraméterét adom meg (hogy milyeik munkalapra akarok hivatkozni, akkor a paraméterbe "melyik nevét" kell megadni? Atulajdonságoknál van olyan, hogy (Name), értéke Munka1 és van oylan, hogy Name, értéke vezerlok (ez az általam, a munkalapnak adott megnevezés?
Köszi,
üdv, föccer
-
Delila_1
veterán
válasz
WildBoarTeam
#7757
üzenetére
Most látom, hogy nem is összegezni akarod az értékeket, hanem formázni a cellákat.
Azt hiszem, ez csak makróval lehetséges. Az összevonásokat mindenesetre érdemes megszüntetni. -
Delila_1
veterán
válasz
WildBoarTeam
#7757
üzenetére
A helyedben megszüntetném a B oszlop összevonásait, így minden megszüntetés felső sorába kerülne a cím. Kijelölöd a B4:Bsok tartományt, Ctrl+g (Ugrás), Irányított, Üres cellák. A kijelölés első cellája a B5 lesz. Ide beírsz egy = jelet, és megnyomod a fel nyilat, Ctrl+enter. Jó, ha ezután a teljes B oszlopra adsz egy irányított érték beillesztést.
Most már tudod alkalmazni a SZUMHA függvényt az összegzésre.
Feltételes formázással eltüntetheted a B ismétlődő elemeit (háttér színűek legyenek a karakterek).
-
WildBoarTeam
senior tag
Üdvözletem!
Adott egy Excel tábla. Ha nem veszem bele a fejlecet, akkor az adatok A4:E7619 tartományban vannak. (jó sok
)
A oszlop (kód) és a B oszlop (címek) is összevont cellákat tartalmaz. A D oszlop ezekhez a címekhez tartozó emelet + ajtók, a C oszlop ezen helyek azonosítói. E oszlop összegeket tartalmaz (pozitív vagy negatív).
Nekem ki kell gyűjtenem azokat az azonos címen lakókat (D oszlop, mivel az emelet+ajtót nem kellene figyelni.), ahol az E oszlopban lévő összegek mind negatívak (pl.: ezek hátterét elszínezni). Itt van a példa excel állomány, ahol jelöltem zölddel mire gondolok, mert elmondani nem lehet normálisan.
Csak ugye ezt valahogyan automatizálni szeretném.Előre is köszönet!

-
Delila_1
veterán
Csúnya hiba, a feltételt kihagytam.
Sub filt()
Dim i As Integer
Cells(1).Select
For i = 1 To 20
If Sheets(2).Cells(i, 2) > "" Then
Selection.AutoFilter Field:=i, Criteria1:=Sheets(2).Cells(i, 2)
End If
Next
End SubA Munka2 lap fizikailag is második nálam, ezért a Sheets(2) hivatkozás is megfelel.
-
-
föccer
nagyúr
Hu, már faradt vagyok. Azért ez még erősán át kellene gondolnom

A Cells("B",i) tuti baromság, az már bizos.
De alényerg asszem érthető. Azt szeretném, hogy egy for-ral végigszaladni az összes auto szűrőn, és ahol van beállított szűrőérték, azt berakom az alatta lévő cellára.
Amiko futtatni akartam kiírta, hogy fattal error. pls change user

üdv, föccer
-
föccer
nagyúr
válasz
Delila_1
#7725
üzenetére
Na, most van időm jobban átnézni, hogy mi írtál.
Az a helyzet, hogy nem teljesen erre gondoltam. Az eredeti elképzelés az, hogy a van egy olyan lapom, ahol beállítom a szűrési feltételeket. Ehhez nem használok makt, hanem simán, a legördíthető is listákat. Ezután (egy másik munkalapon) megnyomok egy gombot, és voilá, töltöget nekem minden félét.
Valami ilyesmi az elképzelés:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 to 20
With ThisWorkBook.Sheets("munka2").autofilter.field(i)
if not criterial1 = "" then
cells("B", i).value = .citerial1
end if
end with
NextEnd Sub
És persze a print a végére, de az már csk formaság...
Viszont valami nem kerek, mert nem akar menni...

i need help

köccke
Üdv, föccer
-
-
Delila_1
veterán
Igen. Az ÉRTÉK függvény helyett viszont mást írnék.
Ahhoz fel kell venned egy új oszlopot, feltöltöd a képletekkel, majd az újat irányítottan értékként rá kellene illesztened az eredetileg szövegként megadott számokat tartalmazó oszlopra, végül a képletet tartalmazó ideiglenes oszlopot törlöd.
Ezek helyett a ciklusmagbancells(sor,3)=cells(sor,3)*1
feltételezve, hogy a C oszlopban vannak a szöveg formátumú számok.
-
Delila_1
veterán
A #7740-ben a sor a ciklusváltozó a
Cells(sor,7).Formula= "=VLOOKUP(F" & sor & ",A:B,2,0)"
sorban. -
föccer
nagyúr
válasz
Delila_1
#7739
üzenetére

mint macska az esőt...
ezeken a hivatkozáson még agyalnom kell, mert még nem látom át a logikáját, de a többi megvan. Frankó. Gyakorlatilag, akkor úgy lehet makróból futtatni a már megszokott függvényeket, hogy kiválasztom az adott cellát, majd az aktív cellába beíratom képletként...

-
Delila_1
veterán
Az Fkeres-re itt egy példa:

Az G1 képletére a rögzítés ezt adta:
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],C[-6]:C[-5],2,0)"
Átalakítva:
ActiveCell.Formula = "=VLOOKUP(F2,A:B,2,0)"
Ezt az átalakítottat a G2 cellán állva futtattam.
Ciklusba is beteheted, ott
cells(sor,7).formula= "=VLOOKUP(F" & sor & ",A:B,2,0)" -
Delila_1
veterán
Egyenként meg tudnám mondani, de ezeket legjobb, ha makrórögzítéssel kipróbálod.
Rögzítésnél megtudod az angol megfelelőjüket.
R1C1 hivatkozást ad: az RC[-1] azt jelenti, hogy a sor, amire hivatkozol, nem változik, de az oszlop 1-gyel kevesebb, mint ahova a képletet írtad.
A C oszlop képletében ez azt jelenti, hogy a B oszlop azonos sorában lévő cellára hivatkozol.
Leírva kacifántos, biztos jobban is el lehetne mondani. -
föccer
nagyúr
válasz
Delila_1
#7735
üzenetére
Üdv!
Rá tudom valahogy venni a VBasicot, hogy futtassa a már jól begyakorolt, és ismert excell függvényeket? Vagy külön le kell kódolnom mondjuk az fkeres(,,,), vagy az érték() függvéyneket? Ha igen, akkor hogyan? Sokat segítene, ha nem kellene mindent megírnom

Help-ben így hirtelen nem találom

köszi, üdv: föccer
-
föccer
nagyúr
válasz
Delila_1
#7735
üzenetére
jahjahjah. A ciklusok megvannak. A gombnyomásra szorzótáblát már megcsináltam (avagy a for ciklus alapjai
)No ,meg kezdem érezni, hogy hol, mit hogyan találok meg. Kezdem látni a builder felépítését. Köszi a sok segítséget, még biztosan jövök kérdezni

üdv, föccer
mod: a for-nál kihagytad a végéről a next-et

üdv, föccer
-
Delila_1
veterán
A Worksheet_Change esemény tud területet kezelni.
sor=Target.Row
oszlop=Target.Column
Msgbox Target.Address (egy kijelölt területre vittél be Ctrl-lel adatokat)For i=0 to 9, vagy For i=0 to 9 step 3, vagy For i=15 to 3 step-1
Elöltesztelős ciklus, pl.:
sor=10
Do While cells(sor,2)<>""
'ciklusmag
sor=sor+1
LoopNyűglődik a gépem, hol van hálózat, hol nincs.

-
Delila_1
veterán
válasz
WildBoarTeam
#7732
üzenetére
Hát aki ilyen tündöklő, az lemaradhat.
-
föccer
nagyúr
Na, hős vagyok. Sikerült az első műveletemet végrehajtattni. C6 cella tartalmát gombnyomáűsta átmásolta az A30 cellába

No, már törölni is tudtam...
Kis lépés ez az Excellnek, de hagy hőstett tőlem...

Ez működik?
Cells(A1
20)gondolok itt egy A1-től C20 ig történő terület hivatkozásra?
köszi az eddigi segítséget. Asszem nekifekszem a súgónak. Nagon nagy szükségem lenne az objektumok tulajdonsátgaira, eseményeire, és a paraméterezésrs... No meg nem ártana tudni a VBasic szintaktikáját is (lokális változó deklarálása, ciklusok szintaxisa. Valahogy a for i:= 0 to 9 do begin .. end nem nagyon akar működni
Hiába no, én csak a pascalt toltam 
De még pár óra és ráérzek, és akkor lesz ám nemulass

Üdv, föccer
-
Delila_1
veterán
Kitehetsz egy új ikont az eszköztárra (Testreszabás menü, Parancsok fül, Makrók kategória).
A printer gombképét átmásolod rá, és az Aut_Filter makrót rendeled hozzá (ikonon jobb klikkre jönnek elő ezek a lehetőségek, mikor a Testreszabás menü aktív).
Érdemes kicsit módosítani a gombképen, hogy meg lehessen különböztetni az eredetitől. -
föccer
nagyúr
No, akkor ezeket az infókat most jóóól meg kell emésztenem

köszi,
Üdv, föccer
ps: még egy kérdés: Olyat tudok csinálni, hogy egy esemény akkor fusson, ha rányomok pl a printre? Mert akkor nagyszerűen lehetne töltögetni az autoszűrő alatti cellákat, mielött kimenne printre, és a nyomtatás után meg szépen lehete.
gondolok itt valami Worksheets("munka1").OnPrint eseményre, amibe jól bele lehetne írni az általad előbb vázoltaktat.
Köszi, üdv, föccer
-
-
Delila_1
veterán
Sub Aut_Filter()
Range("A1").Select
Selection.AutoFilter Field:=1, Criteria1:=Cells(1, 10)
Selection.AutoFilter Field:=2, Criteria1:=Cells(1, 11)
Selection.AutoFilter Field:=5, Criteria1:=Cells(1, 12)
Selection.AutoFilter Field:=6, Criteria1:=Cells(1, 13)
End SubA feltételeket a J1:M1 tartományba írtam.
Az A oszlopot [Field:=1] a J1 szerint szűröm [Criteria1:=Cells(1, 10)]
B-t a K1 szerint, E-t az L1, és F-et az M1 szerint. -
-
föccer
nagyúr
válasz
WildBoarTeam
#7721
üzenetére
Alt+F8 a makrók ablakát nyitja meg, és nem a kódot...
1 részhez szerintem lista kell...Autoszűrő máshol nem igazán használható, csak ha van alatta adat.
Van alatta adat bőven. Vagy 5000 sornyi
Az érvényesítés-> lista azért nem jó, mert egy-egy oszlopban önmagában nincs sok különböző adat az 5000 sor 15-20 különböző adatból áll össze. Csak van vagy 140 oszlop összesen, és ezek variációjából nagyából nincs 2 teljesen egyforma sor. Namost a listával azt érem el, hogy a legördülő menüben ott figyel mnind az 5000 sornyi adat benne a sok-sok redundáns értékkel. Az autoszűrő ezért jobb, mert ott nincsnek redundáns adatok. Egy érték, csak egyszer szerepel, így nagyon gyorsan lehet benne beállítani a dolgokat.Objektum orientált programozás lévén minden dolog valamilyen objektumban foglal helyet. az objetumoknak vanna különböző tulajdonságai, mint pl a színe, vagy a mérete, tartalma, és vannak hozzá rendelt akciók, mint pl a kattintás (mi történi, ha rákattintasz), és vannak egyéb események, mint pl amikor törlöd az adott objektumot, vagy létrehozol egyet. stbstb..
üdv, föccer
-
Delila_1
veterán
A cellákat tartalmazó objektum a lap: Worksheets("Munka1").Select
A főbb akciókat (eseményeket) úgy csalhatod elő, hogy a VBE-ban fent bal oldalon a General-t átváltod Worksheet-re. Jobb oldalon legördítheted az eseményeket.
Cellára hivatkozás: Cells(sorszám, oszlopszám), de pl. az A1 Cells(1), B1 Cells(2), C1 Cells(3).
-
WildBoarTeam
senior tag
1 részhez szerintem lista kell...Autoszűrő máshol nem igazán használható, csak ha van alatta adat.
"...Hogyan tudom elővarázsolni az adott munkalaphoz tartozó küdot..."
Nyomsz egy ALT+F8-at.
"Hogyan tudok kirakni a munkafüzetre egy nyomógombot?"
Kirakod a Visual Basic, és az Űrlapok eszköztárat (uttóbihoz a makrót rendeled, a VB-be meg "beleírod" ...így egyszerű leírni)"Illetve mi a pontos neve a cellákat kezelő objektumnak, és annak milyen főbb tulajdonságai és milyen főbb akciói vannak?"
Ezt majd Delila_1 vagy Fire elmondja, mert én nem értem mire gondolsz.

Delila_1...gyorsabb voltál...
-
Delila_1
veterán
Kicsit sok a kérdés egyszerre.

Kezdem a közepén.Adott laphoz kód elővarázsolása: lapfülön jobb klikk, Kód megjelenítése. Vagy: Alt+F11 (VB editor), bal oldalon lapnévre klikk.
Nyomógomb
Kétféle van, az Űrlapok, vagy a Vezérlők eszközkészlete csoportból. Előcsalásuk: ikonsoron jobb klikk, a felsorolásból kiválasztod a megfelelőt.Nem írom tovább, mert nem tudom, hányas verziót használsz. A fentiek a 2003-ra vonatkoznak.
-
föccer
nagyúr
válasz
WildBoarTeam
#7718
üzenetére
Csak kellő mennyiségű szalicil kell hozzá

ON:: lehet olyat csinálni, hogy ha az autoszűrőt egy külön, egyébként ütres sorba teszem, akkor amikor a szűrőveltételt megadom neki, akkor a felétételt kiírja nekem az adott cellába? A dolog arra lenne használva, hogy a nyomtatában megjelenő 39 oszlopból így ránézésre lejhetne látni, hogy melyek azok az oszlopok, amik szerint szűrve lett az adott kimutatás. Akkor nem kellene külö ráírogatni a lapra, hogy a következő 4 pldal az adattáblák azon sorait tartalmazza, ami megfelel ennek, és ennek, és ennek, és ennek a feltételnek. Tipikusan 5-7 feltételekkel fogunk benne szűrni, és úgy nyotatni az eredményeket.
Makró téma:
no, akkor egy kis szájbarágós segítséget kérek. Hogyan tudom elővarázsolni az adott munkalaphoz tartozó küdot (Talán Eszközök-> makró-> visual basic editor??? )?
Hogyan tudok kirakni a munkafüzetre egy nyomógombot?
És hogyan tudok a gomb megnyomásához utasítrásokat hozzárendelni?
Illetve mi a pontos neve a cellákat kezelő objektumnak, és annak milyen főbb tulajdonságai és milyen főbb akciói vannak?
Előre is köszi,
Üdv, föccer
-
WildBoarTeam
senior tag
Pedig így a legkönnyebb, hogy megértsd a nyelv szemantikáját. Ha a BASICet tudod, akkor meg nem lehet probléma ehhez igazítani. Ha ismersz másik programozási nyelvet akkor a ciklusokat ismered, csak neki kell picit feküdni.
Könyvet én sem találtam még konkrétan makró témában
(csak a jó drága tanfolyamokat...)Ha meg megírsz egy makrót, az évek múlva se romlik meg
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
föccer
nagyúr
válasz
WildBoarTeam
#7703
üzenetére
Igen, ennek már nekifeküdtem. A baj csak az vele, hogy így marha sokáig tart és nem igazán leszek "jó" benne. Amit késízteni akarok (hosszabb távon), azért az nem lenne olyan egyszerű dolog, és Nem akarok most is úgy gényolni, mint anno a Dorland-Delphiben tettem.. Ezt most úgymond hülyebiztosra kell megcsinálnom, hogy akár 2-3 év múlva is futtatni tudjam.
ÜDv, föccer
-
Delila_1
veterán
válasz
Mr.Csizmás
#7715
üzenetére
Szívesen.

-
Mr.Csizmás
titán
Delila_1 és WildBoarTeam köszönöm szépen!

sok sz*pástól mentettetek meg!
szép napot kívánok! -
Delila_1
veterán
válasz
Mr.Csizmás
#7713
üzenetére
Akkor az AD oszlopba írd a sorszámokat, AD10-től lefelé, ameddig van adatod az A oszlopban.
Mivel üres oszlopok is vannak, valóban ki kell jelölnöd az A10:ADvalahány területet, utána rendezés, ahogy WindBoar írta. -
Mr.Csizmás
titán
válasz
WildBoarTeam
#7712
üzenetére
-
WildBoarTeam
senior tag
válasz
Mr.Csizmás
#7706
üzenetére
Csinálhatnál belőle egy printscreent, és látható lenne anmit írsz.
A sorba rendezésnél (amikor több oszlopot kell együtt rendezned), kijelölöd az egész tartományt, amit együtt akarsz sorba rakni. Utána Adatok/sorba rendezés... és kijelölöd melyik alapján akarod sorba rendezni.
Itt egy példa:
Kiinduló adat:
Rendezés után ezt kapod:
Delila_1 ugyanezt írja amúgy.

-
Delila_1
veterán
válasz
Mr.Csizmás
#7710
üzenetére
Akkor az F oszlopba írd a lefelé növekvő sorszámokat. Ha van címsorod, akkor az F1-be ne írj.
A számok bevitele után állj az F oszlop valamelyik celláján, és rendezd az adatokat csökkenő sorrendbe (Z-A ikon). -
Delila_1
veterán
válasz
Mr.Csizmás
#7708
üzenetére
Nem így értettem. Vannak adataid az A oszlopban, a B-ben, a C-ben, stb. Melyik oszlop az utolsó?
Csak az első sorban van a címsorod, vagy esetleg több sorban is? -
Delila_1
veterán
válasz
Mr.Csizmás
#7706
üzenetére
Melyik az első üres oszlopod?
-
Mr.Csizmás
titán
-
Delila_1
veterán
válasz
Mr.Csizmás
#7704
üzenetére
Az adataid mellett egy üres oszlopba beírod a számokat 1-től 45-ig.
NE jelöld ki a rendezés előtt az új oszlopot, csak állj benne. Rákattintasz a Z-A ikonra, ami csökkenő sorrendbe rendezi az oszlopot, és viszi magával a többi adatot is. -
Mr.Csizmás
titán
üdv!
segítséget szeretnék kérni. van egy excel táblázatom, amiben most a 10-től a 45. sorig meg kellene fordítani a sorrendet, tehát a 45-el kezdődne, és így lefelé csökkenne....hogy lehetne megcsinálni? nincs kedvem egyenként átmásolgatni

-
WildBoarTeam
senior tag
Hát első körben próbálkozz a "makró rögzítéssel". Elindítod, csinálsz valamit a munkalapon (pl. kijelölsz egy részt és törlöd), megállítod amikor befejezted, majd a kapott kódot elemzed. Így jöttem rá én is sok dologra, hogy mi és hogyan működik. Amúgy a súgóban is van néhány hasznos rész, de nem valami sok (a cella hivatkozásokat átnézd, hogy megértsd az S1O1 hivatkozást, amit a rögzített makró készít).
De itt vannak nálam okosabbak, akik biztos tudnak segíteni a bonyolultabb műveletek megismerésében (if, for-next, while, stb.....)
Új hozzászólás Aktív témák
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3338
- HIBÁTLAN iPhone 15 Pro 128GB Natural Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4226
- VeryBig! Akciós! Dell Precision 7760 i7-11850H 32GB 512GB SSD RTX A5000 16GB 17" FHD 1 év garancia
- Samsung Galaxy S21 FE 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest




. És mindennek fejébe egyszerre 10-12 lappal kell majd dolgozni. Hidd el, legnagyobb gondomnak se szeretném, ha +ba azt kelljen bogarászni, hogy melyik lap éppen miről szól.


Itt sem a szemantikával van a bajom, hanem az ismeretlen objektumokkal...




20)![;]](http://cdn.rios.hu/dl/s/v1.gif)

Fferi50

