Keresés

Részletes keresés

Tutti a Frutti Creative Commons License 2023.10.28 0 0 37678

Előre is elnézést kérek az off témáért, nem találtam megfelelő fórumot és a beírások tömegét olvasva úgy látom, itt az értelem uralkodik, ezért kérdezem:

 

Létezik "elektronikus titkárnő", vagy olyan program, amivel azonnal lehet mindenféle témához hozzáírni az aznapi fejleményeket, és ha kell, témánként látni, hogy csak abban a témában mikor mi történt?

 

Most abba a helyzetbe kerültünk, hogy elvesztettük a titkárnőt, akinek egyetlen jegyzetfüzete volt, abba írt mindent, de utána mégis mindig minden ügyről volt nyomtatott kimutatása, mikor mi történt.

 

Hasonló program kellene, az összejövetelen valaki beírja, hogy adott témákban mi történt, és később a beírásokat már a témákban lehet látni időrendi sorrendben.

 

 

Garashan Creative Commons License 2023.10.25 0 0 37677

Meg itt vagyunk mi is, legalább mi is gondolkodunk problémákon.

 

Igaz a végső megoldáshoz most nem járultam hozzá, mert még úton voltam hazafelé. De ez egy nagyon segítőkész közösség.

Előzmény: kiki71 (37676)
kiki71 Creative Commons License 2023.10.25 0 0 37676

Az előbb küldted már és le is mentettem ezt a linket. Nem  ismertem. :)

Előzmény: Fferenc50 (37675)
Fferenc50 Creative Commons License 2023.10.25 0 0 37675

Szia!

Excel Visual Basic for Applications (VBA) reference | Microsoft Learn

Itt találhatsz elég jó angol nyelvű anyagot a VBA-ról.

Sokat segít még a makró rögzítés is.

Üdv.

Előzmény: kiki71 (37673)
kiki71 Creative Commons License 2023.10.25 0 0 37674

Tökéletesen és gyorsan működik. KÖSZÖNÖM a segítséget.

Dim rng As Range
Set rng = ActiveSheet.UsedRange
With rng
.RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38), Header:=xlYes
End With

Előzmény: Fferenc50 (37672)
kiki71 Creative Commons License 2023.10.25 0 0 37673

Köszönöm. Kipróbálom és jelentkezem. Úgy szoktam meg openai-val :). Sajnos nem nagyon találok neten fellelhető okulási anyagot hozzá. Ezt dobta a gép.

Előzmény: Fferenc50 (37672)
Fferenc50 Creative Commons License 2023.10.25 0 0 37672

Szia!

Miért kell összefűzni, ez rengeteg időt követel. Az ismétlődések eltávolításánál felsorolhatod (akár) az összes oszlopot is:

ActiveSheet.Range("$A$1:$AL$7271").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 , 34, 35, 36, 37, 38), Header:=xlYes

Így csak azokat a sorokat törli, ahol minden cella tartalma egyezik.

Üdv.

Ps: Próbáld makrórögzítéssel megoldani amit csinálsz kézzel, abból sokat lehet tanulni.

Előzmény: kiki71 (37671)
kiki71 Creative Commons License 2023.10.25 0 0 37671

Nem tudom, hogy egyértelmű volt-e, hogy csak azok a sorok duplikációját kellene teljesen törölni, amelyik soroknál minden cella egyezést mutat egy másik sorral.

Előzmény: kiki71 (37670)
kiki71 Creative Commons License 2023.10.25 0 0 37670

Ezzel próbálkoztam. :)

Dim utolsoSor As Long

utolsoSor = Cells(Rows.Count, "A").End(xlUp).Row
Dim RangeToCheck As Range
Set RangeToCheck = Range("A1:AL" & LastRow)
Columns("AM:AM").formula = "=A1&B1&C1&D1&E1&F1&G1&H1&I1&J1&K1&L1&M1&N1&O1&P1&Q1&R1&S1&T1&U1&V1&W1&X1&Y1&Z1&AA1&AB1&AC1&AD1&AE1&AF1&AG1&AH1&AI1&AJ1&AK1&AL1"
RangeToCheck.RemoveDuplicates Columns:=Array(39), Header:=xlYes ' Az 39. oszlop tartalmazza az egyesített értékeket
Columns("AM:AM").ClearContents

Előzmény: Fferenc50 (37669)
Fferenc50 Creative Commons License 2023.10.25 0 0 37669

Szia!

A Range RemoveDuplicates tulajdonságát használhatod.

Range.RemoveDuplicates method (Excel) | Microsoft Learn

Üdv.

Előzmény: kiki71 (37667)
Garashan Creative Commons License 2023.10.25 0 0 37668

Akkor a kódot kell még optimalizálni.

Előzmény: kiki71 (37667)
kiki71 Creative Commons License 2023.10.25 0 0 37667

Köszönöm. Igen ezt próbáltam már, sokkal gyorsabb lett, mint nélküle, de így is jóval lassab, mint Menüből.

Előzmény: Garashan (37666)
Garashan Creative Commons License 2023.10.25 0 0 37666

A kódot nem ismerve én a következőt mondanám.

 

Rögtön a kód elejére: 

Application.ScreenUpdating = False

Application.Calculation = xlCalculateManual

 

A kód végére pedig:

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic

 

Ezzel letíltod a képernyő frissítését és átállítod manuális frissítésre a függvényeket.

Majd a kód végén ismét engedélyezed a képernyő frissítését és visszaállítod automatikusra a függvények számolását.

Előzmény: kiki71 (37665)
kiki71 Creative Commons License 2023.10.25 0 0 37665

Jól sejtettem, hogy a dátummal van a gond és az általad átírt kóddal tökéletesen működik (az első változatot próbáltam ki, másik kettőt még meg kell értenem (tanulom a VBA-t)). Köszönöm mindenkinek a gyors segítséget, kb 1hónapja kűzdöttem vele.


Lenne még egy kérdésem esetleg hátha erre is tudtok megoldást:
Ismétlődések eltávolítása nagy adathalmazból.

Volt rá egy kódom amit kiokoskodtam, de nagyon lassú volt. Ugyan ennél az adathalmaznál a Menű -> Ismétlések eltávolítása pillanat alatt megoldotta. Ezt, hogyan lehetne lekódolni, hogy ilyen gyors legyen?

Előzmény: Fferenc50 (37662)
kiki71 Creative Commons License 2023.10.25 0 0 37664

Kipróbálom, Utánna jelentkezem. :)

Előzmény: Fferenc50 (37662)
kiki71 Creative Commons License 2023.10.25 0 0 37663

Ugyanezt a metódust használtam egy másik részen (igazából azt kopiztam le), de ott nem dátumot, hanem szöveget szűrtem és ott is A1-van és ott működik. ezért gondolom, hogy A1-el nincs gond.


Range("A1").Select
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
ActiveSheet.Range("A1").AutoFilter Field:=4, Criteria1:="*SZÖVEG*"
Dim adatTartomany As Range
Dim masolniTartomany As Range
Set adatTartomany = ActiveSheet.AutoFilter.Range
Set masolniTartomany = adatTartomany.SpecialCells(xlCellTypeVisible)

Előzmény: Eredő Vektor (37661)
Fferenc50 Creative Commons License 2023.10.25 0 0 37662

Szia!

Az alap probléma az, hogy a dátumot az Excel makróban az amerikai "stíl" (MM/DD/YYYYY") szerint kell megadni, bármilyen formátumban és nyelven van is az adott táblázatban. Ez sajnos némi trükközést - függvény többszörözést - igényel. Ráadásul a szűrőben szöveg formátumban használandó. Az általad mutatott feltétel így hozható létre makró által "ehetően":

Dim startDate As String
Dim endDate As String

startDate = Replace(Format(DateSerial(2022, 1, 1), "MM.DD.YYYY"), ".", "/")
endDate = Replace(Format(DateSerial(2023, 1, 1), "MM.DD.YYYY"), ".", "/")
ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=">=" & startDate, Operator:=xlAnd, Criteria2:="<" & endDate

DE létezik ennél egyszerűbb lehetőség is időszakok szűrésére. Ilyenkor a Criteria2 paramétert kell használni az alábbi formátumban:

Also used as single criteria on date fields filtering by date, month or year. Followed by an Array detailing the filtering Array(Level, Date). Where Level is 0-2 (year,month,date) and Date is one valid Date inside the filtering period.

Vagyis 2022 éves szűrés:

ActiveSheet.Range("$A$1").AutoFilter Field:=1, Operator:= xlFilterValues, Criteria2:=Array(0,  "12/31/2022")

Szűrés november-decemberre:

ActiveSheet.Range("$A$1").AutoFilter Field:=1, Operator:= xlFilterValues, Criteria2:=Array(1, "11/30/2022", 1, "12/31/2022")

A szűrendő tartományt természetesen nem árt megadni egzaktul, de az Excel képes "kitalálni", amennyiben pl. az A1 cella része a tartománynak, akkor az egész tartományt fogja szűrni.

Üdv.

Előzmény: kiki71 (37658)
Eredő Vektor Creative Commons License 2023.10.25 0 0 37661

Tehát az "A1" helyett egy teljes tartományt kell megadnod pl. "A1:H1000"

Kipróbálás nélkül, de úgy látom ez a gond.

Előzmény: Eredő Vektor (37659)
pimre Creative Commons License 2023.10.25 0 0 37660

Olvastad a többi észrevételt is?

Előzmény: kiki71 (37658)
Eredő Vektor Creative Commons License 2023.10.25 0 0 37659

Nincs Range, amely azt a tartományt képviseli, amelyre az autoszűrő vonatkozik.

Előzmény: kiki71 (37658)
kiki71 Creative Commons License 2023.10.25 0 0 37658

Erről lenne szó.

Van egy fejléces excel táblázat. 5.oszlop dátumokat tartalmaz. Feladat, szűrés makróval  2022-es dátumokra és szűrt adat sorok másolása. Az oszlop tartalmaz 2022es dátumokat.

Makró kód:
Application.Workbooks(2).Worksheets(5).Activate
Range("A1").Select
If ActiveSheet.AutoFilterMode Then
ActiveSheet.AutoFilterMode = False
End If
Dim startDate As Date
Dim endDate As Date
startDate = DateSerial(2022, 1, 1)
endDate = DateSerial(2023, 1, 1)
ActiveSheet.Range("A1").AutoFilter Field:=5, Criteria1:=">=" & startDate, Operator:=xlAnd, Criteria2:="<" & endDate

Ez egy másik próbálkozás, de ezzel is ua.:
'ActiveSheet.Range("A1").AutoFilter Field:=5, Criteria1:=">=2022.01.01", Operator:=xlAnd, Criteria2:="<2023.01.01"

 

Hiba jelenség leírása:

Szűrés a fejlécen bekapcsol, szűrés ikon az oszlopon ott van, szűrés ikonon megnézve a szűrést, tartalmazza a szűrés feltételt, de nincsenek szűrt adatok. Szűrt oszlop ikon jó helyen van. Szűrésbe belépve, rányomok egy OK-ot a szűrésre, megjelennek a szűrt adatok.Ugyanez a kódrészlet, ugyanebben a makróban egy másik helyen szöveges szűréssel működik. Dátum oszlop egyedi formátumban van, de átállítva dátum formátumra is fenn áll a hiba.
Csatoltam egy excelt amiben a kód lefutása utáni állapot van.

 

https://drive.google.com/file/d/1S_cn0ECEcla0DXUOs3gUhrh3axSnyga_/view?usp=drive_link

Előzmény: Garashan (37638)
Eredő Vektor Creative Commons License 2023.10.25 0 0 37657

szia, ezt egy egyszeru weblekerdezes excelben egy az egyben hozza. Csak reszlegesen tudtam visszalvasni, elnezest ha elmegyek valami mellett…

Előzmény: m54-b (37633)
Garashan Creative Commons License 2023.10.23 0 0 37656

u.i.: Csak letöltés után lesz működő képes. A drive-ban nem hiszem, hogy lefutnának a makrók :-)

Előzmény: Garashan (37655)
Garashan Creative Commons License 2023.10.23 0 0 37655

Szia!

Itt egy 0.9-es verzió. Még van benne egy-két hiba, de elvileg használható: https://drive.google.com/file/d/1F3Q2kVfxO3rSRw34mqc22ozPDkoQVtKd/view?usp=share_link

F10-el tudsz belépni a menübe és a működéséhez szükséges, hogy engedélyezd a makrókat a dokumentumban.

Illetve az F11 gomb alapértelmezett funkcióját is letiltottam, mert sokszor félre ütöttem és arra hibát dobott...

Előzmény: Garashan (37654)
Garashan Creative Commons License 2023.10.22 0 0 37654

Szia!

Ha még olvasod a fórumot, akkor elkezdtem írni hozzá egy makrót. Kicsit másképpen fog működni, mint ahogyan eredetileg szeretted volna, de szerintem így is jó lesz.

Előzmény: MM10 (37615)
Garashan Creative Commons License 2023.10.21 0 0 37653

Gépen rájöttem erre a trükkre ma, de most, hogy írtad telefonon is működik. Én az egyszerűség jegyében Chromeot használok telefonon és gépen is.

 

A Word körlevél készítőjét üzemorvosi beutaló készítésére használtam. Illetve én töltöttem ki a megfelelt papírokat is. Be volt víve egy adatbázisba a dolgozók összes lényeges adata és volt egy logikai mező, hogy ki az aktív dolgozó. Akkor egy kattintással lehetett nyomtatni a beutalókat és a megfelelt papírokat is. Az üzemorvos olyan lusta volt, hogy a megfelelt papírokat se szerette kitölteni... Mondjuk 3 alkalmazott volt velem együtt, plusz a főnök.

Előzmény: m54-b (37652)
m54-b Creative Commons License 2023.10.21 0 0 37652

"Sokszor nem látszódik a kurzor."

 

Valamelyik topikban azt olvastam, hogy a választerületen kívülre kattintva, majd vissza, akkor megjavul. Firefox alatt még nem tapasztaltam.

 

A Word körlevélkészítője szerintem egész jó.

Előzmény: Garashan (37649)
m54-b Creative Commons License 2023.10.21 0 0 37651

Boldog ember vagy. /Boldog ember vagy? :-)  /

Előzmény: XNC (37648)
m54-b Creative Commons License 2023.10.21 0 0 37650

Átlag Jánosnak persze nincs telepítve a Notepad++, így ezt az utat kell bejárnia. Ha a beillesztett számok nem csak mellékes adatok, hanem számolni is kell velük, akkor pedig természetes, hogy ez a módszer kell, mert nem mindegy milyen tizedesjelölő van a szövegben.

Előzmény: Fferenc50 (37646)
Garashan Creative Commons License 2023.10.21 0 0 37649

Írtam ide egy szép hosszú hozzászólást, de az index fórum nem szerette volna, hogy elküldjem... Valamiért kiléptetett és elment a fenébe az egész...

Illetve a napokban szórakozik számítógépen is és telefonon is. Sokszor nem látszódik a kurzor. Nem tudom, hogy mit csináltak vele.

 

Nagy vonalakban ez a makrónak egy részlete.

A Thunderbird parancssoros paraméterezése itt van: https://kb.mozillazine.org/Command_line_arguments_-_Thunderbird

Ami nekünk fontos az a leírás alapján az attachment paraméter. A szimpla macskakörmök közé kerülnek a csatolmányok, amiket vessző választ el kötelező jelleggel. Emiatt volt a hiba, mert a mappa nevében lévő vesszőt csatolmány elválasztónak vette. Ha jól emlékszem, akkor hibát írt ki felugró ablakban a Thunderbird és a body részt be se vette.
Végül a body rész sincs már használva, mert a message részben TXT fájlból van beolvasva maga az üzenet. Ott meg lehetett formázni HTML kódokkal azt. Van valahol egy sor, hogy if message<>"" then body="" End if. Ez nem okoz problémát neki.
A wait függvényre azért van szükség, mert kb. 3 secundom alatt töltődik be a Thunderbird új e-mail ablakja és utána kell, hogy "lenyomódjon" az enter a levél elküldéséhez.

A Wordre rátérve. Szerintem az első számítógépünkön is márt volt '98 vége felé. Jóformán sohasem használtam a nélkül, hogy ne látnám a rejtett karaktereket. Egyszerűen frusztrál, ha ki van kapcsolva. Amúgy az NP++-t azért szeretem, mert jóval gyorsabban megnyílik, mind a Word és rögtön eldobja az összes felesleges formázását a szövegnek. Így nem kell még pluszban mindent kijelölné, az egeret lökdösni, hanem rögtön mehet a CTRL+A&C és már a vágólapon van a szöveg eltüntetett formázással.
Ha a volt munkahelyemen valakinek magyaráztam számítógép kezelési alapokat, akkor törekedtem arra, hogy minél kevesebb lépésből és egyszerűbben legyen megoldható egy probléma. Már az feladta a leckét és 8 év alatt amíg ott voltam, nem tudtam megtanítani, hogy ALT+Enter az új sor cellán belül, nem pedig 999999 space. Szóval reménytelen volt kicsit is összetettebb dolgokat megtanítani.
Ezért próbáltam meg mindent makrókkal megoldani, amik elvégzi a felhasználó helyett a feladatokat, mert akkor csak a nyers adatokat kell bevinni és mindent elvégez a makró. De sajnos ez se jött össze minden esetben, pedig megpróbáltam a lehető leszájbarágósabban leírni minden lépést. De a számlázó programból való adatkinyerésnek is változott az oszlop sorrendje hébe-hóba és hiába írtam le, hogy mi legyen a sorrend és mi az ami egyáltalán nem kell, nem sikerült elmagyarázni. A vevők listájánál egy-két fontos oszlop volt nálunk: nyilván a neve, adószáma, vevőcsoportja és ha hivatkozni akartam rá Excelben, akkor a vevőkódja. (Mivel néha változtattak nevet, így egyszerűbb volt egy kód-név adatlapot csinálni, mint utólag módosítani mindenhol a régi nevet az újra). De akkor a fejlesztők egyszer csak gondoltak egyet és megjelenítettek számunkra teljesen felesleges oszlopokat is: levelezési cím, fax, weboldal, cégjegyzékszám, bankszámlaszám, hitelkeret, stb. Nagy részük ki sincs töltve, mert felesleges infók lennének vagy a kutyát se érdekli. De a fejlesztők gondolnak egyet és kirakják a listába plusz oszlopként, ahol összekuszálják a meglévő oszlopaink sorrendjét. De van rá lehetőség, hogy legalább elrejtsük.

Előzmény: m54-b (37636)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!