- Az EU szerint kartelleztek az indítóakkumulátorok piacán
- Synology NAS
- PHP programozás
- Bittorrent topik
- Szilárdtest-akkumulátorokat fejleszt Kína, jöhet az áttörés?
- Hamarosan elképesztő mennyiségű áramot fogyasztanak el az adatközpontok és az AI
- Microsoft Excel topic
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Crypto Trade
- Vírusirtó topic
-
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
-
Fferi50
őstag
válasz sedyke #23547 üzenetére
Szia!
Ezt attól függ, hogy milyen "technikával" hoztad létre összesítéseket.
Ha ugyanannyi sorral van lejjebb, használhatod az indirekt függvényt:
pl. Az első sorban = indirekt("munka1!B" & (sor()-1)*X+1) ahol az X az a szám, amennyivel lejjebb van a következő számlaszám. Ezt a képletet húzod végig az oszlopon.
Az összegre hasonlóan, csak nem +1 amit hozzáadsz, hanem az első összegnek a sorszámát (itt 45).Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Carasc0 #23572 üzenetére
Szia!
Csináld meg a képletet vizszíntesen: =AA$100, ezt húzd el vizszintesen addig, ameddig szükséged van rá.
Utána: Másolás - uj cella kijelölése az oszlopban - irányított beillesztés: képletet és transzponálás ! A képleted számodra megfelelően másolódik át lefelé.
Üdv.
-
Fferi50
őstag
válasz m.zmrzlina #23575 üzenetére
Szia!
Azért van ez, mert a sima range és cells mindig az AKTÍV munkalapra hivatkozik, ha nincs előtte a pontos megjelölés.
Tehát a második: wsKabelo.Range(wsKbelo.Cells(2, intDigitlista_oszlop), wsKabelo.Cells(intListahossz, intDigitlista_oszlop))formában működik megfelelően. (Én is bele szoktam néha esni ebbe a hibába....)
Az első viszont a betűkkel direktben a wsKabelo -ra hivatkozik.
Üdv.
-
Fferi50
őstag
válasz Carasc0 #23585 üzenetére
Szia!
Az egyik gyorsítási lehetőség az, hogy kikapcsolod az automatikus ujraszámolást. Amikor változtatsz valamit, akkor kézzel számoltatsz (Természetesen ez makróból is megy mindkettő.) Az Excelt azelőtt állítsd át kézi számolásra, mielőtt behívod a munkafüzetet. (Makróban: application.calculation= és innen felajánlja a lehetőségeket).
A másik, hogy végiggondolod, melyek azok a képletek, amelyeknek az eredménye frissítés. Ezek általában olyan képletek, amelyek rendszer változó dolgokra vonatkoznak pl. ilyen az indirekt, az offset meg még van egy pár belőle. Ezek minden egyes cella megváltozásakor azonnal újraszámítódnak, akkor is, ha nem a "hozzájuk tartozó cella" változott.
Harmadik dolog, a képeket biztosan nem éri meg "belegyömöszölni" az excelbe. Tedd be őket egy adott könyvtárba és a programban csak a hivatkozás kell bele, az excel betölti és utána el is tudod vele felejtetni.
Ugyanez vonatkozik nagytömegű szövegre (pl. help, magyarázat). Ezt is bele lehet tenni egy külön fájlba.Ha megnézed tömörítővel pl. zip, abból is kiderülhet, hogy melyik rész az ami "nyomja" a területet.
(fájl kiterjesztést átírod zip-re utána a zip tömörítővel meg tudod nézni, ki is tudod tömöríteni egy külön helyre azt, amire kíváncsi vagy. Arra vigyázz, hogy ne szerkessz bele, mert akkor baj lehet belőle. Ajánlatos mindezt a fájl másolatával megcsinálni.) Ha nem "rondítottál bele", akkor a visszanevezés után ugyanúgy lehet vele dolgozni, mint azelőtt.Üdv.
-
Fferi50
őstag
válasz Carasc0 #23589 üzenetére
Szia!
Megnyitás előbb kikapcsolod az automatikus számolást a menüből. Megnyitás után visszakapcsolod.
De akkor meg a szám beírása után lesz hosszú idő, amíg "magához tér" a fájl.
Szerintem mindenképpen vizsgáld meg, hogy minden képletre szükséged van-e és abban a formában.Üdv.
-
Fferi50
őstag
válasz vigyori78 #23602 üzenetére
Szia!
Húzás kikapcsolása: Application.CellDragAndDrop = False
Az egérkattintás kikapcsolása:
A munkafüzet eseménykezelőjében:
dupla kattintás
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel =True
End Subjpbb egérgomb
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel=True
End SubÜdv.
-
Fferi50
őstag
Szia!
Nézd meg a sorszám függvényt. Ha azt beírod a B oszlopba, megmondja neked, hogy az A oszlopban levő szám hanyadik a sorrendben, növekvő vagy csökkenő sorrendet is választhatsz.
=sorszám(A1; $A$1:$A$100;0) növekvő sorrend szerinti helyet mutatja, ha az utolsó paraméter 1 akkor csökkenő sorrend szerinti helyet.
Figyelj rá, hogy a második paraméter dolláros legyen.Üdv.
-
Fferi50
őstag
válasz vigyori78 #23620 üzenetére
Szia!
Az egérrel való húzás letiltása lehetséges a beállítások között is, makró nélkül. Excel 2010-ben a speciális beállítások között (a kitöltőjel használatának és a cellák egérrel húzásának engedélyezése.
De az egérklikkeket csak makróval lehet tiltani, ezért makróbarát (xlsm) formában kell menteni.
Üdv.
-
Fferi50
őstag
válasz Mr.Scofield #23635 üzenetére
Szia!
A második oldalra tegyél fel egy userformot a megfelelő vezérlőkkel (cimkék, parancsgombok, spinbutton) és írj hozzá megfelelő megjelenítő makrót.
Üdv.
-
Fferi50
őstag
válasz Mr.Scofield #23637 üzenetére
Szia!
A formot már megvan? Akkor tegyél fel legalább egy képet róla, hogy lehessen látni, mi van benne.
A makró elvi vázlata:
a rekordokat számolja egy változó
amikor megjeleníted a userformot (activate exemény), a rekordszámláló változó legyen egy, utána meghívsz egy olyan eljárást amelyben kitöltöd az első szövegmezőt az A oszlop rekordszámlálónak megfelelő sorú cellája értékéve, a másodikat a B oszlop ugyanazon cellája értékéve, a harmadikat a C oszlop ugyanazon cella értékével (rekordbetöltő).
amikor a következő gombot megnyomják (gomb_click esemény) megnézed, hogy a rekordszámlálód elérte-e a huszat. Ha igen, egyre állítod, ha nem növeled eggyel. utána meghívod a rekordbetöltő eljárást.
amikor az előző gombot megnyomják (gomb_click esemény) megnézed, hogy a rekordszámláló érte egy-e, ha igen, húszra állítod, ha nem, akkor csökkented eggyel. utána meghívod a rekordbetöltő eljárást.A rekordsorszámot megadhatod egy publikus változóban, akkor minden eljárás használhatja, amelyik a form kódlapján van.
Üdv.
-
Fferi50
őstag
válasz Mr.Scofield #23637 üzenetére
Szia!
Még egy lehetőség makró nélkül:
A második munkalapnak azt a celláját, ahová a nevet szeretnéd látni, kijelölöd, majd az Adatok- érvényesítés menüpont alatt az érvényesítés legyen lista, a forrása pedig az első munkalap név oszlopának értékes cellái. (még jobb, ha ezt a cellatartományt elnevezed és csak a nevet írod be).
A két másik adatot tartalmazó cellát fkeres függvénnyel tudod kitölteni.
Ennek is az a hátránya, hogy magától nem fordul vissza. Viszont a listát akár egészében is láthatod a kiválasztás során.Üdv.
-
Fferi50
őstag
válasz Mr.Scofield #23641 üzenetére
Szia!
Akkor ez így mégis makró lesz a Userformhoz. és a törlést is meg kell valósítanod.
Üdv.
-
Fferi50
őstag
válasz kriszwells #23654 üzenetére
Szia!
A fájl mentésekor lehet beállítani. A mentés másként opciót válaszd a fájl menüből. A párbeszédpanel ha jól emlékszem alul van egy eszközök, arra rákattintva egy beállítások opció, ha ezt kinyitod, akkor ott vannak a védelmi opciók: jelszó kérés betekintéshez, módosításhoz.
Oda beírod a jelszót, megismétled és elmented a fájlt ugyanazon a néven - megkérdezi, hogy kicserélje-e, erre azt mondod, hog igen - vagy adsz egy másik fájlnevet.Üdv.
-
Fferi50
őstag
válasz tgumis #23657 üzenetére
Szia!
Excel 2007- ben adatok speciális szűrő, Excel 2003-ban adatok, irányított szűrő (makróban advancedfilter metódus.
Ha a c1 cellába tettél egy fejlécet, akkor az irányított/speciális szűrő párbeszéd paneljében csak azt kell beállítanod, hogy C1:C700 az adattartomány, C1 a szűrőtartomány, helyezze át máshova, ide beírod a D1-t, és bejelölöd a csak az egyedi értékeket.Makróval:
range("C1:C700").advancedfilter action:=xlfiltercopy, criteriarange:=range("C1"),unique:=true,copytorange:=range("D1")Ennyi az egész.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz mr.nagy #23660 üzenetére
Szia!
Elvileg két lehetőséged is van erre.
Az egyik, hogy amikor végigmész a sorokon, akkor megnézed, hogy az éppen látható-e:
cells(i,col).entirerow.hidden = true akkor a sor el van rejtve, ellenkező esetben látható. Nyilván a nem látható sorokat nem kell beszámolni a nyomtatásnál.A másik a specialcells metódussal kiválasztod a látható sorokat és azon mész végig, de itt vigyázni kell, mert nem lesz összefüggő a területed, tehát minden területet figyelembe kell venned:
set lathato=activesheet.usedrange.specialcells(xlcelltypevisible)
for each terulet in lathato.areas
for each sor in terulet.rows
'ide írod a kódot
next
nextNyilván az oldaltörési kritériumot figyelned kell.
Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz Mr.Scofield #23663 üzenetére
Szia!
Egyszerű: azért, mert torlo makródban cellánként törölsz és alapesetben ez azzal jár együtt,hogy a törölt cella helyére becsúszik a következő cella, jelen esetben az A helyére a B, a B helyére a C, de ugye Te utána az A-cellát már nem törlöd mégegyszer, csak a B-t és ilyenmódon a C törlése már teljesen felesleges is, mert abban már régen nincs is adat. (Próbáld ki manuális törléssel, hogy lásd, miről is beszélek.)
Megoldás: töröld egyben a 3 cellát, vagy töröld 3 x az A oszlopban levő cellát.
Egyben törlés: Sheets("Adatok").Range(Sheets("adatok").Cells(sorszam, "A"), Sheets("adatok").Cells(sorszam, "C")).DeleteDe még jobb szerintem, ha csak a tartalmat törlöd: cells(sorszam,"A").clearcontents, de ezt is csinálhatod egyszerre mindhárom cellán.
Üdv.
-
Fferi50
őstag
válasz tgumis #23669 üzenetére
Szia!
Az advanced filternél FONTOS: a szűrni kívánt oszlop első cellája legyen fejléc!!!. Ezért viszi be neked a legelső értéket 2x, mivel azt tekinti fejlécnek. (Anno a fejléc szükségességét jeleztem a hsz-ban.)
Tehát Te is tekintsd a D1 cella értékét "fejlécnek". Ha ezzel együtt tudsz élni, akkor nem kell csinálnod semmit....(bár arra figyelni kell, ha csak egy olyan adat van, mint a fejléc, akkor viszont nem lesz 2x az értéke.)Üdv.
-
Fferi50
őstag
Szia!
A makróban is használhatod és nagyon jól működik a szűrés.
Másrészt viszont kereshetsz a range.find metódussal, nézd meg a példát a VBA helpben.
Használhatod match munkalapfüggvényt makróban is, ami a keresett érték helyét adja meg az adott sorban, vagy oszlopban.Ha egy rövid mintát felteszel, akkor még többet tudunk segíteni.
Üdv.
-
Fferi50
őstag
válasz tgumis #23693 üzenetére
Szia!
Természetesen megy 2003-as excelen is.
A fejlécnek a szűrni kivánt adatok (nálad oszlop) első cellájának kell lennie (azért fejléc), nem lehet máshol.
A feltételt teheted máshová is, akkor annak a cellának a címét kell beirni a criterirange paraméter után, az lehet akár a cél cella is. DE: a szűrendő adatok fejlécének meg kell egyeznie a kritériumcellák fejlécével.
Nézd meg lsz. a magyar help-et az excel irányított szűrőre.Üdv.
-
Fferi50
őstag
Szia!
Egy oszlopot csinálj a városnevekből irányított szűrővel, csak az egyedi adatokra szűrve, másolás másik helyre. Utána az első cella mellé beírod a darabteli képletet és végighúzod az oszlopon.(A darabteli képletben $E$2:$E$4000 legyen a tartomány!)
Utána a darabtelis oszlopot átalakítod értékké. (másolás, irányított beillesztés - értéket).
Majd a két oszlopot rendezed a második oszlopra kívánalmaid szerint.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz slashing #23716 üzenetére
Szia!
Ha jól értem, akkor a fejlécek különbözőek, csak más-más sorrendben vannak.
Ebben az esetben én a következőt javaslom:
Csinálj egy "átmeneti" táblát(munkalapot), ahová a fejléceket a második táblában levő sorrendbe teszed be. (Praktikusan beillesztesz egy munkalapot és ide bemásolod a második tábla első sorát).Ezután az első tábládra csinálsz egy "advanced filtert", ahol a szűrendő tartomány az első tábla usedrange, a szűrőfeltétel az átmeneti tábla első sora és új helyre másolás helyének kijelölöd az átmeneti tábla első sorát.
Végrehajtod az irányított/speciális szűrést - ekkor az átmeneti tábládban már ugyanolyan sorrendben lesznek az oszlopok, mint a második táblában. Innen már csak egy sima copy kell és az átmeneti tábla törlése.DE még egyszerűbb szerintem a következő:
Szintén advanced filter, a következők szerint:
Szűrendő az első táblád
Feltétel: a második táblád fejléc sora (csak az első sor!)
Másolás helye: a második táblád vége!
Új helyre másolással a szűrés végrehajtása.
Az tábla közben (az eredeti második tábla utolsó sora után) keletkező "álfejléc" sor törlése. Nyilván ezt akkor tudod megtenni, ha megjegyezted, melyik sort jelölted ki másolási célnak.Talán bonyolultnak tűnik, de hidd el egyszerűbb megcsinálni, mint leírni volt.
Én rögtön a második verzióval kezdeném.Üdv.
-
Fferi50
őstag
válasz slashing #23720 üzenetére
Szia!
Most ellenőriztem, sajnos a speciális szűrés nem megy, mert ha nincs olyan fejléc a szűrendő mezőben, akkor hibát dob (bár nem egészen értem a logikáját, hogy miért, de ez van, ezt kell elfogadni.)
Másik ötlet:
Képlet szinten: Hol.van függvénnyel meghatároznám, hogy az adott fejléc hanyadik oszlopban van a másik táblában és abba az oszlopba kell tenni az adatot. (Nyilván ezt le lehet makróval rendezni (match függvény)).
Tehát: kb.így nézne ki
set mlap1=workbooks("Munkafüzet3").sheets("Munka1")
set mlap2=workbooks("Munkafüzet4").sheets("Munka1")
itt kezdheted az oszlopok ciklusát
oszlop=application.match(mlap1.range("A1").value;mlap2.rows('"1:1"),0)
if not iserror(oszlop) then ' ez csak azért kell, ha mégsem lenne olyan fejléc a másik munkalapon
yy=mlap.cells(40000,oszlop).end(xlup).row+1
for xx=2 to mlap1.range("A2").end(xldown).row
mlap2.cells(yy,oszlop).value=mlap1.cells(yy,"A").value
yy=yy+1
next
else
msgbox "Nincs ilyen fejléc: " & mlap1.range("A1").value
endif
next oszlopokA makró csak szemléltető, nem feltétlenül hibátlan.
Ezt végigcsinálod minden oszlopon, és minden kis táblán.
Ha deklarálod a változókat, az oszlop mindenképpen variant legyen, mert annak értéke hiba is lehet, mint látod.Remélem érthető és tudod használni.
Üdv.
-
Fferi50
őstag
válasz slashing #23726 üzenetére
Szia!
Azért javaslom, nézd meg ezt is. Egyetlen követelmény, hogy a másolandó adatok az első oszlopban kövessék egymást - úgy ahogyan a képeken is van.
Sub masolo()
Dim mlap1 As Worksheet, masolando As Range, mlap2 As Worksheet, hovasor As Double, hovaoszlop As Double
Set mlap1 = Workbooks("Munkafüzet3").Sheets("Munka1")
Set mlap2 = Workbooks("Munkafüzet4").Sheets("Munka1")
Set terulet = mlap2.UsedRange
hovasor = terulet.Rows.Count
If terulet.Cells(1, hovasor) = "" Then
Do While True
If terulet(1, hovasor).End(xlToRight).Column < terulet.Columns.Count Then Exit Do
hovasor = hovasor - 1
Loop
End If
hovasor = hovasor + 1
Set terulet = mlap1.Range("A1").CurrentRegion
Do While True
For oszlop = 1 To terulet.Columns.Count
hovaoszlop = Application.IfError(Application.Match(terulet.Cells(1, oszlop), mlap2.Rows("1:1"), 0), 0)
If hovaoszlop <> 0 Then
Intersect(terulet, terulet.Offset(1, 0)).Columns(oszlop).Copy mlap2.Cells(hovasor, hovaoszlop)
End If
Next
hovasor = hovasor + terulet.Rows.Count - 1
Set terulet = terulet.Range("A1").End(xlDown).End(xlDown).CurrentRegion
If Intersect(mlap1.UsedRange, terulet) Is Nothing Then Exit Do
Loop
MsgBox "A másolás megtörtént!", vbInformation, "Másolás"
End SubÜdv.
-
Fferi50
őstag
válasz Delila_1 #23724 üzenetére
Szia!
Néhány apró észrevétel:
" Cells(sor + 1, oszlop).Select
usor = Selection.End(xlDown).Row
"A select teljesen felesleges, egyszerűen usor=cells(sor+1,oszlop).end(xldown).row elég.
A worksheetfunction.match helyett célszerűbb az application.match függvényt alkalmazni, (ezt én is egy másik topicban tanultam), mivel így más módon kell a hibakezeléssel foglalkozni.
A ws.match hibát generál, ha nem találja a keresett értéket, az app.match hibaértékkel tér vissza, amit változóban vagy függvényben is "elkaphatsz", akár az iserror, akár az iferror függvény működik. Tehát ebben az esetben nem kell az on error goto vagy on error resume next sor és a hozzá kapcsolódó dolgok.Ha iserrort használsz, akkor "csak" arra kell figyelned, hogy a változó, amibe kéred a match eredményét, variantnak legyen definiálva - mivel értéke lehet szám és lehet hibaérték is. Iferrornál nem kerül a változóba hiba, tehát ott jó a double is.
Üdv.
-
Fferi50
őstag
válasz Snoop-y #23732 üzenetére
Szia!
Ha nem írod, hogy milyen nyelvű és verziójú excel verziót használsz, akkor bizony ilyen előfordulhat. Mivel a fórumon általában magyar nyelvű excellel találkozunk, ezért a magyar nyelvű függvényeket szoktuk megadni (kivéve makró).
De tudjuk ám az angol nevüket is....Üdv.
-
Fferi50
őstag
válasz Delila_1 #23738 üzenetére
Szia!
Félreértettél, nem azt írtam, hogy nincs hibakezelés a makródban - természetesen láttam, hogy ott van az on error goto tovabb és a tovabb cimke - , sőt, még azt sem írtam, hogy nem jó a ws.match, hanem azt, hogy app.match esetén nem kell külön hibakezelést beépíteni a makróba.
Üdv.
Idézet a 23730-ból:
"A worksheetfunction.match helyett célszerűbb az application.match függvényt alkalmazni, (ezt én is egy másik topicban tanultam), mivel így más módon kell a hibakezeléssel foglalkozni." -
Fferi50
őstag
válasz nebulo0128 #23783 üzenetére
Szia!
Szerintem próbáld így:
WHERE " (f_orszag like ' & sheets("Munka1").range('A1").value & "')"
Üdv.
-
Fferi50
őstag
válasz nebulo0128 #23783 üzenetére
Szia!
Még az előző hozzászólásomhoz annyit:
Ha a feltételt a cellából veszi, akkor csak "WHERE (f_orszag like '" & Munka1!A1 & "')"
Amit az előbb írtam, a makrós megoldásra jó.
Üdv.
-
Fferi50
őstag
válasz nebulo0128 #23792 üzenetére
Szia!
Most egy olyan dodonai választ fogsz kapni, hogy "az excel sokmindenre képes, de sokmindenre nem".
Alapjában véve táblázatkezelőnek "indult", de mára már "adatbázis kezelő" is nyomokban.Ahhoz amit szeretnél, szerintem kell egy olyan makró, amelyik a cella beírása után lefuttatja a cella értékének megfelelő lekérdezést és az eredményt beírja a cella melletti tartományba. Vagyis minden cellaértékre külön-külön kell lefutnia a lekérdezésnek. Viszont ez a lekérdezés (querytable) lehet egy konkrét helyen (akár rejtett munkalapon) és onnan másolódik be az adott cella mellé.
Vagyis a lekérdezés tábla értéke mindig változik az aktuális cella értékének megfelelően, viszont az egyszer már a cella mellé másolt értékek nem változnak.Pl. querytable helye munka2!A1:X2 egy sor fejléc egy sor adat
Munka1.A1 cellájába beírod "valami", a worksheet_change esemény erre lefuttatja a lekérdezést az A1 ez az eseménykezelőben Target nevű objektumként található - értékével, majd a Munka2!A2:X2 értéket bemásolja a Munka1. B1 cellájától kezdődően.
Ezután
Munka1 A2 cellájába beírod "valami2", a worksheet_change esemény megcsinálja a fentieket a Target.value értékkel -azaz az A2-ben levő valami2 -vel majd Munka2!A2:X2 értékekekt bemásolja a Munka1.B2 cellájától kezdődően (Munka1.B2 cella = Target.Offset(0,1) az eseménykezelőben.
És így tovább...."Csak" a lekérdezést és az eseménykezelőt kell jól megírni........ Nyilván ellenőrizni kell, hogy valóban olyan helyre írtak be értéket, ahova a cikkszám való és valóban létező cikkszámot írtak be.
Remélem, tudod hasznosítani amit írtam, ha gondolod privi is jöhet.
Üdv.
-
Fferi50
őstag
Szia!
Nem egészen értem a kérdést. Ha a mappákban és almappákban levő fájlokat fel tudod dolgozni, akkor tudod a nevüket is.
A workbook.fullname megmondja a teljes (elérési úttal kiegészített) nevet is.
Tehát az éppen feldolgozott fájlodnak megnézed a fullname tulajdonságát és azt hozzáteszed infoként a rekordokhoz.Üdv.
-
Fferi50
őstag
Szia!
A dir() parancs korlátok között alkalmas arra is, hogy megkeresd vele az almappákat.
neve=dir("*.",vbdirectory) azokat a fájlneveket hozza, amelyek könyvtárak, vagy nincs kiterjesztésük.
Az első két ilyen elvileg a . és .. könyvtár, ami minden mappában benne van. (Könyvtár=mappa az én értelmezésemben most, ne zavarjon.)
Ezután folyamatos neve=dir() parancsokkal megkaphatod a többi nevet.
Ez lényegében ugyanaz, mint amikor a fájlokat nézed végig.
Mivel sajnos nem egyértelmű, hogy almappa-e amit hoz, annak is meg kell nézni hasonló módon az "almappáját", ha van benne "." könyvtár, akkor az is almappa.Most sajnos nincs elég időm arra, hogy pontos makrót írjak rá, de ezen elvek szerint próbáld végig.
Van még a filesystemobject objektum, amellyel szintén meg lehet találni a fájlokat.
Ezt is érdemes lenne végignézni.Üdv.
-
Fferi50
őstag
válasz Dr. Romano #23886 üzenetére
Szia!
Az alábbi feltételes formázást javaslom:
A rendszámok a B2:C29 mezőben vannak.
Formázás képlettel,
a B2:B29 cellákra a következő a képlet:=ÉS(DARABTELI($B$2:$B$29;$B2)>0;DARABTELI($C$2:$C$29;$B2)>0)
a C2:C29 cellákra pedig a következő: =ÉS(DARABTELI($C$2:$C$29;$C2)>0;DARABTELI($B$2:$B$29;$C2)>0)Azért kell az abszolút ($-os) képlet a tartomány meghatározásához, hogy ne "csússzon ki" a tartományból a számolás.
Másrészt, azért kell különböző képlet a két oszlopra, mert nem egymás mellett is lehetnek az azonos rendszámok, tehát az első képlet "próbáját" is meg kell csinálni a második oszlopra.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz littleNorbi #23897 üzenetére
Szia!
Annyit azért elárulhattál volna, hogy angol nyelvű excelt használsz.....
(Mint az a következő hozzászólásodból ki is derül.)Üdv.
-
Fferi50
őstag
válasz littleNorbi #23900 üzenetére
Szia!
Makrókban erősen ajánlott az angol függvényneveket használni (de nem kizárt, mert a formulalocal paraméter a helyi nevekkel működik, csak nem hordozható).
A tisztánlátás kedvéért, ha jól lefordítod angolra, akkor nem lehet NAME hiba! De ha tudjuk, hogy angol az exceled, akkor az angol függvénynevet kapod a munkalapra beírandó képletekhez is, nem kell fordítani.
Üdv.
-
Fferi50
őstag
válasz snorbi82 #23970 üzenetére
Szia!
Itt ugyan a 25. sorban van Minta Janika, de sebaj, mindegy is melyik sorban van, azt majd megadod.
Nagy vonalakban a javaslatom:
Indulsz a meglevő, beolvasott csv adatokkal.
A változó deklarációkat rád bízom...set adatok=activesheet
utsor=cells(1000,1).end(xlup).row 'megkeressük az utolsó sort
For ugyfsor=18 to utsor ' ettőll eddig kell a ciklusnak menni
set ujws=workbooks.add.sheets(1) 'létrehozza az új munkafüzetet és aktívvá teszi
range(adatok.cells(ugyfsor,"J"),adatok.cells(ugyfsor,"Z").copy range("J18")
range(adatok.cells(ugyfsor,"AA"),adatok.cells(ugyfsor,"AB").copy range("J19")
range(adatok.cells(ugyfsor,"AC"),adatok.cells(ugyfsor,"AD").copy range("J20")
' és így tovább..... ha az első oszlopnál akarod kezdeni, akkor range("A18") a "J18" helyett stb.
' ha végig értél az ügyfélen
ujws.parent save as filename:=fájlnév ' (amit természetesen neked kell megadni)
ujws.parent close false
next 'és megy vissza az elejére a ciklusRemélem, tudsz belőle valamit használni.
Üdv.
-
Fferi50
őstag
Szia!
Tedd a kódot a Userform Activate eseménybe (is).
Egyébként lehetne rövidebben:
Private Sub togbutTranslate_Click()
Range("b_forditocellak").EntireColumn.Hidden = Not Range("b_forditocellak").EntireColumn.Hidden
End Sub
Private Sub UserForm_Activate()
Me.togbutTranslate.Value =Not Range("b_forditocellak").EntireColumn.Hidden
Me.labVersion.Caption = "Jegyzőkönyv verziója: " & Worksheets("MAGYAR").Range("N2").Value
End SubÜdv.
-
Fferi50
őstag
Szia!
Az Initialize csak egyszer fut le, akkor amikor betöltődik a form.
Az Activate mindig, amikor megjeleníted.Elképzelhető, hogy mást kell csinálnia az első megjelenéskor, mint a következőknél, ahhoz, hogy jól működjön.
Szerintem most az inicializálást el lehet hagyni. (De próba és már meg is tudod....)Üdv.
-
Fferi50
őstag
válasz bteebi #23976 üzenetére
Szia!
A select csak az aktív munkalapon használható. Itt pedig az aktív munkalap Sheets("Adatok").ChartObjects("Diagram 1").Activate alapján az "Adatok" munkalap.
Te pedig a Sheets("Diagramok").Cells(3 + (i - 1) * 28, 2).Select szerint a "Diagramok" munkalapon adod ki a selectet.Üdv.
[ Szerkesztve ]
-
Fferi50
őstag
válasz bteebi #23981 üzenetére
Szia!
A Paste szintén olyan metodus, amelyik csak az aktív lapon működik.
Sajnos a vágólapra helyezett dolgokat (a Copy odateszi), csak ezen a módon tudod VBA-ból elérni.
A Diagram elég különleges "állatfajta" ebből a szempontból is, hiszen forrásadat nélkül csak "módosíthatatlan" képként tudod egyik helyről a másikra áttenni.Én is javaslom a Chart.CopyPicture alkalmazását.
Üdv.
-
Fferi50
őstag
válasz slashing #23998 üzenetére
Szia!
Igazad van.
Csinálni kell egy segédoszlopot, amibe összefűzzük a négy oszlop celláit és abban keressük a vizsgálandó sor összefűzött értékét. Az összefűzésnél akár elválasztó jelet is alkalmazhatunk.
Tehát Delila példájánál maradva: H1 =D1&E1&F1&G1 ezt kell végighúzni a H oszlopban, majd az I4 cella képlete:
=HA(Darabteli($H$1:$H4;D4 & E4 & F4 & G4)>1;"x";"")Üdv.
[ Szerkesztve ]
-
Új hozzászólás Aktív témák
- Fallout 76
- Milyen légkondit a lakásba?
- Kerékpárosok, bringások ide!
- Kupon kunyeráló
- Samsung Galaxy Fit 3 - keveset, de jól
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Az EU szerint kartelleztek az indítóakkumulátorok piacán
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Háztartási gépek
- További aktív témák...
Állásajánlatok
Cég: Alpha Laptopszerviz Kft.
Város: Pécs
Cég: Ozeki Kft.
Város: Debrecen