-
IT café
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
-
Delila_1
Topikgazda
válasz szatocs1981 #29121 üzenetére
Szerintem
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then Cells(Target.Row, 1) = Date
End Subis elég.
[ Szerkesztve ]
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
Delila_1
Topikgazda
válasz szatocs1981 #29123 üzenetére
Jogos a felvetés.
Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.
-
alfa20
senior tag
válasz szatocs1981 #29118 üzenetére
köszi, de nem akarom előre kitölteni az "A" oszlopot, mivel nem is tudom mennyi sorra van szükség előre lehet 10-100 vagy 1000 is. Ezért kérdeztem, hogy van -e arra lehetőség, hogy új sor kitöltésekor automatikusan beírja a dátumot a kitöltött sokhoz.
most egyenlőre úgy oldottam meg, hogy mikor bezárják vagy mentik a táblát, akkor egy 'usor' segítségével ki tölti a még üres cellákat az "A" oszlopban, amit rögzít is értékkel aztán ment és kilép.
de nekem jobban tetszene, ha mikor kitöltik a "Bx" cellát akkor az "Ax" cellában megjelenik a dátum
"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
lenkei83
tag
válasz szatocs1981 #29151 üzenetére
Igen, ez a megoldás, köszi.
-
boboy79
csendes újonc
válasz szatocs1981 #29158 üzenetére
Sziasztok.
Segítséget szeretnék kérni a következőhöz ezt szeretném megcsinálnihttp://data.hu/get/9199087/Screenshot_2015-10-24-17-13-36.png és idáig jutottamhttp://data.hu/get/9199070/Munkaido_naptar.xlsx bocsi azaz előbb elrontottam és nem engedte szerkeszteni. -
Traxx
őstag
válasz szatocs1981 #29169 üzenetére
Köszönöm Valamiért nekem nem akarja az igazat, sajnos a makrókhoz teljesen kuka vagyok Annyit még elmondanék, hogy 2 munkafüzetlapon lenne erre szükség, és ott is csak bizonyos cellákban (a 2 lap felépítése nagyjából azonos, így az a tartomány is, ahol ennek működnie kellene).
"Amúgy a lekvár leszedésre jobb módszer is van: le kell nyalni... elképzelem, ahogy egy nagy PH!-s procitesztben fLeSsék nyalogatják a procikat" by Male (Hűtőpaszta vs. lekvár 2. rész)
-
Belnir
csendes tag
válasz szatocs1981 #29381 üzenetére
Lehet, hogy már túlbonyolódtam, és mindent akarok. Sajnos ez megesik néha velem. Összeszedem a gondolataim.
Adott egy munkafüzet, melyet a nagyfőnök utasítására készítettem. Bassza a csőröm, hogy a nagyfőnök baszik a munkafüzetre, ezért a közvetlen főnököm kérte, tegyek bele "figyelőt", hogy az arcába toljuk, hogy ő ugyan nem is nézi, ne legyek felesleges feladattal terhelve (mondjuk kb 2 mp napi tevékenység, de ezt nekik nem kell tudni). Kaptam egy szuper kódsort, működik, de feltűnt, hogy kilépés előtt írja be a tevékenységet, és akkor is ment egyet. Tehát ha valaki mégis megnézi, és használja a szűrőket pl, és dolga végeztével kilép, nyom egy nincs mentés gombot, akkor is elmenti a változtatásokat. Ezért áttettem ezt a részt a megnyitás pillanatához, hogy még mielőtt egy egérmozdulatot is tenne, mentődik a megnyitás tevékenysége. Utána matathat, de ha akarja menthet is. Na ez legutóbbit szeretném leszabályozni, hogy ha akar, menthet is legyen kizárva.
Ha valamit rosszul értelmeztem korábban, akkor bocsi.Windows alatt levéded (read_only) és magadat beteszed kivételbe.
A céges hálózatunk egy kicsit bonyolultabb ennél, ilyet nem tudok megtenni, mert amint megtagadom másoktól a jogokat, automatikusan megtagadom magamtól is.[ Szerkesztve ]
Intel G4560, AsRock B150M-HDS, 8Gb RAM
-
Roxy27
tag
válasz szatocs1981 #29472 üzenetére
Köszi,
beállítottam a Makrót... elindítom, látszik, hogy dolgozik, de nem kerül semmi a "Végeredmény" sheet-re.
Ja, és mit is jelent, hogy egyesével aktiváljam?
Sajnos nem igazán értek hozzá...
KösziHogy egyszerűbb legyen...Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=roxy27
-
Roxy27
tag
válasz szatocs1981 #29474 üzenetére
Na most már dolgozik, de még nem okés...
minden sheet-ről csak az első 3 componest gyűjti...
nagy kérés lenne, ha egyszerre összeszedné az összes lapról automatikusan?
(ja és az első lapról mondjuk betenné a felső sorba a megnevezéseket...)Ez a későbbiekben napi feladat lenne, és jó lenne, ha gombnyomásra működne... remélem nem vagyok pofátlan
Előre is nagyon köszi a segítséged!!!!Hogy egyszerűbb legyen...Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=roxy27
-
Roxy27
tag
válasz szatocs1981 #29477 üzenetére
Ja már értem miért... ugye írtam, hogy összesen 48 sor van egy lapon (de én úgy csináltam printscreen-t, hogy 24 látszódik, hogy még olvasható legyen... nem fér egy oldalra és nem akartam kicsinyíteni)
Így igazad van, a 45db-ot kigyűjti... csak 90 kellene Pont mégegyszer ennyi azaz összesen 6 component és az adatai vannak 1 lapon.
Nem sürgős azért... ha este vagy holnap van időd/kedved, úgy is bőven jó. Csak tényleg úgy lenne értelme, hogy egy makró az összeset egybe összegyűjti automatikusan.
KösziHogy egyszerűbb legyen...Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=roxy27
-
Roxy27
tag
válasz szatocs1981 #29477 üzenetére
Na arra közben rájöttem, hogy mit kell megváltoztatni, hogy végignézze a teljes lapot:
For szorzo = 0 To 40 Step 8
Már csak a fejléc hiányzik, meg hogy gombnyomásra az összes sheet kigyüjtődjön automatikusan.Hogy egyszerűbb legyen...Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=roxy27
-
Roxy27
tag
válasz szatocs1981 #29480 üzenetére
Hogy egyszerűbb legyen...Megbízhatóságom: http://phmegbizhatosag.atw.hu/phtabla.php?nev=roxy27
-
szatocs1981
aktív tag
válasz szatocs1981 #29482 üzenetére
Fejléccel:
Sub Makro1()
Worksheets(1).Select
Sheets.Add
Worksheets(1).Name = "Végeredmény"
WS_Count = ActiveWorkbook.Worksheets.Count
Call TiliToli("A", "E", 2, 0)
Call TiliToli("C", "F", WS_Count, 40)
End Sub
Sub TiliToli(Spalte1, Spalte2, ettol, eddig)
For i = 2 To ettol
utolso = Worksheets(1).Cells(Rows.Count, "A").End(xlUp).Row
For szorzo = 0 To eddig Step 8
For sor = 1 To 8
ujsor = sor + szorzo
Worksheets(1).Cells(utolso + 1, sor) = Worksheets(i).Cells(ujsor, Spalte1).Value
If sor <> 1 Then
Worksheets(1).Cells(utolso + 1, sor + 7) = Worksheets(i).Cells(ujsor, Spalte2).Value
End If
Next sor
utolso = utolso + 1
Next szorzo
Next i
End Sub -
RAZERXX
tag
válasz szatocs1981 #30500 üzenetére
S8, I5 6400 3200hz,Asus 150I Aura,Hiperx ddr4 2133 mhz 16g,R9 asus rog strix vega 56 ,ssd m2 Plextor,Samsung evo 840, FSP GOLD +700W
-
Grodd
tag
válasz szatocs1981 #30592 üzenetére
Environ("Username") lesz az
Az Application.Username az excelbe beállított felhasználónév (/ tools/options-ben) Ami ugye bármi lehet -
Melack
veterán
válasz szatocs1981 #30601 üzenetére
Tehát AD szinten állítsam be a usert, hogy csak read-only jogai legyenek a file-ra?
Ex-Informatikai Szolgáltató Asztali Munkatárs
-
tgumis
tag
válasz szatocs1981 #30592 üzenetére
Köszi de az a rész lényegtelen. Akinek kell az tudni fogja, hogy hogyan oldja fel a szűrêst. Az első részében segitsetek légyszíves mert azt nem tudom. Szóval megnyitaskor szűr záráskor kikapcsolja a szűrést.
-
tgumis
tag
válasz szatocs1981 #30604 üzenetére
Köszönöm a segítséget. Remélem meg tudom csinálni.
-
Melack
veterán
válasz szatocs1981 #30604 üzenetére
Active Directory céges környezetben. Nekem egyszerűbb azzal dolgoznom, ha már van rá lehetőség.
Ex-Informatikai Szolgáltató Asztali Munkatárs
-
Pakliman
tag
válasz szatocs1981 #36553 üzenetére
Egy lehetőség még, hogy segédoszlopban képlettel összefűzöd a cellákat (Pl.: =A2 & ":" & B2 & ":" & C2).
Ez után az FKERES-el tudsz keresgélni (Pl.: =FKERES("V2:4:P01";D:D;1;HAMIS)).
Makróval is működik.
Vagy:
Makróval "egyszerre" tudsz keresni az összes oszlopban a range.Find() és range.FindNext() metódusokkal.
Az első oszlopban keresed pl. a "V2"-t, találat esetén megnézed, hogy a 2. oszlopban 4 van-e, ha igen, akkor a 3. oszlopban "P01" van-e. Ha bármelyik kérdésre hamis a válasz, akkor FindNext...
Érdemes tanulmányozni ezeket (nem csak a Find miatt):
[www.ozgrid.com]
[Ron de Bruin oldala][ Szerkesztve ]
-
Fferi50
őstag
válasz szatocs1981 #36553 üzenetére
Szia!
Hány oszlopban vannak az adataid? Csak ez a három oszlop van?
Mert ettől is függ a megoldási lehetőség.
Üdv.
-
Fferi50
őstag
válasz szatocs1981 #36557 üzenetére
Szia!
Esetleg megnézheted az Adatok - Speciális menüpontot. Így több szempont alapján is szűrhetsz, lehet helyben is és másoltatni is az eredményt. Ha már van egy ilyen Excel eszköz, szerintem használni kellene.
Üdv.
-
Fferi50
őstag
válasz szatocs1981 #36559 üzenetére
Szia!
A többszáz keresés paramétereit hol tárolod, hogyan jutsz hozzá?
Felveszed makrórögzítővel a Speciális keresést, aztán hozzáigazítod a követelményeidhez. Csak a keresési paramétert és a célterületet kell változtatni.
Szerintem ez elég jól automatizálható.Üdv.
-
0P1
aktív tag
válasz szatocs1981 #38022 üzenetére
Jelöld ki a forrás táblázatot : Adatok - Adatok beolvasása és átalakitása - Táblázatból vagy tartományból
Állitsd be az adott oszlopra a kivánt szűrést, és Bezárás és betöltés. Ezután, ha a forrás táblázat módosul, csak rá kell frissiteni a cél táblázatra.
Az eredeti tartalomra való "linkelés" nem megoldható makró nélkül. -
lappy
őstag
válasz szatocs1981 #40525 üzenetére
=INDEX(HA($A$1:$A$5="x";HA(ÜRES($B$1:$B$5);$C$1:$C$5;$B$1:$B$5);" ");2)
eddig jutottam, már csak a tömbből ki kell szedni amik igazak
Bámulatos hol tart már a tudomány!
-
Mutt
aktív tag
válasz szatocs1981 #40525 üzenetére
Szia,
Excel 2016-tól ez a kért mintára műkődik.
=KÖZÉP(SZÖVEGÖSSZEFŰZÉS("";IGAZ;HA(($A$1:$A$1000="x")*(($B$1:$B$1000>0)+($C$1:$C$1000>0));HA($B$1:$B$1000>0;$B$1:$B$1000;$C$1:$C$1000);""));SOR();1)
Azonban félek, hogy a feladatot leegyszerűsítetted és az A,B,C,D értékek a valóságban nem 1 karakter hosszúak, esetleg nem is csak betűk. Ez esetben a fenti képlet nem fog műkődni.
A megoldás, hogy a névkezelőben létrehozol egy változót (én az eredmeny nevet használtam), aminek ez a képlete (ha van | jel a B-C oszlopokban, akkor itt és a következő képletben is egy olyan jelet használj ami nem fordul elő az oszlopokban):=SZÖVEGÖSSZEFŰZÉS("|";IGAZ;HA(($A$1:$A$1000="x")*(($B$1:$B$1000>0)+($C$1:$C$1000>0));HA($B$1:$B$1000>0;$B$1:$B$1000;$C$1:$C$1000);""))
Ezek után az E1-nek a képlete ez lesz:
=KIMETSZ(KÖZÉP(HELYETTE(eredmeny;"|";SOKSZOR(" ";HOSSZ(eredmeny)));(SOR()-1)*HOSSZ(eredmeny)+1;HOSSZ(eredmeny)))
üdv
[ Szerkesztve ]
A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen