Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Az utolsó még szükséges sortól lefelé kijelölöd a végéig, majd törlöd.
Természetesen a sorok "újratermelődnek" mert mindig megmarad a munkafüzetben az eredeti sormennyiség.
Viszont ha után ismét megnézed, mi az utolsó cella, akkor már a ténylegesen használt sorra fog ugrani és nem a végére.
Viszont nem ártana megnézni, mi került abba az "utolsó" cellába, abból lehetne következtetni az előidéző okra.(Sajnos lehet "láthatatlan" karakter vagy formázás pl.)
Köszönöm. Lefuttattam, és valóban még rossz adatok jelennek meg a táblázatomba bemásolva, de szerintem nem a sorrend miatt, ugyanis a makró amely eddig feldolgozta, csak a nekem szükséges adatokat hagyja meg:
'GYOMLÁLÁS 'Oszloptörlés T = Array("LENX", "LENY", "LENZ", "MATERIAL", "NAME", "SUMMARY", "TIP", "A1", "A2", "B1", "B2", "HIV") uoszlop% = Sheets(Sheets.Count).UsedRange.Columns.Count For oszlop% = uoszlop% To 1 Step -1 f = False For Tag% = 0 To 11 If Sheets(Sheets.Count).Cells(1, oszlop%) = T(Tag%) Then f = True Exit For End If Next If f = False Then Columns(oszlop%).Delete Shift:=xlToLeft Next
Én ha megnyitok az excelben egy CSV fájlt, akkor nálam az adatok soronként egy cellában lesznek. Nem szoktam szórakozni táblázattá alakítással, mert a nélkül is fel tudom dolgozni az adatokat.
Így én az általad küldött CSV fájlból indultam ki és az alapján dolgoztam fel az adatokat. Azaz megkerestem, hogy mely pozícióban vannak a lenx, leny és lenz adatok majd azokat átkonvertáltam mm-be a B, C és D oszlopokba.
Bár az a sejtésem, hogy neked ez így nem lesz jó. Ez után a hozzászólásod után. Lévén az adatok sem ott helyezkednek el, ahol nekem.
Ezt nem én hoztam létre, ezt így generálja egy szoftver.
Azért akartam makrót, mert átváltás után pont ugyanígy kell kinéznie a táblázatnak, mivel az átváltást követően egy régebben megírt nagyon bonyolult makró dolgozza fel.
Annyi történt, hogy ez a szoftver, most már nem mm-ben generálja az adatokat, hanem collban, és így nem tud a makró mit kezdeni vele.
Public Sub atvalto() Dim lenx, leny, lenz As Double Dim lenxpoz, lenypoz, lenzpoz, templong, utolsosor As Long Dim i, j As Long Dim szoveg, cimsor As String cimsor = Range("A1") lenxpoz = InStr(1, cimsor, "LENX") lenxpoz = CountChrInString(Left(cimsor, lenxpoz), ",") lenypoz = InStr(1, cimsor, "LENY") lenypoz = CountChrInString(Left(cimsor, lenypoz), ",") lenzpoz = InStr(1, cimsor, "LENZ") lenzpoz = CountChrInString(Left(cimsor, lenzpoz), ",") utolsosor = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row Range("B1") = "LEN X in mm" Range("C1") = "LEN Y in mm" Range("D1") = "LEN Z in mm" For j = 2 To utolsosor - 1 szoveg = Range("A" & j)
'X mérete templong = 0 For i = 1 To lenxpoz templong = InStr(templong + 1, szoveg, ",", vbTextCompare) Next i Range("B" & j) = Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2) Range("B" & j) = Range("B" & j) * 25.4
'Y mérete templong = 0 For i = 1 To lenypoz templong = InStr(templong + 1, szoveg, ",", vbTextCompare) Next i Range("C" & j) = Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2) Range("C" & j) = Range("C" & j) * 25.4
'Z mérete templong = 0 For i = 1 To lenzpoz templong = InStr(templong + 1, szoveg, ",", vbTextCompare) Next i Range("D" & j) = Mid(szoveg, templong + 2, InStr(1, Mid(szoveg, templong + 2), ",") - 2) Range("D" & j) = Range("D" & j) * 25.4 Next j End Sub
Public Function CountChrInString(Expression As String, Character As String) As Long Dim iResult As Long Dim sParts() As String
Minek ehhez makró? Az A2, B1, B2 (R,S és T) oszlopod úgyis üres, ezért oda írtam be a 25.4-el megszorzott adatokat, amit aztán lefelé húzhatsz. Neked is azt javaslom, hogy segédoszlopba tedd a mm adatokat.
Makrót írni is egyerú lenne, de felesleges, és zavarokhoz vezethetne. Ha egyszer lefuttattad, nem derűl ki a makró számára, hogy már a mm-ben megadott érték szerepel ott, ezért véletlen újrafuttatás esetén hibás értékek kerülnének a mm adatok helyére.
Más: A csv fájlban miért tettél idézőjelet az elejére, majd miért dupláztál meg minden idézőjelet? Ezeket ki kellett törölnöm, és csak ezután sikerült Excelbe beolvasni az adatokat.
Több oka is lehet. Próbáld ellenőrizni a következőket:
1. A munkalapokon az utolsó cella hol található - F5 - irányított - utolsó cella. Ha ez nem a valós területen van, akkor a tényleges területtől lefelé és oldalra törölj ki minden sort majd oszlopot. Ez előforduhat pl. sorok/oszlopok beszúrása, majd törlése után. Hajlamos ottmaradni pl formázás, amit ráadásul egyébként nem is látsz.
2. A függvények nem hivatkoznak-e egész sorokra/oszlopokra (pl. A:A ). Mivel a munkalap sorainak és oszlopainak is nagy a száma, a képletek ottragadhatnak ahol nem is kellenének. Ráadásul a számolást is lassítja. Tudom, kényelmesebb(?) egész oszlopra hivatkozni, de célszerűbb egy olyan területet megadni, amely nagyjából megfelel a szökséges tartománynak.
3. A feltételes formázásokat is érdemes megnézni.
4. vagy 0 ha lehet, próbáljátok visszakövetni, hogy milyen művelet idézte elő a méretnövekedést, lefagyást. Akkor lehet pontosabb diagnózist adni.
Sziasztok! Közös használatú hálózati mappában lévő Excel fájlokat több ember szerkeszti Office 2007 vagy Office 2010 verzióval windows 10 alatt. Időnként előfordul, hogy egy-egy fájl mérete közel 100-szorosára növekszik, ennek megfelelően a megnyitása, szerkesztése, mentése is lassú, esetleg le is fagy az Excel. Hogyan tudom kideríteni, hogy mi okozza a méretnövekedést, és hogy lehet "eltüntetni"?
Az időnként készített biztonsági mentésből a közös munka miatt nem biztos, hogy az utolsó változat állítható vissza.
Az intervallumok határait feltöltöd egy oszlopban, mellette az ott érvényes árakat:
Ezután az FKERES függvény 4. paraméterét IGAZ (1) -ra állítod.
El kell döntened, hogy a felső határ esetén még az alatta levő vagy már az új sávban levő árat kell alkalmazni, azaz pl. pontosan 1 kilónál 500 Ft vagy már 1000 Ft az ár.
Ha így adod meg, akkor 1 kg-nál az 1000 forintos ár érvényesül. Ha viszont az 500 forintot szeretnéd érvényesíteni, akkor a határt emelni kell 101-re és így tovább.
Javaslom hozzá az FKERES súgójának az elolvasását.
Szerintem megtaláltad a hiba okát. Én eddig nem használtam, ezért nem ismertem azt a lehetőséget, amire rámutattál, hogy a jobboldali nyilakkal lehet a jelmagyarázat sorrendjét a hozzátartozó adatoktól függetlenül beállítani. Azért meglepő, hogy egyáltalán miért merülhetett fel ez az igény.
Valószínűleg a diagramon más a sorrendje az egyes évek adatainak. Próbáld meg a következőt:
Kiválasztod a 2023 évi "vonalat" adatot. Ezután a szerkesztőlécen megjelik az adatsor forrása:
pl. =ADATSOR(áram!$F$29;áram!$A$30:$A$186;áram!$F$30:$F$186;4)
Ha 4 adatsorod van, akkor feltételezhetően a 4-es lesz a zárójel előtti szám. Ezt írd át itt a szerkesztőlécen 3 -ra és Enter. Ezáltal megváltozik a megjelenítési sorrend és jelmagyarázat sorrendje is.
Tudnál küldeni egy mintát, ahol látszanak a forrásadatok, valamint az adatfotrrás kiválasztásánál megjelenő lista?
Valahogy így, mivel a saját mintámon elképzelni sem tudom, hogyan oldhatnán meg, hogy két év felcserélődjön a jelmagyarázqatban. Hátha a te mintádból kiderül:
'reggelt! Van egy vonaldiagramom, ami 4 év havi forgalmi adatait jeleníti meg. Az "Adatforrás kiválasztása" ablakban jó a sorrend: 2021, 2022, 2023, 2024. A diagram jelmagyarázatában viszont 2021, 2022, 2024, 2023. Hogy rendezhetném át?
Azt próbáltad már, hogy beszúrod a lapra háttérként és a kívánt néhány cella kivételével az összes többit zárolod? Mondjuk lehet, hogy valami képszerkesztőben még ügyeskedni is kell a kép köré üres területek szerkesztésével a pontos pozícionáláshoz. A rácsvonalak ugye kikapcsolhatók, a cellaformázás pedig ad számos lehetőséget az aktív cellák megjelölésére.
Az én ötletem, hogy felrakod az antenna képét jobb oldalra, de úgy, hogy a változókat egy-egy betűvel helyettesíted. A képernyő bal részén ezeket szépen, egymás alatt bekéred a usertől. Kevésbé elegáns, mert plusz egy hivatkozás van értékenként, amit követnie kell a felhasználónak, de gyors eredményt ad.
Ha nem olyan a kép formátuma, hogy legyen rajta átlátszóság, akkor is meg lehet oldani.
Ha rákattintasz a képre, akkor a menü szalagon megjelenik a képformátum. Annak a legelső pontja a "Háttér eltávolítása". Ott ki lehet jelölni, hogy mi az a terület, amit átlátszóvá szeretnél tenni. Ha sok benne a vékony vonal, akkor kicsit nehézkes az Excelben megoldani.
Ilyenkor én GIMP-ben szoktam. Ha megnyitod a képet szerkesztésre a GIMP-ben, akkor először hozzá kell adni a réteg átlátszóságot is. A varázs kijelölő eszközzel ki kell jelölni az eltávolítandó részeket. Én ennek olyan 20-as értéken szoktam állítani a "durvaságát", akkor elég jól kijelöli az elkülönülő hátteret. Majd ha jó a kijelölés, akkor delete gombbal törlöd a hátteret. Ilyenkor a GIMP-ben ez kockás háttérrel lesz jelölve. Utána simán kijelölheted az egészet és visszamásolhatod az Excelbe.
Én úgy látom, hogy kép mögötti cellába nem tudsz írni. Azon cella helyén, amelybe írni szeretnél, "lyukat" kell hagyni a képen, tehát azt a cellát nem fedheti le a kép! Ez nyilván könnyen megoldható, ha a kép szélei felé vannak az írni tervezett cellák, mert akkor szépen körül lehet vágni a képet, viszont a közbe - hátul levő cella esetében már szét kell vágni a képet és több darabban felrakni a cella kihagyásával.
Szerintem egyszerűbb lenne, ha a képet egy Userformra tennéd fel, arra lehet tenni Textboxokat és azok értékével lehet számolni, a textboxok értékét hozzá tudod kapcsolni egy cellához a ControlSource tulajdonsággal, ha változik a textbox értéke, változik a hozzá csatolt cella értéke is.
sziasztok. Lenne egy kérdésem. Hogyan lehetne egy képet úgy beszúrni az excelbe, hogy mögötte eg pár cella látszódjon, amelybe értéket beírva, akár képletre is bírható.
Mire gondolok?
tehát a cellákba értéket írok be, s így a többi cellában a képlettel kiszámoltérték kerül
Már minden lehetőséget megnéztem, de nem jöttem rá, hogyan oldható meg.
Itt egy példa 06830 betétlap esetében a Sheet 1 dátumformátumok átvitele után a Summary lapfülön Bontási dátumban 1900.01.00 értéket kapok vissza. Ez csak egy példa de több ilyen eset is előfordul:( Mi miatt lehet ez?
Ezzel minden bontást meg fogsz találni, sőt, a végeredmény még több is lesz 1 db-bal... mivel a betétlap meint azonosító szerintem nem elegendő, kell még mást is figyelni.
Új munkalap létrehozása: Az Épít típusú rekordokat átmásolja az eredeti munkalapról egy új, "Summary" nevű munkalapra.
Bontási dátumok hozzáadása: Megkeresi a bontási rekordokat és hozzáadja a bontási dátumot a "Summary" munkalaphoz. a megfelelő sorhoz:) Betétlap alapján de ez valami miatt nem minden rekord esetén kerül be
Összegzés és ellenőrzés: Összegzi a térfogatokat, majd összehasonlítja az eredeti és a summary adatok számait, és jelzi az eltéréseket, ha vannak.
Miért nem megy át a Bont sorokból a summary lapfülre az adat?
Nem fontos a makrós megoldás sem a lényeg az lenne hogy egy sorban legyen az építési dátum és a bontási dátum.
Sub FilterAndSummarizeData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ' Eredeti munkalap
Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Szűrjük az Épít sorokat és másoljuk a Summary lapra Dim newSheet As Worksheet On Error Resume Next Set newSheet = ThisWorkbook.Sheets("Summary") On Error GoTo 0 If Not newSheet Is Nothing Then Application.DisplayAlerts = False newSheet.Delete Application.DisplayAlerts = True End If Set newSheet = ThisWorkbook.Sheets.Add newSheet.Name = "Summary"
' Másoljuk az Épít sorokat a Summary lapra Dim i As Long For i = 2 To lastRow If ws.Cells(i, 13).Value = "Épít" Then newSheet.Cells(newRow, 1).Value = ws.Cells(i, 1).Value newSheet.Cells(newRow, 2).Value = ws.Cells(i, 2).Value newSheet.Cells(newRow, 3).Value = ws.Cells(i, 3).Value newSheet.Cells(newRow, 4).Value = ws.Cells(i, 4).Value newSheet.Cells(newRow, 5).Value = ws.Cells(i, 5).Value newSheet.Cells(newRow, 6).Value = ws.Cells(i, 6).Value newSheet.Cells(newRow, 7).Value = ws.Cells(i, 7).Value newSheet.Cells(newRow, 9).Value = ws.Cells(i, 8).Value newSheet.Cells(newRow, 10).Value = ws.Cells(i, 9).Value newSheet.Cells(newRow, 11).Value = ws.Cells(i, 10).Value newSheet.Cells(newRow, 12).Value = ws.Cells(i, 11).Value newSheet.Cells(newRow, 13).Value = ws.Cells(i, 12).Value newSheet.Cells(newRow, 14).Value = ws.Cells(i, 13).Value newRow = newRow + 1 End If Next i
' Keresés és bontási dátumok hozzáadása Dim betetlapId As Variant Dim bontCount As Long bontCount = 0 For i = 2 To newRow - 1 betetlapId = newSheet.Cells(i, 6).Value Dim foundRow As Long foundRow = 0 For j = 2 To lastRow If ws.Cells(j, 6).Value = betetlapId And ws.Cells(j, 13).Value = "Bont" Then foundRow = j Exit For End If Next j If foundRow > 0 Then newSheet.Cells(i, 8).Value = ws.Cells(foundRow, 7).Value bontCount = bontCount + 1 End If Next i
' Szűrő hozzáadása a fejlécekhez newSheet.Range("A1:N1").AutoFilter
' Adatok kijelölése newSheet.Range("A2:N" & newRow - 1).Select
' Teljes m3 összegzése és formázása Dim totalSum As Double totalSum = Application.WorksheetFunction.Sum(newSheet.Range("L2:L" & newRow - 1)) newSheet.Range("O1").Value = totalSum With newSheet.Range("O1") .Font.Bold = True .Font.Italic = True .Font.Color = RGB(255, 0, 0) .Font.Size = 14 .Font.Name = "Calibri" End With
' Eredeti bontás rekordok száma Dim originalBontCount As Long originalBontCount = Application.WorksheetFunction.CountIf(ws.Range("M2:M" & lastRow), "Bont")
' Eredmények ellenőrzése és megjelenítése Dim checkSheet As Worksheet On Error Resume Next Set checkSheet = ThisWorkbook.Sheets("Check") On Error GoTo 0 If Not checkSheet Is Nothing Then Application.DisplayAlerts = False checkSheet.Delete Application.DisplayAlerts = True End If Set checkSheet = ThisWorkbook.Sheets.Add checkSheet.Name = "Check"
' Az értékek megjelenítése és formázása With checkSheet.Range("A1:B4") .Font.Bold = True .Font.Size = 12 .Font.Name = "Calibri" End With checkSheet.Columns("A:B").AutoFit
' Hibaüzenet, ha a bontási rekordok száma nem egyezik If originalBontCount <> bontCount Then MsgBox "A bontási rekordok száma nem egyezik meg! Eredeti bontási rekordok: " & originalBontCount & ", Átmásolt bontási rekordok: " & bontCount, vbExclamation End If End Sub
Azt nem tudod megoldani, hogy bemásolás/törlés helyett kvázi "görgeted" a listát? Ha jól látom, alul van a legfrissebb adat, és a lista elején a legrégebbi. A görgetés ebben az esetben azt jelentené, hogy a Körte, szőlő, barack sorokkal felülírod az Alma, körte, szőlőt, amivel a barack sor megduplázódik. És a legalsó sorban lévő Barack adatokat írod felül az új adatsorral.
Én például egy évente frissülő jelentésben szereplő 5 éves grafikonsorokat szoktam ezzel a technikával frissíteni, így nem kell grafikonokat mindig újra rajzoltatni, hanem azzok autoatikusan aktualizálódnak.
Ebben igazad van, viszont ez a táblázat az éppen folyamatban lévő munkákat "monitorozza". Amikor valami elkészül kikerül a rendszerből, ha valami új jön akkor pedig értelemszerűen be. Ha nem törlődne, nem lenne már átlátható, túl nagy lenne.
Az én célom pedig, hogy 1 vagy 2 hetes bontásban mindig rátudjak szűrni az éppen aktuális megrendelésekre és csak azt lássam, hogy milyen készültségben van. A tőbbi jövőben gyártandó termék ne keverjen be, csak a heti-két heti aktuális.
Azért a folyamatos törlés/bővítés nem nagyon tesz jót a képleteknek... inkább bővüljön folyamatosan és ne törölj belőle. A második munkalapra akkor is ki tudod szedni az adatokat, ha a "régiek" benne maradnak az elsőben.
A munkalapok stílusát te határozod meg, olyan lesz mindegyik, amilyenre beállítod.
Mit gondoltok, az is megoldható, hogy amilyen stílusban néz ki az egyik munkalap, ugyanolyanra csinálja a másikat is?
A célom az lenne egyébként, hogy az Munkalap1 adatokból mindig előre szűrjem határidő szerint 1 v. 2 héttel előre a munkákat. És ezekkel az adatokkal dolgozni, diagramok stb.
Ha nem a második oszlopban van ahova írni szeretnél. akkor az OSZLOP függvény értékét módosíts a Név oszlop utánira + vagy - érték hozzáadásával. Ha pl. a 3. oszlopban szeretnéd kezdeni, akkor OSZLOP()-1 lesz a Határidőnek megfelelő eredmény.
Érdeklődnék tudtok-e a problémámra függvényt vagy javaslatot.
Adott egy munkalap amin egy sorokból és oszlopokból álló adatsor van (bizonyos folyamatok nyomonkövetésére szolgál, mely az idő múlásával folyamatosan bővül vagy törlődik).
Létezik-e olyan függvény az excelben, ami egy bizonyos feltétel teljesülése esetén az egész sor értékeit kiírja vagy átmásolja a másik munkalapra?
Tehát:
Munkalap1 tartalmazza az adatokat
Munkalap2-ben pedig szeretném látni az adott feltételhez tartozó egész sort.
Például:
Munkalap1:
Név Határidő Munkaszám stb. stb.
Alma 2024.07.05 24-001 .... ....
Körte 2024.07.08 24-002 .... ....
Szőlő 2024.07.10 24-003 .... ....
Barack 2024.08.16 24-004 .... ....
Munkalap2-n pedig szeretném látni a Barackhoz tartozó összes adatot.
Szerintem te ebbe futottál bele: http://forum.index.hu/Article/viewArticle?a=167183191&t=9009340 A hónap elején kellett újratelepíteni a gépemet, mert meghalt az SSD benne. Egy jópár évvel ezelőtti telepítővel telepítettem újra az Officet. Nem tudom, hogy telepítés után frissült-e vagy sem. Gyakorlatilag 1-2 napig biztosan úgy használtam, hogy a menügombos funkció nem működött jól, mert alapértelmezetten a keresésnél villogott a kurzor és oda történt az adatbevitel, nem a menüpontok között tudtam lépkedni a betűkkel. Nekem megoldotta egy office frissítés és azóta ismét jól működik. Arra sem emlékszem, hogy anno frissítette-e magát az office vagy ki voltak kapcsolva a frissítések rajta. Most hagytam őket bekapcsolva.
Amúgy kibaszott frusztráló volt a dolog. Mondjuk az is frusztráló, hogy ha IP címmel adok hozzá hálózati meghajtót, akkor nem lehet biztonságos helynek beállítani azt az office adatvédelmi beállításaiban. Távolról szoktam dolgozni VPN-en keresztül, volt egy szerver csere és megváltozott az IP cím és a szerver neve is... Mondanom se kell, hogy sok bosszúságot okozott volna, ha nem tudom mire jó a hosts fájl. Így az én munkaállomásomról olyan, mintha nem is lett volna csere.
Mi az "irányított beillesztés, érték" billentyűparancsa? Ms szerint Ctrl+Alt+V hozná a lehetőségeket (ami nekem amúgy sem lenne az igazi, rögtön az érték-et szeretném beszúrni), de nekem erre ír egy @-ot és villog utána a kurzor. A másik, amit ír (Alt+E+valami, ha jól rémlik), még ennyit sem csinál.
Most azt írta, hogy talán kitiltottak, vagy olyan helyre próbáltam belépni, ahova nem szól az engedélyem.
Ez már a harmadik nevem. Először Delila1 voltam, de megváltozott az email címem, amit nem engedett módosítani az újra. Akkor Delila10 néven léptem be az új címemmel (veteránból babakocsis lettem).
Most nem változott semmi, de újra regisztrálni kellett, hogy beléphessek, így lettem Delila_10, és ismét kezdő.
Köszönöm. Egyébként ugyanezt csináltam, és azt hittem az a baj, hogy a két hasonlítandó munkalap neve azonos. De alaposabban megnézve rájöttem, hogy egy ponton egy ciklusváltozót elrontottam, és így a program egyszerűen átugrotta az adatok egy részét, és nem listázta a meglévő eltéréseket. Ezért hittem azt, hogy az azonos munkalapneveket nem jól kezelem.
Sziasztok, régóta használok egy makrót két munkafüzet azonos szerkezetű munkalapjainak összehasonlítására. Most felmerül az a helyzet, hogy az összehasonlításhoz mindkét munkafüzet munkalapjainak azonos a neve. Azt hiszem, ezt nem tudom megoldani átnevezgetés nélkül. De megkérdezem, nincs-e mégis valami trükk az átnevezgetés megkerülésére?
Engem is szivat... De már évek óta. Szerintem rosszul vannak megírva a cookiekhoz tartozó kódok. Mert van, hogy kiléptet és van amikor pedig nem... Nem függ az eszköztől és a böngészőtől sem.
Nem biztos, hogy az egymással szembeni számokat kell összehasonlítani. A példában a 144 MHz antenna 1/4-es értéke és a 430 MHz 3/4-es értéke van egymáshoz a legközelebb. Ez szemmel is megállapítható. de azt hittem, hogy "automatizálva" egyszerűbb.
az antennatípusokkal még ki kellene egészítened a jobb oldali összehasonlítást, amik írásod szerint egymással szemben vannak. Mondjuk az AH oszlopba a kettő közé.
Utána csinálj egy különbségszámítást az AF oszlopba a két számból. Abszolút értékben tedd ezt meg, mert csak a különbség kell, az előjel mindegy lesz.
Ebből az oszlopból kell megkeresned azt, ami kisebb mint 1.
Tegyél be még 1 segédoszlopt első oszlopnak mondjuk az AE oszlopba, a képlete legyen pl. AF<1. Így ebben az oszlopban kapsz egy igaz / hamis cellaértéket
Ha fentiek szerint jársz el, akkor a sárga celládba kell egy FKERES, amiben megkeresed az első IGAZ találatot és visszaadod az antennatípus oszlopából a találatot.
valami ilyesmi, ha fentiek szerint járrtál el:
FKERES(IGAZ; AE:AH; 4; 0)
ha nem erre gondoltál pontosan, szerintem rá tudod már szabni a saját tábládra.
Lenne egy problémám, de lehet, hogy nem lehet megoldani.
Készítettem egy Antenna méretező segédprogramocskát magamnak.
Vannak olyan antennák, amelyek két frekvenciákra méreteznek, ilyenkor megnézik, hogy melyik két hossz áll legközelebb egymáshoz. Ahogy a képen is látszik, az értékeket jobb oldalra csoportosítottam egymással szemben.
Sajnos nem találtam olyan függvényt, amely a két 7-es csoportot összehasonlítja és kiválasztja azt az értéket, amelyek között pl. max 1 cm különbség van. Ezt az értéket beírja a "Közös antennahossz...cm helyre.
Ki tudna ebben segíteni? Igen tidom szemrevételezéssel is ki lehetne választani, de jó lenne ha ez "automatizálva" történne.
Megoldódott. Kézzel rányomtam a frissítések keresésére és telepített egyet. Így most már a kivágás menüpont az aktív alapértelmezetten, nem a keresés, és rendesen működnek a gyorsbillentyűk is ezáltal.
Elszállt az SSD a gépemben, így kénytelen voltam újratelepíteni....
Elvileg ugyan azt az Excel verziót telepítettem, mint ami korábban a gépemen volt, azaz a Microsoft Office Professional Plus 2021 verzióját. Ehhez vettem meg anno a termékkulcsot, így adta magát, hogy ez is kerüljön vissza. Mégis másképpen működik, mint ez előtt.
Ami az őrületbe kerget az a következő: Ha nyomok egy menü gombot a klaviatúrán, akkor most felhoz egy kereső sávot is és abban villog a kurzor. Lásd a mellékelt fotót, így hiába püfölöm az "É" gombot kétszer, hogy csak értékeket illesszen be, le se tolja a fejemet, mert elkezdi beírni a keresendő kifejezéshez... Ettől az idióta funkciótól hogyan lehet megszabadulni?
Megint újonc lettem. Másodjára dobott ki az Indapass.
Először évekkel ezelőtt, mikor megváltozott az email címem. Most valahogy a rongyos régire emlékezett, a több évest elfelejtette. Oda meg hiába küldött az "elfelejtett jelszó" helyett újat, a cím megszűnése miatt nem kaptam meg.
Még annyit, hogy a fájlnevek beolvasásához használd a DIR függvényt. Ciklusban végégmész a fájlokat tartalmazó könyvtáron - amíg nem lesz üres az eredmény -, és a beolvasott fájlnevekben ellenőrzöd, hogy azok-e, amik neked kellenek (feltéve, hogy nás fájlok is vannak az adott könyvtárban). Aztán sorba rakod őket, és onnan már egyszerű megnyitni, bemásolni.
Ezt nem nehéz makróval összehozni egyetlen munkafüzet egyetlen munkalapjára.
Az adatfájlokhoz rendelj hozzá egy nevet, pl. Adatok 2024, az egyes letöltött fájlok neve legyen ugyanez egy sorszámot tartalmazó toldalékkal. Pl Adatok 2024_1, Adatok 2024_2 stb. Azt meg tudod adni a makróban, hogy az Adatok 2024 kezdetű fájlokat nyissa meg, majd a legelsőt másolja be fejlécestől, a továbbiakat pedig fűzze hozzá a meglévőhöz fejléc nélkül.
Rendszerből kérünk le különböző időintervallumokra adatsorokat. Ezeket a rendszer exel-be hozza, táblázatos formátumban. A rendszerből 3 hónapnál hosszabb intervallumra nem lehet lekérdezni.
Így van amikor ha mondjuk 1 évre visszamenőleg kellenek adatok, az 4 lekérdezés.
Azt, hogyan lehet megcsinálni, hogy lekérdezem az adatsorokat 1 mappába és azt VBA-val egy excellé = egy táblázattá alakítani őket.
Változó, hogy a mappában mennyi táblázat lenne (1-5 -10 db, bármennyi) Mindegyiknek azonos a fejléce, de értelem szerűen a fejléc csak egyszer szerepeljen és aztán az adatsorok betöltve a lekérdezés sorrendjében.
Azért kell először egy cellába beírni a képletet és utána kitölteni lefelé, mert ha egyből az egész tartományba írnánk be, akkor csak az első sor érvénysülne az egész tömbben. (Ne kérdezd miért, ez van....)
2.
(Részben) VBA-val azért bonyolultabb, mert VBA-ban nem tudod a két oszlopot egyszerű módon összefűzni. Én azt választottam, hogy beolvastam a táblázatot egy tömbváltozóba, a változó első két oszlopát összefűztem - a második változatlan maradt - és a harmadik oszlopban keresek, mivel az FKERES tömbben is képes keresni, nemcsak tartományban.
Igy nézne ki:
Sub Minta() Range("C10").Value = Keres_Func(Range("C10").Row) End Sub Public Function Keres_Func(sora As Integer) As Variant Dim ws As Worksheet Dim r As Range Dim keres As String Dim keresotomb, xx As Integer Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2") keres = ws.Range("A" & sora) & ws.Range("B" & sora) keresotomb = ws.Range("K2:M32").Value For xx = 1 To UBound(keresotomb, 1) keresotomb(xx, 1) = keresotomb(xx, 1) & keresotomb(xx, 2) Next Keres_Func = Application.VLookup(keres, keresotomb, 3, 0) End Function
Ne feledd, hogy ebben az esetben a cella értéket kap és nem képletet, így nem húzható lefelé!!! Minden cellára egyenként kell az értéket előállítani a függvény meghívásával.
Itt a fórumon néhány hete ügyeztünk erről a függvényről:
A minta C10 cellába beírva: =FKERES(ÖSSZEFŰZ(A10;B10);VÁLASZT({12};ÖSSZEFŰZ(INDEX($K$2:$M$32;0;1);INDEX($K$2:$M$32;0;2));INDEX($K$2:$M$32;0;3));2;IGAZ)
működik...
Ezt szerettem volna VBA ban megírni, de nem jártam sikerrel.
Én nem tudok olyan Excel függvényről, amely 2 oszlop összefűzésének eredményét keresné egy másik tartomány 2 össze nem fűzött oszlopában.
Ehhez a célterületen létre kell hoznod egy segédoszlopot, és abban keresni. Nálam ez az N oszlop lett. A 2-32 cellák tartalma pedig az N2-ben K2 & L2,és ez lefelé kitölve.
És mivel képtelen voltam rájönni, hogy a vlookup függvény miért ad Variant/error hibát, ezért – amíg valaki meg nem találja a megoldást – javaslom, hogy a find függvénnyel keress. Ez egy Range típusú változóban adja vissza az eredményt (nálam találat a neve), és ennek a sor értékét lekérdezve tudsz értéket adni az A3-nak:
Sub Minta()
Dim eredm As Variant
Range("A3") = Keres_Func
End Sub
Public Function Keres_Func() As Variant
Dim ws As Worksheet
Dim r As Range
Dim keres As String, talalat As Range
Set ws = Workbooks("Fkeres_tobb_feltetellel.xlsm").Worksheets("Proba2")
keres = ws.Range("A12") & ws.Range("B12")
Set talalat = ws.Columns("N:N").Find(what:=keres, LookIn:=xlValues, lookat:=xlWhole, searchorder:=xlByColumns, MatchCase:=True)
If talalat Is Nothing Then ' Ha nincs meg, bár ez elég valószínűtlen
Keres_Func = "Nem találom"
Else
Keres_Func = ws.Cells(talalat.Row, "L")
End If
'Set r = WorksheetFunction.Choose(Array(1, 2), ws.Range("K2:K32") & ws.Range("L2:L32"), ws.Range("M2:M32"))
A teszt kedvéért átjavítottam a tartományokat egyedi cellákra: Choose(2, ws.Range("K2") & ws.Range("L2"), ws.Range("M2")), 2, 0), akkor nem állt le hibaüzenettel a program, de még így is hibás, mert a Keres_Func értéke Error2042 lesz: Variant/Error. (Ezt a Locals ablakban láthatod). Majd az A3-ban pedig #HIÁNYZIK üzenet jelenik meg. Ennek az okát nem tudom.
Legyen üres az a cella, amiben még nincs adat - képlet se legyen benne! Ezután az adatforrás kiválasztása párbeszéd panelen rákattintasz a rejtett és üres cellák gombra, majd bejelölöd az adatpontok összekötése vonallal opciót.
Amikor adat kerül - akár képlettel - a még üres cellába, ez az opció nem hat már tovább.
Üdv, segítség kéne. Van egy vonaldiagramom, ami éves adatokat jelenít meg. Az a gond, hogy ahol még nulla van (értsd: a jövőbeni adatok helye, pl. most a június), ott a mostani tudásommal két rossz közül választhatok:
1: a cellákban elrejthetem a nullákat (Beállítások -> Speciális...), de a vonaldiagram beleáll a földbe, ami nem néz ki jól;
2: a cellákban a nullák helyén =HIÁNYZIK()-ot jelenítek meg, amit elrejthetek (Feltételes formázás), és a vonal nem áll a földbe, hanem megszakad (ez a cél), de a cella értéke a többi munkalapra is átmegy, mindenhol hibával, amit q kényelmetlen lekezelni.
Az Excel-ben található hiperhivatkozások működése és a kattintási viselkedés beállítása több tényezőtől függ, beleértve a felhasználói beállításokat és a program verzióját is. Az alábbi lépések segíthetnek a probléma megoldásában:
1. Frissítések Telepítése
Győződjön meg róla, hogy minden felhasználó a legújabb Office frissítéseket telepítette. Ez sok esetben megoldhatja a problémákat.
2. Alapértelmezett Böngésző Beállítása
Győződjön meg róla, hogy minden felhasználónál ugyanaz a böngésző van beállítva alapértelmezettként. Az Excel hiperhivatkozások megnyitásához általában az alapértelmezett böngészőt használja.
3. Excel Beállítások Ellenőrzése
Ellenőrizze az Excel beállításait minden felhasználónál:
Nyissa meg az Excel-t.
Kattintson a Fájl menüre.
Válassza a Beállítások lehetőséget.
Menjen a Speciális fülre.
Görgessen le a Szerkesztési beállítások szakaszhoz.
Győződjön meg róla, hogy a "Hiperhivatkozások kattintásra aktiválása" beállítás be van kapcsolva.
4. Böngésző Biztonsági Beállítások
Néha a böngésző biztonsági beállításai megakadályozhatják a hiperhivatkozások közvetlen megnyitását. Ellenőrizze és szükség esetén állítsa vissza a böngésző biztonsági beállításait.
5. SharePoint Beállítások
Ha a fájl egy SharePoint alkalmazásban van tárolva, győződjön meg róla, hogy a SharePoint beállításai egységesek minden felhasználó számára. Az engedélyek és a hozzáférési beállítások eltérései is okozhatják a problémát.
6. Makró Biztonsági Beállítások
Néha a makró biztonsági beállítások is befolyásolhatják a hiperhivatkozások működését. Győződjön meg róla, hogy minden felhasználónál a makró biztonsági szint megfelelően van beállítva.
Összefoglalás
A probléma megoldása érdekében ellenőrizze a következőket:
Office frissítések telepítése.
Alapértelmezett böngésző beállítása.
Excel beállítások ellenőrzése (különösen a "Hiperhivatkozások kattintásra aktiválása" opció).
Böngésző biztonsági beállításai.
SharePoint beállításai.
Makró biztonsági beállításai.
Ezek a lépések segíthetnek abban, hogy a hiperhivatkozások minden felhasználó számára megfelelően működjenek.
=HIPERHIVATKOZÁS(ÖSSZEFŰZ(G$1;B303);B303) adott ez a hivatkozás amely megfelelően működik . A file egy sharepoint alkalmazásban felhőben van elhelyezve. Több felhasználó is használja. Vannao olyan felhasználók akinél a hivatkozás a bal egérgombbal való kattintással megnyílik. Ez a jó. Vannak olyan felhasználók akiknél a hivatkozást csak két billentyű lenyomásával tudja elindítani. Mit kell beállítani, hogy a hivatkozás a bal egérmutató kattintásával elinduljon?
A hónap, nap szétválasztásához, pedig a BAL, JOBB, KÖZÉP függvények használhatóak a DÁTUM függvény belsejében.
Ez csak 1 lehetőség a sokból.
Ha nem dátum formátumúak az ilyen dátumot tartalmazó cellák, akkor lehet, hogy érdemes megpróbálni a szövegformátumot dátumra állítani, hátha dátummá alakul és onnantól a dátumfüggvények működnek rajta.
De ez még kevés lesz, végig kell az átalakított szövegformátumú cellákon "gyalogolni" egy F2, ENTER művelettel. Ha nagy tömegvben an van oszlopban , akkor ezt megteszi helyetted a szövegből oszlopok opció.
"az egyes értékek végén van még egy plusz vessző. (Valamint egy szóköz.) ". Próbáld meg, akár jegyzettömbbel, akár Excellel megnyitni - utóbbinál egyelőre nem kérni a szövegből oszlopok transzformációt -, majd a cserénél a Vesző + szóközt valami másra (például pontosvessző) cserélni. ezzel megmaradnak tizedsvesszők, de a határolójel a pontosvessző lesz. Ezzel már fog működni a transzformáció.
A problémám az alábbi. Egy térinfós szoftver .csv-ben dobja ki az eredménytáblát, amellyel tovább kellene dolgoznom.
A több oszlopban lévő numerikus értékek tizedesjegy elválasztója vessző, emellett az egyes értékek végén van még egy plusz vessző. (Valamint egy szóköz.)
Próbáltam az Adatok/Szövegből oszlopok-kal (szóközt beállítva. mint határoló jelet), ami szépen külön oszlopokba rendezi az értékeket, ugyanakkor a gond továbbra is az egyes értékek végén található vessző. Ez nyilvánvalóan nem szükséges.
Hogyan lehetne eltávolítani az értékek utáni vesszőt? Köszönöm a segítségeteket!
Attól függ, milyen címzéssel használod a képletet, de a lehúzásnál is ugyanaz a helyzet. Ha abszolút ($-os) címzést használsz sorra és oszlopra is, akkor igen.
Ha lehúzással jó volt a képlet, akkor a másolással is jónak kell lennie.
tehát a képletem mondjuk B7 ,és az alatta lévő helyen már B8 kell hogy legyen,majd B9 és így tovább. Ha lehúzom váltja a képletet is ugye,de a formátumot. én úgy szeretném hogy a formátum is megmaradjon minden helyen ahogy volt,és a képlet is változzon úgy mint lehúzásnál és ne keljen egyenként bemásolnom 800 helyre. Ezt így nem lehet megoldani sehogy sem?
Szia! Lehúzással megy a formázás is. Helyette: kijelölöd a másoladó képletet tartalmazó cellát, majd Ctrl +C (vagy jobb egérgomb másolás),
utána kijelölöd azt a tartományt, ahová a képletet szeretnéd másolni. Ezen állva jobb egérgomb - irányított beillesztés - képletet. Ezután ESC és megszűnik a kijelölés.
Ha egymás mellett vannak a képletet tartalmazó cellák, akkor együtt is megy a fentiek szerint.
Egy olyan problémába ütköztem,hogy van nekem egy majdnem teljesen készen lévő táblám.
A cellák formázása kész teljesen (cella kitöltő szín,betűszín,betűtípús,betűméret), a rácsok készen vannak az egész táblához.
Egyetlen egy dolog hiányzik a táblából,4darab képlet, amit 1-1x kéne beírnom a sor legtettejére és lehúznom a végtelenségig.
És itt jön a problémás rész,a képlet lehúzásával az összes cellában változik a formátum olyanra mint amelyik cellából lehúztam,ezeket visszaállítani órákig tartana.
Tudok valahogyan "Fill handle"-t (lehúzásos módszert) használni úgy hogy semmi mást ne alkalmazon a többi cellára csak a képletet és a formátumot és mindenmást hagyjon figyelmen kívül?
Jelenleg ezt google drive táblában csinálom,nem excelben.
Feltételes formázás - új szabály - a formázandó cellák kijelölése képlettel - a képletbe pedig beírod a megfelelő relációt.
De a dátummal-idővel kicsit kacifántosabb a dolog.
FONTOS! Mindegy, hogy milyen formátumban látod a cellában az időt, mivel az Excel számként kezeli a dátumot és az időt a következőképpen:
Az egész rész az 1900 jan. 0! óta eltelt napok számát jelenti (tehát 1 = 1900.01.01!), a törtrész jelenti a napon belüli időt, pl. 0,5 =12:00:00.
Vagyis ha egy napon belüli időt írsz be, azt törtként fogja értelmezni az Excel. Ha arra vagy kíváncsi, hogy ez a mostani időhöz hogyan viszonyul, akkor a MOST() - MA() értéket kell hasonlítanod az adott időhöz. Ha időt közvetlenül szeretnél képletbe bevinni, akkor az IDŐ vagy az IDŐÉRTÉK függvényeket kell használnod.
MÁS A HELYZET, ha szövegként vannak a cellában az értékek, ebben az esetben a hasonlítást is szövegként (vagy idővé-azaz számmá - alakítás után) tudod megtenni, de a szövegek hasonlítása más eredménnyel járhat, mint a számok összehasonlítása!!!
Azt pedig, hogy az adott cellában szöveg vagy "szövegnek látszó" szám van, a cella formátum megváltoztatásával tudod tesztelni. Ha számformátumra állítod a cellát és marad a benne levő érték változatlan, akkor szövegként van tárolva az érték és csak látszik pl. időnek. Ellenkező esetben számmá - tizedes törtté kell változnia a megjelenésnek.
Létezik olyan, hogy a 00:00:00 formátumban elmentett időt hasonlítom össze egy másikkal és azt feltételes formázásba teszem? Pl ha később van a formázottban, az legyen pirossal kiemelve.
Kis érdekességként még elmondom, hogy a program nem csak szótanuláshoz, de bármilyen memorizálandó anyaghoz is használható.
Így, mikor kis unokám az iskolában a szorzótáblát tanulta, feltöltöttem egyet szorzó és osztótáblával 100-ig, sőt, előtte már az összeadás-kivonásokat is 100-ig, neki is sokat segített, hiszen a géphez szívesebben ült oda, minthogy a szülők lekérdezéskor állandóan leszúrják, ha valamit elrontott, és semmi idő alatt kiszűrtük, melyek a kritikus műveletek, amiket gyakrabban kell ismételni. Utána már jöhettek a szülők... :-)
Örülök, mert ez azt jelenti, hogy működnie kell nálam is az Office 365-ön, ha megveszem.
Sajnos már nehéz rekonstruálni, mi is történt annak idején a nejem gépén, mert neki a gép felajánlott egy ingyenes Office 365-öt próbaidőszakra, és erre átküldve nem tudtuk a fájlt megnyitni.
Aztán sokáig nem foglalkoztam vele, használtam a saját gépemen, közben a nejemnek letelt a próbaidőszak, úgy hogy már nem tudom újra megnézni, hogy a próbaidőszakos Office valóban teljesen egyenértékű volt a hivatalossal, vagy valami butított változat volt.
De ha nálad működött az Office 365-ön, akkor itt is működnie kell...
Elnézést, valóban nem fésültem össze a kezelési utasítást az Excel fájllal.
Ugyanis a fájl az angol tanuláskor feltöltött szókészleteket tartalmazza, de aztán később ezt a lekérdező programot, illetve másolatait használtam a német, az orosz nyelvekhez is, és most a spanyol nyelv tanulásához is ezt használom.
Így a segédlap az angol szócsoportok címeit tartalmazza, míg a kezelési utasításban éppen a spanyol szócsoportokat tartalmazó másik fájl képei vannak megjelenítve, mert ezt már spanyolul tanuló ismerőseimnek készítettem.
Az angolul tanulóknak szánt anyaghoz ugyanez a kezelési utasítás van, ugyanolyan logikával működik.
Nálam a fájl megnyitásakor a lap felső részén megjelenő mezők: kezdőlap, beszúrás, lap elrendezése, képletek, adatok, korrektúra, nézet, és utolsó helyen megjelenik a bővítmények.
Ez utóbbi csak a makróval rendelkező fájloknál jelenik meg, nem tudom, nálad miért nem jelent meg.
Ahogyan Imrének írtam a 3833-ban, nálam Office365-ön működik. Tudom, ez téged nem vígasztal, csak annyit jelent, hogy kompatibilitási problémák nincsenek. Bár úgy tudom, a 2016 és 2019-es Excel néhány dologban hiányos, bizonyos függvényeket nem tartalmaz, ami korábban és később is megvan.
Nálad milyen hibák jelentkeznek a másik gépen, milyen Excel verziónál?
Szia, csak megnéztem, amit küldtél.De nem ugyanazt látom az Excel fájlban, mint amit a használati utasításban leírtál. Engem ez e kép fogad a segéd munkalapra kattintva:
Aztán a kiválasztott cím után a Ctrl + A-ra - első alkalommal egy lapvédelem feloldásra vonatkozó hibaüzenet után - valóban megjelenik a kért munkalap. De Bővítmények mezőt nem találok. Innentől kezdve az 5-7. pontok elérése szóba sem jön.
Ugyanez volt a gondod a Windows 10-es gépeden?
Mindenesetre holnap megnézem ugyanezeket az anyagokat egy Windows 7-es gépen, bár office 2007 azon sincs nekem. Igaz, végső soron rá tudom telepíteni. Hátha tényleg ezen múlik a helyes működés. Bár a leírásodban szereplő kép, és az elküldött Excel munkafüzet képe közti különbség gyanús, hogy nem ezen múlik.
Az Excel tábla a drájvról letöltve nekem nálam google táblázatban nyílik meg (a levélbő Excelben), ezért megnyitás után le kell tölteni onna, hogy Excelben lehessen nézni. És persze a makró miatt külön engedélyeni kell a használatot.
Sajnos ma már nincs időm alaposabban megnézni, majd csak holnap jutok hozzá-
Önmagában az Excellel nincs semmi gondom, sokat használtam a munkahelyemen számításokhoz, táblázatokhoz, diagramokhoz.
Inkább az operációs rendszeren történő különböző műveletekkel van gondom, és a Neten található szolgáltatásokat nemigen ismerem. ott csak annyi a tudományom, hogy a keresőprogramokat jól tudom kezelni...
A Data.hu normál használata ingyenes, csak regisztrálni kell. Feltöltés után megadja a letöltő linket , ezt kell lemásolni és bemásolni ide. Vírusvizsgálatot is végez, ezért egy kis időbe beletelik, mire letölthető a fájl.
Én ezt szoktam használni, ha nagynéha közzé kell tennem valamit.
Üdv.
Ps. Én is elég régi nyugdíjas vagyok, viszont C64-el kezdtem, aztán pedig néhány egyéb után jött az Excel. Nem ördöngősség, meg lehet ezt is tanulni. :)
Nem sértődtem meg, tisztában vagyok vele, hogy számítógépes dolgokban igen alulművelt, vagy inkább egyoldalú vagyok. :-)
Pedig annak idején tanultam is Algol programnyelvet, és a cégnél a Windows bejövetele előtt írtam is saját használatra programokat a belső rutinfeladatokra.
De aztán mindez okafogyottá vált az Excel bejövetelével.
A nagy robbanások az Internet használatban meg éppen azután jöttek, mikor már nyugdíjba mentem, itt elszakadt a fonál, hisz nem volt rá szükségem...
Az új gépedre mi gátol abban, hogy a 2007-es Office-t telepítsed? Nem kell venni semmit. Ha nem tudod a telepítési kódot, a ProduKey nevű programot felteszed a régi gépedre, és megmondja.
Már, ha a makróid a lényegek, és nem kell az újabb Office tudomisén milyen szolgáltatása.
Szia! Elvileg az office 2007-ben írt makrók tudnak futni az újabb verziókon. Ezért azt gondolom, valóban jó lenne, ha egyet-kettőt elérhetővé tennél akár csak úgy, hogy bemásolod ide a fórumra, még munkafüzet sem kell belőle egyenlőre. Kellene viszonta a konkrét Excel verzió, amit a VBA immediate ablakban úgy kapsz meg, ha beírod ezt ? Application.Version majd Enter.
A makrókat így is meg tudnánk vizsgálni.
De ha imre kérésnek megfelelően megosztasz egy fájlt, az is működhet természetesen.
Az a helyzet, hogy már nem is tudom pontosan regisztrálni az előéletet.
Ugyanis a nejem gépén vásárláskor rajta lévő office szerűség is jelezte egyszer, hogy lejárt, és felajánlotta az office 365 próbaidejű használatát, amit elfogadott. Így már nem is tudom megnézni, hogy milyen néven futott az első valami, mert le lett váltva.
Viszont ezek szerint a 365 sem tudta kezelni a fájljaimat. Gondolom, a próba használatra ugyanaz a verzió futott, mint a végleges fizetős.
De nem foglalkozom tovább vele, bízom benne, hogy az öreg gépemet életben tudom tartani, és használni, még ha veszünk is mellette egy korszerű laptopot, a nejem meg megveszi az office 365-öt, mert most nincs működő office-ja.
Tudom, most már meg kell szokni, hogy minden Windows alkalmazás szolgáltatás üzemmódban működik, és bizony évente pénzbe kerül, csak nekem szokatlan, mert annak idején, mikor a gépemet vettem, az eladó sima kérésre rátette az office 2007-et, gondolom kalóz módon, ki tudja hány kuncsaftnak, és ráadásul ez soha nem jár le, ősidők óta használom gond nélkül.
A régebbi verziók eleve nem lejárónak készültek, egyszeri beszerzés után életfogytig használhatók voltak?
"A múltkor kiderült, hogy a nejem gépén, amelyen 2010-es verzió van, nem is működnek ezek a fájlok."
Tudnál küldeni egy olyan fájlt, ami nem működik a nejed gépén, és nem tartalmaz bizalmas infrmormációkat? Mert akkor ki lehetne próbálni, hogy Windows 10/Office 2021.Office 2019, vagy office 2010 verziók alatt működik-e, esetleg Office 365 alatt, ami előfizetéses. (Javaslom, hogy ha van ilyen fájlod, akkor töltsd fel a Google drive-ra, vagy a Microsoft Onedrive-ra, és csak a linket küldd el. Olyan beállítással, hogy a "link birtokában bárki letölthesse ")
Mellesleg nem tartom valószínűnek, hogy a Windows 7/Windows 10 az oka annak, hogy nem működnek a makrók.
Nekem is az a gyanúm, amit írsz: "Állítólag a nejem gépén már nem is a hagyományos office van, hanem a géppel adtak egy helyettesítő valamit, ami nem azonos és egyenértékű a megvásárolható office verzióval, ezért nem is működnek rajta ezek a régi fájlok."
Jó lenne megtudni, mi ez: Free office, OpenOffice, LibreOffice, Google Sheets? Úgy tudom, hogy az utóbbinál a makrók nem mindig kompatibilisek, bár magam nem is próbálkoztam. De a többinél is adódhatnak problémák.
Ahhoz, hogy eldöntsd milyen office verziót veszel, jó lenne látni, mi várható. Egyébként nem igazán javasolnék a 2021-nél régebbi verziót. Apropó, a most működő gépeden milyen Office verzió van? 2003, 2010, vagy újabb?
Elnézést ha nagyon laikusak a kérdéseim, de igazi júzer vagyok, nem ismerem a mai Office állapotokat hozzáférhetőség és jogszerűség szempontjából.
Az én gépemen még Windows 2007 van, és van egy rakás excel fájlom, amire annak idején jó kis makrókkal profi lekérdező programok készültek még XP-n, amelyeket a mai napig használok nyelvtanuláshoz a 2007-en.
A múltkor kiderült, hogy a nejem gépén, amelyen 2010-es verzió van, nem is működnek ezek a fájlok.
Azóta úgy vigyázok öreg Windowsomra, mint a szemem fényére, óriási adatmennyiség van ezeken a fájljaimon, szükségem van rájuk, futtathatóságukra.
Állítólag a nejem gépén már nem is a hagyományos office van, hanem a géppel adtak egy helyettesítő valamit, ami nem azonos és egyenértékű a megvásárolható office verzióval, ezért nem is működnek rajta ezek a régi fájlok.
Szerintetek ha megveszem az új gépre az office-t, az fogja tudni kezelni a régebbi makrós fájlokat?
Megköszönném, ha valaki kicsit körbefutná a témát, hogy állnak most ezek a dolgok, mert mióta nyugdíjas vagyok kissé lemaradtam az infókkal, amit annak idején kollégáktól meg tudtam szerezni...
Rájuk néztem, de nem mélyedtem el bennük. Így elsőre nem látom azt, amit egyáltalán alapvetően szerettél volna megoldani, az egyes levelekhez más és más csatolmány hozzáfűzését. Ezt tudja a kettő közül valamelyik?
Egyébként látatlanban feltételezem, hogy valószínűleg egyszerűbben kezelhetők, mint a Word körlevél kezelő.
Szia, én azt hittem, hogy a megoldásod megvan valahol a fórumon. De ha nincs, akkor sokat segítenél a kérdezőnek, ha egy mintaoldallal együtt közzétennéd.
Próbáltam ezt is =KICSI(HA(A1:A10<>0;A1:A10);1) Ez meg csak akkor működik, ha bármilyen 0-nál nagyobb érték már van valamelyik cellában. Ha csak 0-k, akkor ÉRTÉK hibát ír ki.
A képen látható, hogy ha a bal oldalon "0" érték van akkor a jobb oldali körnél üres cella jelenik meg. Azt szereném, hogy a "m3" előtt addig míg nem írok a bal oldalra minden cellába értéket addig a következő jelenjen meg: "0m3" = nulla köbméter/KWh.
Azért várj még egy kicsit, hátha m54-b idetéved. Szerintem ő meg tudja oldani. Csak mostanában ritkábban néz ide. De azért vasárnap írt egy másik topikba. Sajnos nem nyilvános az email címe.
Hát, erre nincs sajnos beépített funkció. Még PowerAutomate-el szoktunk hasonló munkát munkát végeztetni, de itt is elérési úttal kap csatolmányt az e-mail. (mivel mással...) Ez ingyenesen windowsba épített eszköz, korlátozásokkal. (A fizetős korlátlan)
Köszi, de ha ez makrós ügy és többszörösen is, abban teljesen inkompetens vagyok. Ráadásul nem lehet hogy ellenőrizni és ha tényleg kimegy tucat email rossz helyre az nagyon gáz volna. Inkább nem kísérleteznék vele. De köszönöm a válaszokat! 👍
Ezt VBA-val úgy készítettem el, hogy egy táblázaton végigmegy egy ciklus és a táblázatban szerepel a csatolmány elérési útja is. (és minden egyéb ami kell a levélküldéshez a VBA számára - mint levéltörzs, tárgy, cc, stb...)
Csak még egy kérdés a körlevélhez... Lehet hogy inkább Outlook funkcióra vonatkozik, de egy olyan kérdés merült fel, hogy ha van excelben egy email címlista és mellette még egyedi doksi mellékletek, lehetne-e csoportosan emailt küldeni ez alapján úgy, hogy adott címzettnek szólóan a rá vonatkozó egyéni doksi melléklettel automatikusan küldözgesse ki a rendszer az excel lista alapján amit kell? Magyarul, ne kelljen a titkárnőnek 150 emailt külön megszerkeszteni és egyenként elküldözgetni.
Köszönöm a segítséget! Bár kicsit szégyellem magam, hogy 25 év alatt erre nem jöttem rá. Volt már máskor is problémám ebből, akkor is a csillag karakter kavarta fel az életem. Nem gondoltam volna, hogy a keresésnél mint helyettesítő karakter éli az életét, nem pedig mint csillag. Nagyon hasznos volt a tájékoztatód!
A 4. paraméter szabályozza, hogy pontos egyezőséget keresünk vagy "közelítőt".
A 0 vagy HAMIS pontos egyezőséget keres, az 1 vagy IGAZ közelítőt. Mit jelent a közelítő érték:
Ahhoz, hogy a közelítő keresés (avagy tartományban keresés) működjön, a keresőtábla keresési oszlopának emelkedő sorrendben kell lennie, pontos egyezés keresése esetén ez nem szükséges. Közelítő egyezés keresése esetén azt az értéket kapjuk vissza, amely még nem nagyobb a keresési táblában szereplő értéknél. Ezt ellenőrizhetjük úgy, hogy a harmadik paramétert 1-re -azaz magára a keresési oszlopra állítjuk.
Pl. van egy ilyen táblánk:
Az FKERES(56;B2:C7;2;1) képlet eredménye 3, mivel 56 nem nagyobb 75-nél, vagyis az 55 és 75 közötti tartományba esik, ezért az 55-höz tartozó értéket kapjuk vissza a C oszlopból. A B oszlopban az adott érdemjegyhez tartozó alsó pontérték határát kell megadni.
Ez így kiválóan működik, ha számokat kell keresnünk.
Esetedben viszont a keresést szövegben kell végrehajtani. Itt már előjönnek a szöveges keresés speciális szabályai:
1. A legfontosabb a csillag (*) ugynevezett helyettesítő/joker karakter. Mit jelent ez? A csillag helyettesíthet akárhány és akármilyen karaktert!!!
Pl. a.) *ház keresés a ház-ra végződő szavakat találja meg, legyen az áruház vagy nyilvánosház vagy beruház!
b.) ház* keresés a ház-zal kezdődő szavakat találja meg, pl. házfal, háztető, házaló!
c.) *ház* minden szót megtalál, ami tartalmazza a ház betűcsoportot, pl. beruházás, áruházi, átruházás!
Az FKERES pedig mindig a legelső találatot adja vissza.
Esetedben tehát a legelső olyan találatot, amely a szövegedben az első * előtti szöveggel kezdődik. Ez a "furcsa" viselkedés magyarázatának egyik része. TEHÁT A * helyett használj más karaktert (pl. x ) a méretek jelzésénél.
2. A probléma másik része a szövegek sorbarendezésének szabályából adódik. Amint a 4. paraméternél láttuk, a közelítő egyezéshez sorba kell rendezni a keresési táblát.
Mivel a méret tábla is szöveg, a benne levő számok szövegesnek minősülnek, ráadásul a rövidebb szöveg van előrébb:
Eredeti Sorba rendezett (már X-t használva)
Pontos egyezésnél egyértelmű amit keresünk -> vagy van, vagy nincs.
Közelítő egyezésnél viszont amint látod, pl a Durvalemez|1250X2500X11 méretnél a Durvalemez|1250X2500X10-et fogja megtalálni és az ahhoz kapcsolódó értéket adja vissza.
Ha a fentieket figyelembe veszed, akkor nem lesz "furcsa" a függvény viselkedése. Így alkották meg, alkalmazkodni kell hozzá a használat során. (fene essen a redmondi logikába....)
FKERES függvény szintaktikába bonyolódtam bele egy kicsit. Ugyanis, ha pontos egyezést szeretnék, akkor HAMIS értéket kell adjak „Tartományi keresés” értékének. De van olyan eset a példában, mikor ez nem működik:
1 példasor: HAMIS érték esetén jó eredményt kapunk (így kellene működni)
2 példasor: IGAZ érték esetén hibás eredményt kapunk (így kellene működni)
3 példasor: HAMIS érték esetén hibás eredményt kapunk (nem így kellene működni)
4,5,6 példasor: IGAZ és HAMIS érték esetén is jó eredményt kapunk (nem így kellene működni?)
Van valakinek ötlete, hogy ez miét van így?
Azt szeretném, hogy HAMIS esetén mindig a helyes eredményt adja, tehát ha van adat, akkor azt, ha nincs akkor a #HIÁNYZIK hibaüzenetet.
A feltételes formázás képlete, ha a C1 cellában van a beszínezendő cellák száma:
=OSZLOP()<=(OSZLOP($C1)+$C1)
Ezután kijelölöd a tartományt - addig az oszlopig ameddig szeretnéd a színezést.
A tartomány sorait húzhatod lefelé! Minden sorban annyi cellát fog beszínezni a 4. oszloptól kezdve, amennyi értéket a C oszlop adott sori cellájába írtál. - ha a C5 érteke 2 akkor D:E, ha 5 akkor D:E:F:G:H oszlopok 5. sora színeződik.
A képlet mindig a megadott cella sorában érvényesül.
Van olyan feltételes formázási trükk, amivel adott számú cellát tudok kijelölni (kiszínezni) egy sorban egy másik cella értéke alapján? Értsd, ha a C4 cellában 8 szerepel, akkor a D-E-F-G-H-H-I-J-K oszlopok 4. sorában található cellákat színezze, mondjuk, szürkére, ha C5 cellában pedig 4 szerepel, akkor a D-E-F-G oszlopok 4. sorában található cellákat színezze.
Off: Nem érthetően írtam sajnos. A C12-C15 cellákba a minden hétfőn leolvasott értéket kell beírni. Az I12-I15 cellákban kiszámítja az aktuális leolvasás és az előző hétfői állapot különbségét. (heti fogyás)
Az N oszlopban a havi minimum, maximum; és átlag számítás van.
Miért nem úgy számolod ki N15-öt,hogy =HA(SZUM(I12:I15)=0;0;ÁTLAGHA(I12:I15; "<>0")) (Persze a Szum függvénybe írhatod a C12:C15-öt is.)
Off: Az első sorban írtakat egyébként nem értem. "C12:C15 cellákba heti (minden hétfőn leolvasott) fogyasztási adatokat írok. I12:I15 cellákban a heti fogyasztási összesítést számol ki." Hogy csinálsz 4 cellából másik 4 cellába fogyasztási összesítést? Persze a dolog érdeme szempontjából ezt nem szükséges tudnom.
Olyan excelt tábláról hallottatok már, amiben a ki törlünk egy cella tartalmat utána automatikusan vissza íródik? Milyen trükk lehet ez? Egyszerűen így javítani sem lehet benne.
Ha már módosítani akarsz, elsőként a felépítést érdemes megfordítani.
Napból sok lesz, míg az egyes értékekből naponta egyforma mennyiség (fogyasztott és betáplált óra állás, a kettő különbségei, és az elszámolás).
Az első oszlopban legyen a dátum, mellette az 5 adat, amikből hármat képlet számít ki.
Sokkal könnyebb lefelé gördíteni, mint oldalra.
Ebben az esetben az utolsó rögzített adatnál mented a füzetedet, másnap nem kell keresgélni az új sort. A címsort rögzítheted, hogy az mindig látható legyen.
Én úgy látom, hogy a Dátumos oszlopokhoz is két adatot kellene a 3-4. sorba beírnod. Ha megfordítjuk a dolgot - mert a tárgynapot szeretnéd külön látni - akkor a B15 cellába bekerülhet a mai dátum a ma() függvénnyel.
A B17-18 cellákba pedig a Hkeres függvénnyel megkeresed a 3-4. sorba beírd adatokat.
Így minden nap frissül a B17-18 amikor beírod a napi adatokat.
Igazából csak lustaság miatt gondoltam. így ahogy megcsináltam működik tökéletesen de a lustaság nagy úr. Így csak egy helyre kellene írni az adatokat.
Van egy sor adatom ahol az értékek mellé manuálisan mellé van írva hogy "M"
nagyjából így néz ki:
A1=12M
A2=7,5M
A3=4,3M
és így tovább.
nekem ezeket a számokat összekéne adnom,viszont az "M" betű miatt ezt nem tudom SUM függvénnyel összeadni,és túl nagy a mennyiség ahhoz hogy az "M" betűket egyenként elkezdjem kitörölni.
=LEFT(A1;FIND("M";A1)-1)
ezzel a képlettel viszont eltudom tüntetni egy új sorban az M betűket az összesből,viszont a sum ezeket sem tudja összeadni,végeredménynek 0át ír.
Megpróbáltam így is: =Value(LEFT(A1;FIND("M";A1)-1)) , erre viszont azt írja hogy "A 12 nem értelmezhető számként"
így teljesen tanácstalan vagyok. Valaki tud megoldást a problémámra?
Mi oka van annak, hogy nem direktben a dátum alá írod be az adatokat?
Amit szeretnél az makróval oldható meg vagy Vkeres (esetleg Index - Hol.Van) függvényekkel és utána érték másolással, hogy ne változzon a napok változásával az érték.
A napelem termelésemet szeretném rögzíteni naponta de úgy, hogy csak egy cellába kelljen beírni az értéket és töltse ki egymás mellé dátum szerint az oszlopokba. megoldható ez? Csináltam egy screen shotot, hogy jobban érthető legyen.
Amennyiben csak a számformátum van pénznemre állítva, akkor sajnos nem műxik a képletes számolás. Ebben az esetben kell hozzá egy segédoszlop, amiben a pénznemek kiírva szerepelnek! Ehhez az oszlophoz kell beállítani a feltételt.
Üdv.
Ps. Nem is értem, hogy egy oszlopban miért állítgatjátok a pénznemek formátumát. Sokkal egyszerűbb és használhatóbb ha külön oszlopban van a pénznem.
A képletben figyelj rá, hogy az alap tartományt rögzítsd dollár jelekkel, a keresendő értéket nem, így a képletet húzhatod lefelé és oldalra is.
Az =1 azt jelenti, hogy akkor színezi a cellát, ha pontosan 1 alkalommal fordul elő a másik tartományban. Ha mindegy hányszor fordul elő, akkor >0 legyen a feltételben.
Feltételes formázást megtudok valósítani valósidőben? Konkrétan azt szeretném,hogy van 2 adathalmazom,a 2 halmazban vannak 100%osan megegyező adatok.
egy egyszerű példával szemléltetném mire gondolok
Munkalap1 adatai: A1: Alma A2: Körte A3: Citrom
Munkalap2 adatai: A1: Narancs A2: Alma
A3: Barack
Munkalap2ben,szeretném ha azok a cellák amiben az adat megegyezik a munkalap1 adataival azok kapnának egy színt amit előre beállítok. A példa alapján az A2es cella kapna egy színezést.
Igazad van, de én most egy programtáblázatot csinálok időpontokkal, eseményekkel és belépő árakkal. Sajnos úgy nem tudom összerakni, hogy az pénzösszegek egyszerűen csoportosíthatók legyenek.
Egy normálisan megtervezett táblázatban egy-egy oszlopon belül azonos típusú adatok vannak – az oszlopon belül nem keverednek az idők és a szövegek. Ebben az esetben sima SZUM függvénnyel összegezhetők az értékek.
A letöltéshez egy technikai javaslat. A Microsoft kicsit túlbiztosítja a letöltött fájlok kezelését. Ezért ahhoz, hogy használni tudd a letöltött fájlt, először az egérrel fölé kell állnod, és a jobb gombot megnyomva kapsz egy listát, ahol a lista alján a Tiltás feloldásához pipát kell tenned a jelzett helyre. Aztán ha majd megnyitod a fájlt, akkor még a makrók használatát is engedélyezni kell. Enélkül nem működne a program.
A mintában az a 10 sor és 16 oszlop szerepel, amit küldtél. De a program ezt rugalmasan kezeli. Tehát egyszerűen másod felül a saját adataiddal a mintát.
A használat a következő: Az utolső használt oszlop utáni üres oszlopban írj x-eket azon sorok mőgé, amiknek az adatait összegezni szeretnéd.
Ha megvan, akkor Alt + F8-ra elindul a program, és az utolsó használt sorod után 2 sorral kiírja a kiválasztott soraid összegeit. A kihagyott üres sorba ne írj semmit. Az üres sor azért kell, hogy a program tudja, meddig tartanak az adataid.
Ha kész vagy, és új összegzést akarsz indítani, akkor az x-eket tartalmazó oszlopban jelöld be az új válogatást. Legegyszerűbb, ha előbb törlöd a teljes oszlopot, aztán ikszelsz, hogy ne legyen tévedés.
Az alsó összegsort nem muszáj törölnöd, a proram mindíg ezek törlésével indít.
"de #NÉV? ezt irta ki nem tudom hol rontottam el."
Feltételezhetően ott, hogy nem magyar nyelvű az Exceled. Ha angol nyelvű akkor az angol függvény neveket kell használni. HA = IF, OSZLOP = Column,továbbá lehet, hogy a paraméter elválasztód sem pontosvessző hanem sima vessző.
3.) Ez a képlet húzható oldalra és lefelé a Munka2 munkalap A1:P10 tartományában. Ezzel elértük, hogy az egyesek helyett az oszlopoknak megfelelő - különböző értékek legyen a Munka1 munkalapon 1-et tartalmazó cellák "tükörképén". Ezeket így már könnyedén meg tudjuk számolni!
4.) Mivel 16 oszlopunk van, ezért a Munka2 munkalap R1 cellájától lefelé kitöltjük 1-16-ig a cellákat.
5.) Válasszuk ki az első három sort "gondolatban". Ebben az esetben a S1 cella képlete:
=DARABHA($A$1:$P$3;$R1)
Ezt a képletet húzzuk le az R oszlopban, amíg vannak adatok. Az oszlop megmutatja, hogy az egyes oszlopokból hány egymás alatti előfordulás van a sorokban. Most a példában 0-3 közötti számokat fogunk kapni.
6.) Már "csak" rendezni kell az értékeket a jobb áttekintés érdekében. Ezért az U1 cellától 0-3 értékeket írjuk be az U oszlopba.
7.) A V1 cella képlete =DARABHA($S$1:$S$16;$U1), amit lehúzva a V oszlopban megkapjuk, hány egymás alatti 1-es van a Munka1 munkalapon.
Megjegyzések:
8.) Természetesen nem csak összefüggő 3 (és nem csak 3 ) sort választhatunk ki, akkor az S oszlop képlete a következőképpen változik: =DARABHA($A$1:$P$1;$R1)+DARABHA($A$3:$P$3;$R1)+DARABHA($A$5:$P$5;$R1)
Ahány sort kiválasztasz, annyiszor kell a DARABHA függvény eredményét összeadni. Ez a képlet is húzható lefelé.
9.) Ha több oszlopunk van, akkor természetesen a Munka1 R oszlopát a tényleges oszlopoknak megfelelően kell kitölteni.
10.) Ha több sort választunk és nem hármat, akkor az S oszlopban levő legnagyobb értékig kell kibővíteni az U oszlop számait.
11.) Mivel képletekkel dolgozunk, a Munka1 munkalap bármely változása - 1-esek áthelyezése - látszani fog a Munka2 munkalap V oszlopában.
Hát egy bonyolult makróval talán megoldható. Te rákattintgatsz a kijelölni kívánt sorok első cellájára. Ekkor a makró feljegyzi valahova (egy segédoszlopba) a kattintásaidhoz tartozó sorok sorszámát, majd mondjuk az Enter megnyomása jelzi a programnak, hogy vége a kiválogatásnak. És ekkor végigmegy a feljegyzett sorszámkon, és összeszámolja oszloponként az 1-esek számát. És ezt valahova felrja neked. Ezekhez persze tudni kell, hogy vannak szabad sorok és szabad oszlopok.
A sorszám volt a kérdés. A dátumot (amit ilyen alakban vesz át nn/hh/éééé), át tudtam leírás alapján a lent mutatott mergefield (alt+F9) módszerrel formázni, azt csak példának hoztam fel, hogy nincs-e olyan módszer a sorszámokra is. De valószínű azzal működik amit írtál, hogy mezőnevek után bármi beírható. Vmit elgépelhettünk a kolleganővel, csak nem vettük észre…
Sziasztok még egy kis segitség kellene.Van egy táblázatom sok oszlop és sok sorbol áll most csak A-P oszlop és 1-10 sort
irtam be.A táblázatban csak 1-es és nulla szám szerepel.Arra kellene nekem egy megoldás,hogy a kijelölt sorokban hányszor fordul elő egymás alatt lévő számok.
Példa: az 1-2-3.sorban hányszor forul elő hogy minden oszlopban 3db 1-es vagy 2db 1-es vagy 1 db 1-es vagy 0 db 1-es van.
Nem csak az 1-2-3 sorban akarom az eredményeket hanem többen is példa 2-4-6 vagy 3-9-10 és igy tovább.
Vajon ez kivitelezhető-e excelben? Reméllem érthetően irtam le.
Még annyit,hogy akár 5-6 sort is tudjak egyszerre megvizsgálni.
Tehát jól sejtettem, hogy nem a számok után írt pontokkal volt a gondod, hanem a dátum formázással. Ez egy nagyon kellemetlen jelenség a Word körlevelet kezelő én.
Gondolom, a mergefield nélkül az amerikai dátumformát erőltette, bármi mást akartál.
A hibákról nem tudok sajnos mit mutatni, mert a titkárnővel az ő gépén szórakoztunk. Talán majd lesz rá alkalom még megnézni, de a napokban most biztos nem.
Sziasztok. Azt meg tudom valósítani excelben,hogy 2 cella tartalmát 1 cellában összevonjam?
Arra gondolok,pl az A1es cellában ez áll: Tóth , a B1es cellában pedig az hogy: László összetudom vonni valamilyen módon ,hogy a c1es cellában pedig Tóth Lászlót írjon,szóközzel a 2 cella tartalma között?
Amihez ezt használnám,az nem nevekből áll,és nem is feltétlen egymás mellett lesznek azok a cellák amik tartalmát összeszeretném vonni.
Ott valami más lehetett a hiba. A körlevélkezelőben a Word minden szöveget békénhagy, ami nem mezőkód. Meg tudnád mutatni a hibaüzenetet? Esetleg a körlevél hibát okozó részletét? Persze fiktív adatokkal.
Semmi mergefield, símán beírod a pontot a mezőkód után a szövegbe. Nálam ez így szokott kinézni mezőkódokkal: «Vezetéknév»«Utónév»«Évfolyam».«Osztály» osztályos tanuló, ami a kész levélben íg jelenik meg: Gipsz Jakab11.D osztályos tanuló
Körlevélhez az adatforrás excel táblájában található egy sorszám oszlop. A mezőit úgy formáztam egyedileg, hogy legyen a számjegyek után pont a magyar nyelv szabályának megfelelően.
Namost a Wordnek körlevél készítésénél, a neten olvasom, hogy csak natív formátumú adatokat ad át az Excel, ami elhagy minden cellaformázást.
Hogyan lehetne a körlevél dokumentumokba belevarázsolni mégis a pontot a számjegyek után? Nézegettem ezeket a mergefield mezőkódokat, de nem sok sikerrel. (Egyedül a dátum formátumra működött, mert oda konkrét példát is találtam…)
AZ Application.Calculation hívást korábban nem használtam, ezért nem tudtam, mi az optimális parancs. Az xlCalculationAutomatic valahogy mégiscsak működött, mert megoldotta a problémát, de azért át fogom írni az általad javasolt Application.Calculate parancsra. Az eddigiekből következik, hogy az xlCalculationManual paranccsal sem találkoztam még a korábbiakban. Nem volt szükségem képletek aktualizálására. A program, amin most dolgozom az első, ahol előbb hozom létre a képleteket, mielőtt a forrás munkalap megfelelő cellái feltöltődnek a képletek által használandó adatokkal. (És a sorrend nem is változtatható. Én elkészítem a "vázat", aztán két módon kerülnek adatok a forrás munkalapra. Először én olvastatom be programmal egy később megkapott külső fájlból az addigra rendelkezésre álló adatokat, majd mások, más helyen utólag írják be a további adatokat)
A beolvasás módja: Az általam használt beolvasó program megnyitja a beolvasandó adatokat tartalmazó külső munkafüzetet, és az ezen lévő egyetlen munkalap sorain végigmenve először beolvas egy azonosítókódot, amit megkeres az én rendszeremben forrásnak nevezett munkalapon (ezt szükségszerűen megtalálja, mert azonosak a szereplők, és a kód köti össze őket), majd a megfelelő oszlopok adatait egyenként bemásolja a helyükre. Ha jól sejtem, ezt nevezed direkt elérésnek.
Miután a program végez az adatok átmásolásával, akkor indítom el a sorrendbe rakást a képletekkel előkészített saját munkafüzetem munkalapjain. Kivéve természetesen a forrásnak nevezett munkalapomat. És itt jelentkezett a probléma, amiért először segítséget kértem. Ekkor derült ki, hogy bár az adatok a forrás munkalapon a helyükön voltak, a képletek még nem aktualizálódtak, ezért az elsőként rendezendő munkalapon nem történt meg a rendezés. Nem volt mit rendezni, mert az összes képlet adata még 0 volt.
Ekkor alkalmaztam a sorrendező ciklus elé beírva az Application.Calculation = xlCalculationAutomatic parancsot, ami azonnal érvényesítette a képleteket. Ennek ellenére át fogok térni javaslatodra az Application.Calculate parancs alkalmazására - Amit még egyszer köszönök -, lévén semmilyen tapasztalatom nincs ezzel a témakörrel kapcsolatban.
Jó hogy megtaláltad a hiba okát. Azonban egy apróságot megjegyeznék:
az Application.Calculation = xlCalculationAutomatic azt határozza meg, hogy a számítások milyen módon hajtódjanak végre. A parancs kiadása önmagában nem jelenti feltétlenül a számítások azonnali végrehajtását, az a legközelebbi képletváltozáskor lép életbe.
Azonnali újraszámolást az Application.Calculate utasítás eredményez.
Egyébként kérdés még az, hogy bárhol a programban használtad-e a Application.Calculation = xlCalculationManual utasítást, mert akkor csak kérésre számolódnak újra a képletek. (a futási idő csökkentésére szokásos a használata)
"Először beolvasok adatokat egy külső munkafüzetből"
A kérdés az, hogy milyen módon olvasod be? Lekérdezéssel vagy direkt eléréssel? Gondolom lekérdezéssel, akkor pedig figyelni kell arra, hogy a lekérdezés (querytable) BackgroundQuery tulajdonsága False legyen. Ebben az esetben a makró nem megy tovább mindaddig, amíg a lekérdezés folyamatban van. Ha ez a tulajdonság True, akkor anélkül fut tovább a makró, hogy a lekérdezés friss adatai "megérkeznének". Makrórögzítő nem feltétlenül foglalkozik a beállításával.
Azt így utólag nem tudom, mi frissítette a képleteket az első munkalap rendezése után. talán a 37897-es hozzászólásomban leírt sort parancs végrehajtása. Mindenesetre onnan kezdve már rendben volt a további munkalapok rendezése.
Köszönöm, de időközben megtaláltam a hiba okát. Nem írtam meg, és magam sem gondoltam, hogy egy másik modulban lévő programmal függ össze a hiba. Uganis az érintett munkafüzetben két egymásra épülő feladatot végzek el. Először beolvasok adatokat egy külső munkafüzetből, és azokat bemásolom egy "forrás" munkalapra. Ez nem vesz részt a rendezésben csak a használt 7 munkalapban lévő képletek innen veszik át az adataik egy részét.
Gynús lett, hogy időnként jó volt a működés, most már tudom, hogy akkor, amikor az adatbeolvasás után mentettem a munkafüzetet, majd később futtattam a rendező programot.
Általában nem így tettem, hanem közvetlenül egymás után indítottam őket. És emiatt a sorban első munkalap feldolgozásakor a képletek még nem érvényesültek.
Most a rendező program elejére beszúrtam egy a képlet frissítő parancsot, ami megoldotta a problémát: Application.Calculation = xlCalculationAutomatic.
Msgbox kiíratásnak az értelme az, hogy amíg leokézod, addig áll a program, telik az idő.
Értem én, hogy másodszorra már megcsinálja azt is, amelyiket előszörre nem... persze, hogy zavar (engem is így látatlanban), mert nem ez a normális működés.
Még egy (utolsó) gondolat(ötlet?): ha nem ciklusban csinálod, hanem csak egy munkalapot, azt megcsinálja vagy nem?
És lépésenkénti futtatásnál?
Végülis még felteheted kérdésként a MS tudástárba is a jelenséget. Valami oka biztosan van....
- msgbox-szal kiíratni, hogy épp melyik lapot akarná rendezni: Ez felesleges. Pontosan tudom. Ld. eltelt időkben az előtte lévő szám a munkalap nevének a része.
- Stop: Próbáltam, maradt a hiba
- Aktiválás: Próbáltam, maradt a hiba
- megnézni,hogy nincs-e valami szemét még a usedrange-ben: Ezt nem tudtam értelmezni. Mi lenne a szemét? Különösen annak fényében, hogy például a Fordított sorrendnél ugyanez a hiba nem az első, hanem a 7. munkalapon jelentkezik.
Azért köszönöm.
Egyelőre marad az első munkalapnál a rendezés ismételt elindítása.
Szia, köszönöm az ötletet. A munkalapok sorrendjének felcserélése után nem ugyanazon a munkalapon jelentkezett a gond, hanem amelyik elsőként került sorra. A korábbi első itt már rendben lett.
A rendező program így indul:
Sub Tagozat_sorrendezo()
Dim lapszam As Long ' stb.
lapszam = ThisWorkbook.Sheets.Count
For aktlap = 2 To lapszam ' Az első a teljes lista, de azzal most nem foglalkozunk, ezért a másodiktól kezdjük a sorrendezést. Tehát a mindenkori második kerül elsőként sorra
MsgBox "A tagozati adatok sorrendezése befejeződött!"
End Sub
Tehát ezek alapján semmi okát nem látom az első munkalap többitőleltérő viselkedésének.
Kérdezted még, hogy "Milyen tartományra hivatkozik az aktlapws változód?"
Az aktlapws az aktuálisan éppen sorra került munkalap. A sorrendezésnél az A2-től kezdve a teljes tartományt jelöli ki. Azért A2, mert két soros fejléc van, de ebből az első sor érdektelen, csak a 2. sor az érdekes
Esetleg próbáld meg a munkalapok sorrendjét felcserélni. Ha akkor is ugyanazon a munkalapon jelentkezik a gond, akkor azt érdemes alaposabban megvizsgálni.
Milyen tartományra hivatkozik az aktlapws változód?
Nem biztos, hogy segít neked, de én akkor jártam hasonlóan, amikor egy "újrahasznosított" (és .Clear-rel törölt!) munkalapon bennragadt egy szűrő. Nálam akkor egy sortörlő VBA-utasítás hagyott ki a törlésből szemre véletlenszerű sorokat, és szintén nem mindig ...
És ezután jött az újabb rejtély. Miután lefutott a program úgy, hogy a sorban elsőként érintett munkalapon a rendezés nem történt meg (és mindig ez, nem véletlenszerűen egyik, vagy másik), akkor ha újra elindítom a rendező makrót, akkor ezt is megcsinálja.
Lehetséges, hogy valami időzítési problma miatt nem működik rendesen az .Apply parancs? Meglátom, holnap megpróbálkozom egy DoEvent, vagy hasonló beírásával. De azért kellemetlen, ha van olyan programrészlet, amelyik hol így, hol úgy működik.
Most viszont van egy teljesen megmagyarázhatatlan jelenség a rendezéssel kapcsolatban. 7 munkalapot kell rendeznem lényegében azonos adatszerkezettel. A rendezéshez 5 mezőt használok, ebből 4 csökkenő sorrendben, az utolsó növekvőben rendez. Mind a 7 munkalapon ilyen adatok vannak a rendezendő oszlopokban. Vagy szám, vagy Nincs adat szöveg az egyikban, és #ÉRTÉK! a másikban. A rendezés célja többek közt éppen az, hogy ezek a hibás sorok a rendezéskor az elejére kerüljenek.
A 7 munkalap közül 6-ban teljesen rendben rendezi a sorokat a program, az egyikben következetesen nem.
A rendező részlet, amit egyiknél nem végez el, a következő. A fejlécsor a második, így az első rendezendő sor a 3. (bocs a hosszú változónevekért. Szeretem a beszélő elnevezéseket):
Kösz, most én is rákerestem ugyanott, és az AI nekem a szintais leírását követően ezt adja (előzőleg Wordbe másolvas, majd onnan ide):
The SortFields.Add2 method in Excel allows you to create a new sort field and return a SortFields object. This method can optionally sort data types with the specified SubField. Let’s break down the parameters:
...
Here’s an example of how you might use it to sort a table named Table1 on Sheet1 by Column1 in ascending order based on the SubField Population from Geography data types:
Az Excel VBASortFields.Add2 metódusa lehetővé teszi új rendezési mező létrehozását és egy SortFields objektum visszaadását. Ez a módszer különösen akkor hasznos, ha az adattípusokat egy almező-definíció alapján szeretné rendezni. Bontsuk le a részleteket:
expression: SortFields objektumot képviselő változó.
Key: Megadja a rendezés kulcsértékét.
SortOn (Nem kötelező): A rendezés alapjául szolgáló mező.
Order (Nem kötelező): Megadja a rendezési sorrendet.
CustomOrder (Nem kötelező): Megadja, hogy kell-e egyéni rendezési sorrendet használni.
DataOption (Nem kötelező): Megadja az adatbeállítást.
SubField (Nem kötelező): Megadja azt a mezőt, amely alapján rendezni kell egy adattípushoz (pl. Népesség földrajzi helyhez vagy Mennyiség készletekhez).
Megjegyzések:
Ez az API támogatja az almezők olyan adattípusok szerinti rendezését, mint a földrajz vagy a részvények.
A képletekkel ellentétben az almezők nem igényelnek szögletes zárójeleket a szóközök használatához.
Példa: Tegyük fel, hogy van egy Tábla1 nevű táblája a Munka1 lapon, és növekvő sorrendbe szeretné rendezni az Oszlop1 szerint a Földrajzi adatok almezőből származó populációja alapján. Ezt a következőképpen érheti el:
ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort.SortFields.Add2 _ Key:=Range("Table1[[#All],[Column1]]"), _ SortOn:=xlSortOnValues, _ Order:=xlAscending, _ DataOption:=xlSortNormal, _ SubField:="Population" With ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1").Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
Ne feledje, hogy ez a módszer rugalmasságot biztosít az adattípusokat és almezőket érintő összetett rendezési forgatókönyvek kezelésekor. 📊🔍
Egy excel tábla rendezését vizsgáltam makrórögzítéssel, és a SortFields.Add2 formát adta ki. Próbáltam utánanézni, hogy mi ez, és azt találtam, hogy az Add2 használ egy új paramétert, aminek a neve "SubField" , amiről ezt írja a Microsoft: "Specifies the field to sort on for a data type (such as Population for Geography or Volume for Stocks)".
Namármost én ebből egy mukkot sem értek, ezért elkezdtem utánanézni, de nem találtam érthető leírást. Annyit viszont láttam, hogy néhányan nehezményezték, hogy egyes korábbi verziókkal ez az Add2 nem kompatibilis. Ezért a saját programomban helyette a 2 nélküli Add-ot használtam, és rendben műküdik.
De érdekelne a Subfield részletesebb magyarázata. Tudtok valami forrást, ahol utána lehet nézni? Nekem nem jött össze.
Egyszerű: Feltéve, hogy a B oszlop rendezett, ahogy a példád mutatja.
Ekkor az A oszlop 2. sorába beírsz egy 1-est.
Utána az A oszlop 3. sorába ezt írod: =HA(B3=B2;A2;A2+1). Majd ezt a képletet végighúzod lefelé a teljes listában, és ott lesznek az azonosítóid mindegyik mellett. Úgy, ahogy a mintádban látod.
Szeretnék segítséget kérni egy feladathoz: Van egy több ezer soros táblázatom, tartalmaz egy oszlopot amiben vannak ismétlések(ezek lehetnek számok és betűk is) [Azonos_elemek], azt szeretném elérni, hogy egy másik oszlopban az azonos elemek kapjanak egy egyedi számot. [Egyedi_azonosító].
A VKERES-nél elmondja, amit a FKERES-nél nem; összeollóztam :(
Ha a tartományban_keres argumentum értéke IGAZ, akkor a tábla első sorában szereplő értékeknek növekvő sorrendben kell állniuk: ...-2, -1, 0, 1, 2,... , A-Z, HAMIS, IGAZ; különben előfordulhat, hogy a VKERES függvény nem a helyes értéket adja vissza. Ha a tartományban_keres argumentum értéke HAMIS, akkor a táblának nem kell rendezettnek lennie.
Opcionálisan megadhatja az IGAZ értéket, ha a visszatérési érték kereséséhez közelítő egyezést szeretne előírni, vagy a HAMIS értéket, ha pontos egyezést. Ha nem ad meg semmit, az alapértelmezett érték az IGAZ, vagyis a közelítő egyezés.
Elnézést a sok egymás utáni posztért,de közben megtaláltam a megfelelő képletet amit keresek,ami majdnem tökéletesen műkődik,de van benne egy hiba valamiért. A Körténél azt az adatot írja ami a "Citrom"-hoz van megadva. ezt miért csinálhatja?
igen,mindenképp előrébb vagyok vele,viszont én a képlet után az eladott mennyiséget szeretném kapni. így ezzel a képlettel a TRUE előtt megadott értékű sorban lévő adatot kapom meg,mivel itt az 5 van megadva a képletben,ezért a kijelölt terület első oszlopában az 5.sorban lévő adatot kapom meg. Én nekem pedig arra lenne szükségem,hogy amelyik sorban megtalálta az "alma" kifejezést,abban a sorban az ötödik oszlopban lévő adatot kapjam meg. Ezt megtudom valahogy oldani?
Sziasztok. Olyan kérdésem lenne,hogy az megoldható e excelben,hogy a tábla a megfelelő adatokat beírja magának egy bemásolt adathalmazból.
Csatolok 2 fájlt egy egyszerű példával hogy egész pontosan mire gondolok.
Egy nagyon egyszerű dologról lenne szó,de az F-J sor celláihoz az adatokat készen kapom meg,és a teljesen véletlenszerű sorrendben vannak az adatok. pl a képen Alma,Körte,Barack stb.. sorrend van,a következőben már egy teljesen másik sorrend lép fel.
Tehát amiben a segítséget kérem,hogy képes legyen a tábla magától kikeresni hogy melyik sorban van az az adat amit keresek pl a C5ös cellához,ami most a J5ös cellában van,de következő alkalommal lehet a J8asban lesz,utána a J5ösben.
Elég bután sikerült elmagyaráznom,de lényegében valami kereső függvényre lenne szükségem,ami kikeresi melyik sorban van pl az Alma,és az adatokat onnan kitudja ezután keresni.
Kicsit megkésve mégis találtam megoldást arra a problémámra, hogy "létezik-e, hogy nincs visszaállítási lehetőség a VBA ablakok alapértelmezett elrendezésére?". Közzéteszem, hátha másnak is szüksége lehet rá.
Tudom, hogy nem mai a kérdés, de esetleg még egy tipp a korábbi megoldás mellé:
Én fel szoktam venni egy segédoszlopot, ami valahogy így néz ki:
=HA(VAGY(A1="";B1="";C1="");IGAZ;"")
Ezt mondjuk az F oszlopba beírva "IGAZ" értéket kapsz, ha valamelyik cella a háromból (A1, B1, C1) üres, egyébként üres marad a cella. Erre autoszűrővel szűrve könnyen megtalálom, hol vannak üres adatok.
Persze ez csak akkor működhet, ha van lehetőség plusz oszlop felvételére.
Megtaláltam a megoldásokat, leírom hátha szükséges lesz még rá valakinek.
Szóval a táblázat oszlopokba ha megváltoztatom a képletet, akkor amikor beírom a cella mellett megjelenik egy kis ikon, ahol kiválasztható, hogy az oszlopképlet legyen az új.
A formázási problémát pedig az egész oszlop (nem csak a táblázatoszlop) formázásának megváltoztatásával tudtam megváltoztatni.
Nyomtatóbeállításra kérdezem. Tudom hogy megjegyzi az előző állapotot, de egy tucat munkalapfülnél ezt egyenként kellett végigkattintani. Ráadásul a kolleginák kinyomtak így száz oldalakat pocsékba, mert ők se, én se gondoltam, hogy a nyomtatóbeállítások még ráadásul munkalaponként is eltérőek lehetnek! :(
Ha arra, hogy minden munkalapot 1 oldal széles 1 oldal magasan nyomtasson, akkor
1. Kijelölöd az összes munkalap fület (shift egér ha egymás utáni, ctrl egér ha van közte más is)
2. A Lapelrendezés menű Méret beállítás csoportjában beállíthatod a szélességet - magasságot, méretet
Ez így minden egyes munkalapra érvényes lesz.
Ha viszont a nyomtatón szeretnél egyoldalas nyomtatást, azt a nyomtató beállításoknál kell előzetesen kiválasztani és addig a beállítás marad, amíg meg nem változtatod újra.
Sziasztok, Legyetek szívesek segítsetek. Terem órarendet kellene készítenem, amit aztán kinyomtatunk és a terembe kiragasztunk. A munkalapon megvan a teremszám, kezdési dátum és időpont, tantárgynév, oktató. A dátumból számítottam hét napját. Beleteszem egy kereszttáblába (nem túl elegáns, de majd szétszedem termenként) sorok a kezdés időpontja, az oszlopok a hét napjai. A tárgynév+oktató összefűzését belehúzom az értékhez, ahol mindenképpen számított cellák vannak, így darabszámot jelenít meg. Hogyan tudnám az értéknél a cellák szöveges értékét megjeleníteni? Szóval nekem oda a tárgynév és oktató kellene. Köszönöm szépen!
Nézd meg légy szíves az Adatok - Speciális (leánykori nevén irányított) szűrőhoz tartozó súgót. Ebben lehet vagy kapcsolatot is megadni szűrőfeltételként.
Vannak egy listában nevek s hozzá taj-szám, személyigazolvány-szám és adószám.
Bizonyos embereknek valami hiányzik, van akinek több minden is.
Próbáltam szűrőket rakni az oszlopokra, de ugye ezzel az a baj, hogy akinek nincs taj-száma, de van adószáma és én a hiányzó adószámokra szűrők, akkor nem lesz benne mindenki olyan, akinek bármi más adata is hiányzik.
Ezeket hogy lehetne legegyszerűbben egységben kezelni?
Tehát a változó neveit felsorolom egymás alatt egy-egy cellában, és az éppen aktuális változó értékét szeretném igazra állítani (azaz a cella tartalma és a változó nevei megegyeznek). A tömb sajnos nem jó, mert később ezt logikai egyenletekben szeretném felhasználni és a változó neve sokkal-sokkal beszédesebb, mint a tömb egy-egy elemére hivatkozás.
Egy egészen alapvetőnek látszó feladatot nem tudk megoldani. Munkalapokat másolok át egy kész munkafüzetből. Az egyik munkalapon háromszázvalahanyadik sor látszik. Ugyanakkor a lekérdezésekkel kiderül, hogy valójában az A1 az aktív. Viszont ez nem látszik
A későbbi panel rögzítéshez szükségem lenne, hogy az első sort lássam, mert az N3 cellán állva szeretném a rögzítést.
Kiválasztani, írni bele, olvasni, minden további nélkül tudnék, de képtelen vagyok elérni, hogy ráálljon a vezérlés.
A ws.Range("A1").Select parancs ellen nem tiltakozik, csak éppen nem áll rá.
Kézzel persze meg tudom oldani, de programból kellene. Már órák óta keresgélek, de nem találok megoldást.
Mi lehet az oka annak, hogy a VBA program alábbi utasítása néha nem törli a teljes tartományt?
MthSheet.Rows("1:13").Delete
Fizikailag ugyanarra a munkalapra ráeresztve kb 5-ből egyszer nem 13, csak 12 sort töröl, és hogy cifrázzam a dolgot, a "bennfelejtett" sor mindig a hajdani tizedik.
Az alábbi verzió pontosan ugyanígy önállóskodik:
MthSheet.Rows("1:13").Select
Selection.Delete
A 10-es sorban természetesen nem találok semmi extrát (az a sor amúgy üres is eredetileg, csak a teszteléshez felöltöttem mind a 13 sor első celláját, hogy lássam, melyik ragad bent) - arról nem beszélve, hogy "többnyire" azzal a sorral is megbirkózik.
Egész megdöbbentő és érthetetlen jelenséget tapasztaltam programírás közben:
Oszlopszámokból képzek oszlopneveket a következő függvény segítésével (az elvet Jimmytől kaptam évekkel ezelőtt):
Function oszlopnev(oszlszam As Long) As String Dim cellastring As String cellastring = Cells(1, oszlszam).Address(rowabsolute:=True, columnabsolute:=False) oszlopnev = Left(cellastring, InStr(cellastring, "$") - 1) End Function
Évek óta használom, tökéletesen működik. Igazából most is, csak meglepetésemre az eredményt a VBA képernyőn nem jól jeleníti meg.
A cél a 41 és 41, valamint a 36 és 37 oszlopszámok összegét per jellel elválasztva betenni az immediate ablakban látható képletbe egy későbbi számítás alapjául.
Meglepetésemre a "szoveg" változó fölé állva csak a képlet első fele jelenik meg, az immediate ablakban látszik a teljes képlet. Mielőtt az utóbbit lekérdeztem, hosszasan keresgéltem az okát, hogy hol hibáztam el az összefűzést, mire kiderült, hogy a képlet a szándékom szerint sikerült, csak nem látszik.
Érdekes módon az értékadás után a munkalap megfelelő cellájában szintén hibásan jelenik meg a képlet. Később a munkalapon már a jó adat látszik.
Ehhez hasonló összefűzögetést elég sokat csinálok ugyanebben a programban, és mind rendben van, ennek az egynek a kivételével.
Még annyit, hogy karakterenként megnéztem, nincs-e benne valami rejtett karakter, de semmi.
Segítségeteket szeretném kérni, az alábbi excel problémával kapcsolatban. Van egy néhány soros adatbázis, és abból készítenék egy rendszerezett táblázatot, mely hasonlóan néz ki mint egy kimutatás. Nagyon jó is lenne, addig amíg nincsenek azonos rekordok, mert azokat összevonja. Persze a kimutatásnak az a feladata, gondoltam ki lehet valahogy kapcsolni ezt az értékmezők számolásait, de nem sikerült. Tud valaki segíteni ez ügyben, vagy más megoldás is jó lenne, ami hasonlóan néz ki…
Ha létrehozok egy új számformátumot, pl. "db" azt hogyan tudom elmenteni akár hozzárendelni egy kis parancsikont, hogy ne kelljen a későbbiekben újra előállítani?
Nekem az összes táblázatom úgy működik, hogy be van képletezve, és ha sort szúrok be, bizonyos cellákba automatikusan bekerül a képlet, bármiféle makró nélkül. Azt gondolom, hogy azért, mert táblázatként van definiálva.
Egyébként most is azt csinálom, hogy amikor beszúrom a sorokat felhúzom a képleteket, hogy átírja a régi rosszat az új jóra, és épp ennek szükségességét akarom elkerülni.
Ha átalakítod az adataidat tartalmazó területet táblázattá (a területen állva Beszúrás, Táblázat), megszűnik ez a gondod.
A táblázattá alakított tartományban 1 cellába beírt képletet az egész oszlop örökli, még a formátumát is, akár az aljára, akár a közepére szúrsz be új sort.
Miért kellene beszúráskor bármit is beírnia az új sorba? Ha az kell. akkor a felette lévő képletet lehúzhatod, vagy az alatta lévőt bemásolhatod. Honnan kellene tudnia az Excelnek, hogy milyen képletek vannak az oszlop többi cellájában, és hogy te azok közül melyiket szeretnéd látni az új sorban? (Az más, hogy te tudod, hogy mindegyik azonos, ő nem tudja)
Egyébként nekem az furcsa, hogy nálad bármit betesz az új sorba. Nem fut véletlenül valami makró a munkafüzetben?
Valamit javult a helyzet, bár így sem az igazi. Az ablakok látszólag egymáson vannak, de nem úgy rögzülnek, mint ahogy az alapállapot volt:
Azért köszönöm.
És bosszantó,hogy erre nem gondoltak Redmondban, vagy ha igen, akkor nem tették elérhetővé. És, hogy az alapállapot visszaállítása csak újrateleptéssel oldható meg.
Tudnátok segíteni abban, hogy miért van az, hogy táblázatokban sor beszúrásakor automatikusan nem azt a képletet írja be, ami az oszlop többi cellájában van, hanem egy korábban használt képletet, mintha beégett volna neki? És ugyanez a helyzet a formázással is, sorok beszúrásakor az új sorokba tesz be automatikusan egy korábbi feltételes formázást.
Illetve ha tudja valaki, hogy ez mitől van, megoldást is tudna rá adni?
Sajnos nincs "alapértelmezés" beállítási lehetőség.
Némi kis macerával ismét beállíthatod a neked kellemes helyzetet.
Javaslat:
1. Jobb egérgomb - hide minden ablakon (benne állva, nem a címén).
2. Egyenként: ablak - view - jobb egérgomb az ablakon mint fent - dockable elől pipa kivéve. Ezután mozgathatod, méretezheted az ablakot. Ha a "helyén van" jöhet a következő ablakra ugyanez.
Excel bezáráskor - ha üres munkalapod volt akkor is megkérdezi - nem kell menteni, megőrzi a beállítást.
A VBA-ban egy rossz mozdulattal elmozdítottam a helyéről a Locals ablakot, aztán, ahogy próbálgattam helyreigazítani (régebben sem sikerült hasonló esetekben) egyre rosszabb lett. Most éppen egymás alatt van a 3 ablak.
Az alapértelmezés, ahogy általában használni szeretem, ez (a laptopomról mentve):
A mostani állapot az asztali gépemen:
Baromi kellemetlen. Létezik, hogy nincs visszaállítási lehtőség az alapértelmezett elrendezésre?
Ha egy cellán belül akarod megcsinálni, akkor természetesen sehogy. Illetve csak makróval. Ugyanis nincs olyan függvény, ami a cella tartalmát módosítja, és visszamásolja saját magára.
Segédoszloppal megoldható:
Ha A1-ben van az adat, akkor a B1-ben a következő legyen
Adott egy excel táblázatom amelyben L2:L100 között felsorolt nevek vannak.
Egy makró segítségével létrehozok adatelemzést és fenti tartományban lévő neveket használva a helyes cellába be is illeszti azokat ezzel nincs is gondom.
A makró utolsó fázisaként a munkalapfüleket szeretném átnevezni az L2:L100 tartomány nevei szerint úgy hogy az adatok ha változnak akkor a munkalapfül átnevezése is kövesse le a tartalmat azaz ne a scriptben tárolt vágólap tartalma alapján legyen átnevezés hanem az oszlop adatai szerint amelyek változnak és ezt kövesse le.
A C12 jelentése, hogy az aktuális (képletet tartalmazó) oszloptól 12-vel balra lévőre hivatkozik. Lehet negatív is a szám, amivel előző oszlopra hivatkozhatunk.
Ugyanígy az R után is lehet érték, ami plusz érték esetén lentebbi sort jelent, negatívnál fentebbit.
Érték megadása nélkül az adott sorra (R), vagy oszlopra (C) hivatkozunk.
Ez megoldott azt, amin már több mint egy napja nyűglődöm eredmény nélkül.
A formulaképlettel ugyan találkoztam már, de nem mélyedtem el az értelmezésében. Most majd utánaolvasok. Talán itt: https://excelchamps.com/formulas/r1c1/, de ha tudsz jobbat, akkor azt is köszönöm.
Mert egyelőre nem teljesen világos, hogyan lesz az RC12-ből $L3, és a C12-ből $L:$L, illetve, ahogy most írok világosodik, hiszen ha az R ott van érték nélkül az aktuális sort jelenti, a C12 meg az oszlopszámot, de ha az R nincs előtte, akkor a teljes oszlopot. Ugye?
Köszönöm, ez így talán működne, de jól látom-e, hogy a képlet helye és a célterület ugyanazon a munkalapon kell, hogy legyen? Amikor megpróbáltam másik munkalapra tenni a képlet helyét, akkor a célterület kijelölésénél hibát kaptam. Ez meglehetősen korlátozhatja a módszer alkalmazását.
Fferién kívül még két módszert ismerek arra, hogyan lehet bevinni egy képletet helyesen makróba.
Beviszem a képletet, majd lapfülön jobb klikk, Beszúrás, Nemzetközi Makrólap. Kapok egy új lapot Makró1 névvel. Ide bemásolom a képletet és a hivatkozási tartományát. Angolul jelennek meg a képletek, ezzel már tudok valamit kezdeni.
2. A legkényelmesebb módszer: beírom a képletet egy cellába. Enterezés után újra erre a cellára állok, makrórögzítés, Enter a cellán. Leállítás után az igényeimnek megfelelően módosítom pl. a tartományt. Ez az R1C1 módszert alkalmazza, nem ronthatom el az idézőjelekkel.
A következő gondom van. Egy több munkalapot tartalmazó Excel fájlban van egy úgynevezett teljes lista, és vannak hozzátartozó munkalapok. A teljes listában a többi munkalap valamennyi rekordja szerepel, ami pedig összeköti őket, az az L oszlopban szereplő azonosító. Tehát amikor egy munkalapra szeretnék bemásolni egy adatot, akkor a munkalap L oszlopában lévő azonosítót keresem meg a teljes listában, és a negtalált sor megfelelő adatát olvasom ki, és helyezem el a munkalapon.
Az erre használt függvény, amit a korábbi években kézzel (Copy-Paste) másoltam be a munkalapok 3. sorába (majd húztam végig lefelé, kitöltve a teljes oszlopot a teljesből átvett értékekkel) így nézett ki:
= INDIREKT("'Teljes lista'!$AL" & HOL.VAN($L3;'Teljes lista'!$L:$L;0);1) ' Itt lehet, hogy hibát követtem el, hogy az aktuális munkalap L3 cellája előtt nem adtam meg a munkalap hivatkozást saját magára, de a rendszer elfogadta, és jól működött a dolog.
A komplett feladatot egy sokszáz soros makró kezeli, és mivel idén szeretném kiadni a kezemből a feladatot, ezt a másolást is a makróban szeretném automatizálni. Viszont órák óta képtelen vagyok megtalálni a helyes szintaxist. és a szerkesztő vagy a képleten belül talál hibát, vagy azt állítja, hogy sub or function not defined. AKár C-vel, akár K-val írom az INDIREKT-et:
Elkeseredésemben arra is gondoltam, hogy az eredeti - kézi - megoldást imitálva alkalmazom, de a Copy részt nem tudom megoldani tehát, hogy a vágólapra kerüljön a formula.
Nagyon szépen köszönöm,egy utolsó kérdésem még lenne. A Jelölő négyzetet miért nem jelölőnégyzetként jeleniti meg a tábla? Már az elején is problémám volt vele,de megoldottam,most viszont kilépés utáni újra megnyitásnál már megint nem jelölőnégyzetként jeleniti meg. A kikapcsolt négyzetek helyén "FALSE" ,a bekapcsolt négyzetek helyén pedig a "TRUE" jelenik meg,tehát a helyzetüket írja le ahelyet hogy megjeleníteni őket
Köszönöm. Még olyan kérdésem lenne,hogy HA képlettel hogy tudok több lehetőséget megadni?
pl =IF(C4="A",;3) ez így tökéletesen műkődik,de hogyan tudok mellé csatolni más lehetőséget is,pl nem csak akkor lesz 3 ha c4=A ha nem c4="A" és "B" és "C" akkor ;3.ha c4="D","E";akkor;4,c4="F","G",akkor =;5. Ezt meglehet oldani egy képletbe és egy cellába beépíteni?
Sziasztok. Az lenne a kérdésem hogy lehetséges e egy cellán belül több jelölőnégyzetet berakni,és hogy ezeket a jelölönégyzeteket színezni valamilyen módon? Arra gondolo,hogy pl a négyzetet kipipálás helyett beszínezni különböző színekre
Viszont a Fájlkezelőben ráállsz - jobb egérgomb - Tulajdonságok - Biztonság - A tiltás feloldása négyzetet bepipálod -- OK. Ezt természetesen a felhasználónál kell megtenni, ami lehet, hogy bonyolultabb lesz neki, mint engedélyezni a makrókat a kérdés után.
Ha vannak/voltak adatkapcsolatok az eredeti fájlban és nem szeretnéd a másolatban, akkor mentés előtt a kapcsolatokat törölni kell, pl.
Do While Activeworkbook.Connections.Count > 0:Activeworkbook.Connections(1).Delete:Loop
Makróval megnyitok egy makrókat tartalmazó fájlt, és a átmásoltatom más néven más helyre, majd egy-két módosítás után mentem. Megoldható-e programból, hogy az új fájl első megnyitásakor ne figyelmeztessen a makrók letiltására, és ne kérje a felhasználótól az engedélyezést, hanem tekintse úgy, hogy az már megtörtént?
Kijelölöd az A2:F14 tartományt (címsortól decemberig), a Ctrl gombot nyomva tartva kijelölöd a C2:C14, E2:E14, és G2:G14 tartományokat. Ezzel a % oszlopokat kivetted a kijelölésből.
Beszúrás, diagram, oszlopdiagram.
Rákattintasz a legmagasabb oszlopra. Az első kattintásra az összes hónap max oszlopai lesznek kijelölve. Még egy klikk az oszlopon, akkor már csak a maximumot tartalmazó oszlop van kijelölve, majd jobb klikk, adatfelirat hozzáadása.
Szóval lentebb van a táblázat, annak a legnagyobb értéke b3-asban a 971.000 és ezt kellene kjjratni a diagram januári bal első (barna mintás) oszlopa fölé, hogy megjelenjen a 971.000 ugye.
Ezek már a megoldások, ezt megkaptam, de hogy hogyan jutok el oda, az nem vili.
A legnagyobb havi bevétel értékét 10 pontos félkövér betűkkel írja az azt ábrázoló oszlop fölé!
Odáig jutottam, hogy mindegyik oszlop fölé kiteszi az értéket ( van ugye egy táblázat hozzá) De nekem csak a legnagyobb értéket reprezentáló oszlop fölé kellene.
Szia! Köszönöm szépen, kipróbáltam, működik tökéletese. Esetleg azt meglehetne oldani, hogy ha egy sorral lejjebb lépek, a már beolvasott vonalkód ne legyen látható?Mert ha ott marad, beolvashatja még egyszer az olvasó. Amúgy bevételezéshez kell ez a dolog. Hálásan köszönöm a segítséget.
Nincs vonalkód beolvasóm, így nem tudom kipróbálni.
A kódot tartalmazó oszlopban a karakter színét fehérre kell változtatni, mint (gondolom) a háttéré.
A makrót a laphoz kell rendelni. Lapfülön jobb klikk, Kód megjelenítése. Ezzel bejutunk a VB szerkesztőbe. A jobb oldalon kapott üres felületre kell bemásolni a makrót.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Font.Color = 1
End Sub
A kattintással kiválasztott cellában a karakter fekete lesz.
Köszönöm szépen a gyors segítséget, kipróbálta, a makró működik tökéletesen, de sajnos, ha felnagyítom a cellákat, a vonalkód olvasó nem olvassa be, így nem használható sajnos.
Esetleg arra van megoldás, hogy a vonalkód csak akkor lenne látható, ha ráállok a cellára?
Nem tudom, mit akarsz kezdeni a beolvasott értékekkel.
A lenti makró a tartomány T oszlopának szűrt értékeit átmásolja a Munka2 lap A oszlopába. Ott megemeled a sorok magasságát, és nem ugrik beolvasáskor a sor.
Szeretnék megoldást találni egy problémámra, ami megkönnyítené a munkámat. Van egy nagy adatbázisom úgy kb 16 ezer sornyi tétel és 20 oszlop adattal. az utolsó oszlop egy generált vonalkódot tartalmaz. Mivel egymás után sorban vannak, a vonalkód olvasóval nagyon nehéz leolvasni, mert sokszor az alatta lévő kódot olvassa le, így sok a hibalehetőség. Van arra lehetőség, hogy a leszűrt adatok egyesével legyenek láthatóak, majd a beolvasás után a lefelé nyíl lenyomása után a következő tételre ugorjon?
A makrót egy modulba kell bemásolnod a VBA nézetben:
Alt +F11 - Insert - Module
Field:=5 helyére annak az oszlopnak a számát írd, amelyben szűrni szeretnél.
A Criteria1:= Array(....) jelenti azt, hogy tömb lesz a paraméterben. Ha hosszabb a feltétel sorozat akkor az aláhúzás karakterrel lehet jelezni, hogy egy sorba tartozik amit beírtál - a hosszabb feltételes sorban láthatod.
Excel szűrőlistában a kereső mezőbe egyszerre több adatot szeretnék szűrni. Lehetséges ez? Amennyiben igen hogyan? Köszönöm!nem csak egy hanem több feltételt is meg szeretnék adni. Nem egyesével hanem egyszerre beírnám. Pl a 8751;8766 adatot keresem. Mi az elválasztójel a két kritérium esetén ebben a kereső mezőben?
közben szembesültem vele, hogy vannak olyan szavak is a listában, amikben változó a kis- és nagybetű...pl. ArrivaBus Kft.
De közben meg azt látom, hogy jellemzően az első betű szokott kicsi maradni, mivel a bevitelnél csak lenyomja a felhasználó a kezdőbetűt és így kicsivel kezdve jelenik meg az adott szó.
Akkor az lenne a célszerű, ha megadnám a listában szereplő szavak kisbetűvel kezdődő verzióját és azt javíttatnám a makróval.
A bevitel helye nálam G2. A laphoz rendelt eseményvezérelt makró:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$G$2" Then _ Target = UCase(Left(Target, 1)) & Right(Target, Len(Target) - 1) End Sub
Az Érvényesítés --> Lista beállításnál meg tudok adni egy listát, amiből választhat a felhasználó.
Azonban a kiválasztásnál a kis és nagybetűk között nem tesz különbséget. Tehát, ha a listában "Budapest" van írva, akkor manuálisan be lehet írni a "budapest" szót és azt - hibajelzés nélkül - tovább is engedi.
Meg lehet oldani, hogy csak a teljesen karakterhelyes szót fogadja el?
A következő "probléma" megoldásában szeretném a segítségeteket kérni.
Le szeretném védeni a cellákat, hogy ne lehessen felülírni a bennük lévő képleteket, szövegeket viszont az egyéni sorrend beállítást szeretném meghagyni a felhasználónak. De ha bekapcsolom a lapvédelmet, akkor a sorrendbe állítást sem engedi.
Próbáltam már, hogy kipipálom a "Rendezés" és az "AutoSzűrő" használatát, de akkor sem engedi az egyéni sorrend beállítást.
Van esetleg erre valakinek valami ötlete, megoldása?
Van egy változó rekordszámú "A" oszlopom, ami egy Kimutatás varázslóval előállított tábla érintett oszlopára hivatkozva tartalmaz adatokat. (1-100-ig).
A kérdés, hogy melyik szám, hányszor szerepel. (Fontos, hogy kizárólag azoknak a számoknak a darabszáma jelenjen meg a leválogatásban, amelyeket az "A" oszlop aktuálisan tartalmaz!)
Próbáltam a feladatot továbbra is Kimutatás varázsló segítségével megoldani, de nagyon alap szinten kezelem a kimutatásokat, ezért inkább függvénnyel szeretném az adatokat kinyerni.
Még annyit tennék hozzá, hogy bármelyik modulban lehet publikus változót definiálni és láthatja minden eljárás, ha a teljes "névvel" hivatkozol rá, ami így néz ki: modulnév.változónév.
Vagyis ha a Module1-ben van egy Public valt1 nevű változó, akkor azt a többi modulban Module1.valt1 formában lehet elérni.
Ja és azt nem mondtam, de nyilván egyértelmű, hogy a képen látható szubrutin automatikusan lefut a munkafüzet megnyitásakor, tehát megnyitja a munkafájlt, és értéket ad a Public változóknak.
Egyébként az induló kérdésedre nem választoltam. "Hol és hogyan kellene úgy deklarálnom valamiket, hogy az egész munkafüzetben az értékek elérhetőek legyenek? Egyáltalán lehet egész munkafüzetre vonatkozóan vagy csak modulszinten lehet meghatározni?"
A kérdés első felére a küldött mintám már megadja a választ. A Programon kívül deklarálod, tehát a Sub hívás előtt. A deklaráció célja az, hogy ne kelljen minden függvényhíváskor paraméterként átadni a változót a függvénynek.
Ezen túlmenően a public deklaráció a az egyes munkalapokon létrehozott subrutinokbna is érvényes.
Azt, hogy ne kelljen mindig megadni set-el megadni, azt úgy oldhatod meg, hogy a Project képernyőn a Thisworkbook-ra lépsz, és oda teszed a programot Private Sub workbook_Open() használatával, ami megnyitáskor automatikusan elindítja a programot , és ezzel értéket ad a változóidnak. A többi függvény mehet a modulokba, vagy a munkalapokra.
Sub-on belül működik a "set", de az lett volna a cél, hogy az adott modul elején csak egyszer kelljen "set"-elni és több sub esetén azt mindegyik sub-ra "értse".
Option Explicit Public wv As WorksheetView Public Wb As Workbook Public Wa As Worksheet
Sub teszt() Workbooks.Open Filename:="D:\Dokumentumok\Letöltések\Új form.xlsm" Set Wb = Workbooks("Új form.xlsm") Set Wa = Wb.Worksheets("Adatok") End Sub
Persze a public Wh-t javítsd Wa-ra, de nem ez volt a hiba oka.
Igen, adtam, de a "set" nem tetszik neki ezen a részen.
Option Explicit Public wv As WorksheetView Public Wb As Workbook Public Wh As Worksheet Set Wb = Workbooks("Új form.xlsm") Set Wa = Wb.Sheets("Adatok")
Nem teljesen értem a globális/publikus deklarálást, ebben kérnék némi segítséget.
Hol és hogyan kellene úgy deklarálnom valamiket, hogy az egész munkafüzetben az értékek elérhetőek legyenek? Egyáltalán lehet egész munkafüzetre vonatkozóan vagy csak modulszinten lehet meghatározni?
Public wv As WorksheetView Public Wb As Workbook Public Wa As Worksheet
Eddig elvileg jó, de hogyan tudnám beállítani ezeket?
Ha ez a rész alá beírom, hogy "Set Wa = Wb.Sheets("Adatok")" az nem jó.
Az egyesítéssel egyébként ajánlott óvatosan bánni, kellemetlen következményei is lehetnek a későbbiekben.
De ha már, akkor miért nem jó az, ha kijelölöd az egyesített területet egérrel, majd az Igazítás csoportban az Egyesítés gombra kattintasz. Újabb verziókban mér csak az ikon látszik, az "Egyesítés" szó nem:
Kérlek, segítsetek egy excel függvénnyel kapcsolattal (ha van ilyen). Teljesen laikusként kérdezek, és remélem érthetően magyarázom, hogy mi a feladatom... Üres cellák vízszintesen.. az egyikbe beírok egy szöveget, és a tőle jobbra levő x számú cellával egyesíti az én cellámat. Nem az adatokat kellene összevonni, üres cellákat kellne egyesíteni. Pl beírom, hogy cellla3, akkor az adott cellát a tőle jobbra található 2 cellával egyesíti, és az egyesített (korábban 3) cellában annyi legyen, hogy cella3.. Hogyan lehet ezt a legegyszerűbben megvalósítani az excelben?
Vagy bármilyen a szövegben nem szereplő karakter lehet elválasztó karakter, ebben az esetben egy cellába kerül ugyan a beolvasás, de utána az Adatok - Szövegből oszlopok - tagolt típust választva, egyéb elválasztójelnek beírva a sajátodat, szétbontja cellákra a szöveget.
az lenne a kérdésem, hogy data mátrix kód tartalomba milyen karaktert kell írni ahhoz, hogy ha kézi kódolvasóval beolvasom, akkor az excelbe külön cellába kerüljön a kód tartalom részei?
Zebra designer programmal lenne a kód generálva adatbázisból és nyomtatva, ezt a tartalmat kellene excelbe be illeszteni kézi olvasóval. Egy kód tartalom egy sor de külön oszlopba szeretném az egyes részeket az excelben.
Használd a Solver bővítményt. Ha nem látod, akkor Fejlesztőeszközök - Excel bővítmények - ott megtalálhatod.
Ezután felviszed a számlákat egy oszlopba, pl. az A oszlopba.
Az összeget helyezzük el a D1 cellába.
A D1 cella képlete =SZORZATÖSSZEG(A1:A100;B1:B100) - magyarázat alább lesz.
Ezután meghívod a Solvert:
Adatok - Solver (a menüszalag végén lesz).
A megjelenő párbeszédpanel kitöltése:
Célérték beállítása: A cella, ahol az eredményt szeretnéd kapni - a példában D1
Cél értéke: Értéket kiválasztod, a kockába beírod a kívánt értéket.
Változó cellák módosításával: B1:B100
Vonatkozó korlátozások - Hozzáadás - Cellahivatkozás B1:B100 középre bin - megjelenik a korlátozó feltétel bináris
Hozzáadás. Majd mégse.
Ezután rákattintasz a Megoldás gombra.
Ha van olyan kombináció, amely kiadja a pontos összeget, akkor a Solver megadja. Ha nincs, akkor variálnod kell a számla összegekkel.... :(
Magyarázat:
A B oszlop a szorzatösszeg súlyait adja, ami vagy 0 vagy 1, attól függően, hogy az A oszlopban levő tétel részt vesz-e az összeg képzésben.
Tehát azok a számlák kellenek, amelyek mellett 1 van a B oszlopban.
Az A - B oszlopot addig kell a képletben figyelembe venni, ameddig az A oszlopban értékek vannak, tehát a 100 helyére az A oszlopban levő utolsó adat sorát kell írnod.
Bocsi, a képen B-C oszlop van és az A1 a cél cella.
Lenne egy érdekes kérdésem. Létezik olyan excel függvény, amely egy adag (pár darabtól max 30 db-ig) értékből összeállít egy olyan számot, amely egyenlő vagy a lehető legközelebb van egy adott számhoz?
Kicsit világosabban: Pályázat bevalláshoz van összegyűjtöttem egy csomó számlát (többet mint kellene). Aztán ma kiderült, hogy az adott támogatási összeget pontosan el kell költeni, nem lehet sem több, sem kevesebb (ez esetben a fennmaradt összeget vissza kell fizetni).
Hogyan tudnám összeválogatni a számlákat, hogy az adott érték jöjjön össze (még azért holnap rákérdezek, hogy mekkora a tűréshatár, mert szerintem lehetetlen eltalálni ezt az értéket)
Ha szerintetek hülyeség vagy lehetetlen, akkor is írjatok. Köszönöm.
Van egy másik e-mail címem is: a felhasználónevem utána kukaccal a https://garaland.hu/ domain név. Azért írom ilyen f*szul, hogy a keresőrobotok ne spameljék tele.
OK, csak nagyon hirtelen tűntél el, igaz, engem meg a világvégével meg a közelgő karácsonyi lezárásokkal tartottak sakkban.
Most meg a kuglid keményített be, nem engedi megnézni a fájlokat, hogy regisztráljak, meg vegyek új PC-t újabb böngészőhöz, ráadásul a levelezőrendszert spam listára tette, mail egy idő után visszajött "biztonsági okokból" nem írhatok kuglira, más megoldást kell találni.
Nem igazán szokásom minuszolgatni, az nem tőlem jött. Általában egy-egy plusz szoktam nyomni egy beszélgetést lezáró utolsó kommentre, ami hozzám szól.
Ilyen esetben, amúgy bátran lehet keresni emailben is engem. Publikus az email címem.
Szia, ha van felhő tárhelyed pl. Google Drive, vagy Microsoft Onedrive, akkor fel tudod másolni, és a linket elküldeni. Ha ez nem megy, akkor kattints a nevemre, ott megtalálod az email címemet - Ami nálam nyilvános- , és oda is tudsz küldeni levelet, és tudod csatolni a fájlt.
Még valamit: Ha válaszolsz egy hozzászólásra, akkor az adott hozzászólás jobb oldalán találsz egy visszahajló nyilat, és erre kattintva kiderül, hogy melyik hozzászólásra válaszolsz.
Itt most még könnyű áttekinteni, de hosszabb beszélgetésnél sokat segít, ha látjuk, hogy kinek válaszolsz. Előre is kösz, ha erre figyelsz.
Átgondoltam, és végső soron nem is szükséges új munkalapra írni a súlyhatárokat. Írhatod őket a táblázatod utáni részbe, mondjuk az AA és AB oszlopokba. Ezzel egyszerűbb is lesz a képlet:
A feladatot meg lehetne oldani nagyon bonyolult, egymásba ágyazott HA függvényekkel. Nem javaslom, mert áttekinthetetlen lenne.
Viszont megoldható egy segédtáblázattal, amelynek segítségével az XKERES függvény intézi a besorolást. A teendőd a következő:
1. Hozz létre a munkafüzetben egy másik munkalapot. Én ezt Súlycsoportoknak neveztem. Ebbe sorold fel a súlycsoportokhoz tartozó súlyhatárokat (szerintem az első - a 20-as akár el is maradhat, hiszen ez alattit nem vesztek figyelembe.:
Az utolsó adat a 200 helyett olyan érték legyen, amit biztos nem ér el senki.
2. Az alaptáblázatban pedig az SCs oszlopba ez a képlet kerüljön: =XKERES(H2;Súlycsoportok!$A$2:$A$12;Súlycsoportok!$B$2:$B$12;;1;1), amit aztán húzz lefelé az összes versenyző SCs oszlopában.
Vannak pl nőiversenyzők, és súlycsoportok szerint vannak csoportosítva.
Amennyiben egy sportolót bemértünk és a testsúlya mondjuk 39,5 kg akkor a súlycsoportja 40kg! Amennyiben a testsúlya 40,01 kg, akkor a következő súlycsoportba kell sorolnia.
Milyen függvénnyel tudom automatizálni a táblázatomat?
A két fájlnak egy mappában kell lennie. Illetve a database nevű fájl nem is nevezhető át más névre.
A makró a kék "körre" kattintva indítható. Nyilván a makrók futtatását engedélyezni kell.
Tartalmaz néhány minta adatot. Az adatok elején lévő számmal nem kell foglalkozni, az az úgynevezett ID, az minden esetben egyedi és nem is ismétlődhet. Csak azért jelenítettem meg, mert így egyszerűbb elvégezni az adatbázis műveleteket. Ellenben ha zavaró, akkor meg tudom oldani másképpen is.
Az "Új" gombra kattintva tudsz létrehozni új címkét. Minimum 3 karakternek kell lennie a címke nevének. A címkék nem ismétlődhetnek.
Az "Átnevezés" gombra kattintva tudod átnevezni a címkét. Ha véletlenül kattintasz rá, akkor be kell írni a címke mostani nevét és akkor nem nevezi át. Itt is érvényes, hogy nem egyezhet meg másik címkével, illetve minimum 3 karakternek kell lennie.
A "Törlés" gombra kattintva tudod törölni a címkéket. Feldob egy figyelmeztetést, hogy a művelet nem vonható vissza és mindenhonnan törli a címkét. Vagyis nem csak a címkét törli, hanem az összes hivatkozást is, ami rá mutat. Ilyen hivatkozás például az adott bejegyzéshez hozzárendelt címke is.
Ha te is ilyesmire gondoltál, akkor majd folytatom.
A bejegyzésekhez egyelőre 4 mezőt hoztam létre.
-ID: egy belső azonosító szám
-szoveg: maga a bejegyzés szövege
-datum: a bejegyzés dátuma (itt megbeszélés tárgya, hogy kézzel legyen beállítható, vagy a létrehozás dátuma kerüljön ide)
-letrehozo: a bejegyzést létrehozó felhasználó neve (ha nincs ilyenre szükség, akkor törölhető is)
A Onedrive-s megosztás nem az igazi, mert a megosztott linkre kattintáskor a webes Excel indul el. Ami egyrészt eléggé korlátolt, másrészt azonnal ment mindent, és a felhasználók ezt nem igazán szeretik, én sem.
Azt meg lehet oldani, hogy onedriveos megosztott excel file Excel 365 vastag klienssel legyen szerkeszthető?
Hogyan lehet egy, a munkahelyem lokális hálózati meghajtóján lévő Excel táblázatot közös használatra megosztani? Az Excel korábbi verzióiban ez működött, de most egységesen az Excel 365 verzió lett telepítve. Ebben már nem jön fel csak a megosztás megosztásának a megszüntetése. Csak Onedrive meghajtón engedélyezné, de az nem lenne a legjobb. Van valami megoldás?
Egy egyszerű if képletről lenne szó amivel problémába ütköztem. Először is azt szeretném kérdezni,ez így miért nem műkődik? =IF(g1>h1,"A",IF(h1>g1,"B"))
illetve ha ezt így nem tudom megoldani,akkor hogyan tudnám? g1 és h1 semmilyen esetben nem lehet egyenlő,így annak a beépítésére nincs szükségem a képletben
Hát, vannak fenntartásaim, programozók állandóan azt bizonygatják, hogy mit nem lehet megoldani adatbázissal, de ha meggyőzöl, nézzük meg, mire jutunk. :-))
Irj egy rövid példát, hogy te hogyan gondolod a gyakorlatban, vagy Te írtál egy nagyon "lebutított" vázlatot, vagy én bonyolítom túl a végtelenségig.
Igen, csak szöveges adatról van szó, csak az embereknél kellenek kapcsolódó adatok, mint elérhetőség (jellemzően mél cím, vagy mobiltelefon), illetve a munkaköre. Valamint az egyéb adatok, hogy adott feladattal megbízott személy, vagy adott főnök rokona, vagy más cégnél lévő üzleti kapcsolata, de azok talán első körben nagyon bonyolultak lennének.
Az jutott még eszembe, hogy a "jegyzőkönyv" két részből áll, az egyik, amit írtam, kezdettől zárásig leírás, hogy mi történt és kik szóltak, hozzá, valamint az is benne van, hogy a gyűlés közben mely fontos személy jött, vagy ment el. Mellette van egy jelenléti ív, amit mindenki aláír, aki ott volt, de a leírásban látható, ha az illető csak pl. tíz percre ugrott be, mert egy kérdésben szükség volt rá, a többi nem érdekelte.
az átméretezés rendben működik, köszönöm szépen! :)
A szűrök viszont nem frissülnek vmiért, nem követik le a táblázat adatait. :-(
Ellenben ha minden táblázat átméretezés után, makróval feldobálom a szűrőket, akkor az úgy igazából rendben működik, kivéve azt a kis optikai problémát, hogy így lehetnek nagy szűrőkben egy-egy gombok csak, de az alapjuk viszont megmarad nagynak. De ezt a részét el tudom igazából most már engedni :-) Mégsem annyira néz ki rosszul, mint azt elsőre gondoltam.
Szóval köszönöm szépen! Így már elboldogulok szerintem:-)
A szűrés újrafuttatása előtt nem kell szerintem törölni a Rendszerezett Adat munkalapon levő táblázatot
Ezt a makrót futtasd a szűrés után:
Sub modos() With Munka2.ListObjects("Táblázat1") If Munka2.Cells(Rows.Count, 1).End(xlUp).Value <> "" Then .Resize Range(.Range.Cells(1, 1), Munka2.Cells(Munka2.Cells(Rows.Count, 1).End(xlUp).Row, _ .Range.Columns.Count)) Else .Resize Range(.Range.Cells(1, 1), .Range.Cells(1, 1).End(xlToRight).End(xlDown)) End If End With ActiveWorkbook.SlicerCaches("Szeletelő_Eladó_Megye").RequireManualUpdate = False End Sub
Az első rész hozzáigazítja a táblázatot az újra szűrt adatokhoz. Az utolsó sor pedig frissíti a Slicereket.
Megjegyzések:
1. Munka2 = a Rendszerezett Adat munkalap programozási neve (Codename), használható a Sheets("név") helyett.
2. A "With --- End With között részben a With sorban levő objektumra hivatkozhatunk a . (pont)-tal. Rövidebb és gyorsabb is a programirás és futás.
Itt egy példa, gyorsan netről szedtem le egy adatokkal lévő excelt. (Fórum példa)
Szóval az "Alap Adat" fülre töltjük be a rendszerből kiimportáld adatokat, excelbe tölti le, értékként. (AlapAdat 5000 sor + 57 oszlop) Ez a példában 57 oszlopból áll.
A "Rendszerezett Adat" fülön már történt egy irányított szűrés, hogy csak azokat hozza át amiben "Tehermentes" és "Légzsák" "IGAZ", de csak az 57 oszlopból nekem elég 8 oszlop adatsora, a többi felesleges. (Így a Rendszerezett Adat 1229 sor + 8 oszlop)
Az így kapott "letisztított adatsorban" kell különböző szeletelőket használnom, példában 3-at. (Eladó Megye + Beadás Nap Neve + Beadás Hónapja)
És ezeket használva szűrünk ki adatokat. Ezek a szeletelős megoldás azért kell, hogy aki nem ért az excelhez, az is tudja a szeletelőkkel szűrni az adatokat. (Az alapadatot VBA - makróval töltetem be - szóval az egy gombnyomás nekik + az irányított szűrést is makrógombbal oldom meg, az a második gombnyomás nekik)
Ahhoz, hogy szeletelőim legyenek, az irányított szűréssel megkapott adatsort táblázattá kell alakítanom előtte.
Na ez így rendben is van eddig.
De ha holnap új adatsort töltök be az Alap adat fülre, akkor borul minden. (Fórum példa2) AlapAdat 50 sor + 57 oszlop Rendszerezett Adat az irányított szűrést követően 11 sor + 8 oszlop
És így ekkor a szeletelelőkben megjelent az "üres" adatra szűrés opció, mivel a táblázat megtartotta az eredetei méreteit, amit a szeletelők továbbra is kezelnek. És ezekre nem lenne szükségem. Ez történik, ha korábban nagyobb adat volt benne és az új adatbetöltésnél kevesebb adatsor szerepel.
És küldök egy harmadik verziót is (Fórum példa3), amikor korábban kevesebb adat szerepelt benne, de aztán több adatsor került betöltésre. Itt sem működnek jól a szeletelők, mert csak az eredeti táblázat méretében lévő adatokat szűrik, holott most több adatot hozott az irányított szűrés.
"Alapvetően nekem az kellene, hogy a 2-es munkalapon lévő adat (ami táblázat formátumban van) lekövesse a forrásadat változásait (1-es munkalap), mind tartalomban, mind méretben" - azzal kiegészítve, hogy ugye nem kell minden oszlop a 1-es munkalap adataiból, csak egy része (erre használom az irányított szűrőt)
Alapvetően nekem az kellene, hogy a 2-es munkalapon lévő adat (ami táblázat formátumban van) lekövesse a forrásadat változásait (1-es munkalap), mind tartalomban, mind méretben
Szóval valahogyan összekapcsolni őket.
Egyébként úgy megcsináltam, hogy a 2-es munkalapon sima Fkeresel bekerestem az 1-es tábla adatait, de így ugye kénytelen voltam a 2-es tábla függvényeit oszloponként nagyon sok celláig lemásolni, mivel nem ismerem előre, hogy az 1-es munkalapban mekkora adat lesz
így viszont a 2-es munkalap rengeteg üres cellát hoz eredményül, amit optikailag el tudok tüntetni, hogy ne látszódjon, de a slicer viszont érzékeli őket, mint üres cella = üres adat és beteszi opciónak, mint szűrőfeltétel és az is hülyén néz ki
erre én is gondoltam már és ez lesz akkor, ha mást nem tudok/tudunk kitalálni Csak ezzel azért nem tökéletes mert a slicer-ben lévő szűrési "gombok" száma, függ attól, hogy a szűrendő adatban mennyi féle különböző adat van (például 1-12-ig is lehet, ha csak a hónapokat vesszük).
És ugye makróval nem tudom a slicer méretét a benne lévő gombok darabszámohoz igazaítani, csak egy fix méretre tudom elkészíteni őket a makróval, így viszont minden slicert mindig a lehető legtöbb opcióhoz kell méreteznem, mert nem tudhatom előre mennyi "gomb" lesz majd benne.
Így alakulhat olyan szitu, h nem fog jól kinézni, mert egy baromi nagy slicerben lesz 2 gomb.
De alapvetően ez lesz egyébként, ha máshogy nem megy. (csak szeretném, ha igényesen is nézne ki, a funkció mellett :-) )
"Az egyik munkalapon rendszerből lekért adatsor van (nem táblázatos formában), különböző adatokkal."
Ez milyen módon kerül a munkalapra, milyen lekérdezéssel?
A lekérdezett adatok mindegyikére szükség van a későbbiekben?
Irányított szűrés helyett nem lenne jobb egy kimutatás létrehozása, amit a forrás változása esetén csak frissíteni kell? A kimutatáshoz ugyanúgy lehet slicereket létrehozni.
Esetleg egy mintafájlt adhatnál - természetesen nem éles adatokkal - , amivel esetleg jobban tudnánk gondolkodni.
Van egy excel munkafüzet, két munkalappal Az egyik munkalapon rendszerből lekért adatsor van (nem táblázatos formában), különböző adatokkal. Ez az adatmennyiség minden egyes lekérésnél módosul. (Ezen a munkalapon van még hozzáadott oszlop, ami a bekért adatokból nyer ki további infókat.)
A másik munkalapon már csak azokat az adatokat jelenítem meg, ami nekünk kell, ezt irányított szűrővel teszem meg (makrósítva). Aztán a leszűrt adatmennyiséget táblázattá alakítva 4-5 hozzáadott slicer-rel használjuk.
Szóval a második munkalapon, már az eredeti adat egy leszűkített változata szerepel, amiben slicer-rekkel "kedvünkre" tudunk további szűréseket végezni.
És itt jön a probléma: Amennyiben változik az alap adatmennyiség az első munkalapon (ez lehet több is vagy kevesebb is, szóval nem folyamatosan nő), a második munkalapon lévő makrósított irányított szűrő nem tudja lekövetni, hiszen a slicerek miatt azt az adatsor táblázattá kellett alakítani.
Amennyiben nem alakítom táblázattá, akkor ugye le tudom követni az irányított szűrést a makróval, de akkor meg nincsenek meg a slicer-ek, hiszen azok táblázathoz kapcsolódnak.
Illetve fontos kritérium a második munkalapon ne maradjanak üres sorok, hogy a slicerek ne hozzanak üres mezőre történő szűrési opciót. azaz, ha az irányított szűrés után a leszűrt adatom 10 soros, akkor a slicerek azt lekövessék, ha 100 soros, akkor a slicerek, azt kövessék le.
És mindezt automatizálva kellene megoldani, hogy az excel az első munkalapra befrissített adat után, a második munkalapon a már irányított szűréssel leszűrt adatokat mutassa, és az ehhez tartozó slicerek is módosuljanak (például, ha hónapban csak két hónap van akkor csak azt a két hónapot hozza fel a sliceren belül, ha 12 hónap van, akkor meg mind a 12 hónapot)
Szóval az kellene, hogy az első munkalapra betöltött változó adatmennyiséget a második munkalap mindig lekövesse, de táblázat formában, hogy a slicerek is dinamikusak maradjanak.
Ha gondolod és pontosítunk, hogy mit is szeretnétek pontosan, akkor Excelben megpróbálom megoldani a problémátokat.
Van gyakorlatilag kész makróm, amivel Access adatbázist tudok manipulálnia. Kiolvasni, hozzáírni. Ha megbeszéljük, hogy pontosan mihez, milyen adatokat szeretnétek elmenteni kereshetően, akkor nem olyan nagyon bonyolult a dolog. A lényeg, hogy jól legyen felépítve az adatbázis szerkezete.
Ha jól értem, akkor egy gyűlésnél több bejegyzés is születik. Mindegyik kap egy az adott gyűlésre jellemző címkét.
Úgymond a fő bejegyzés kb. a mikor, hol és kik voltak jelen valamint a napirendi pontok felsorolásából áll.
Utána napirendi pontonként külön bejegyzések jönnek. Ez már két címkét kap. Az egyik a gyűlés címkéje, a másik az adott napirendi pontra jellemző címke.
Ezzel le is zártuk úgymond az első körös adatrögzítést.
Majd pl. amikor jön egy e-mail Józsi bácsitól az elektromos kapu javításával kapcsolatban, akkor az rögzítésre kerül a saját címkéjével. Ami már létezik, mert a gyűlésen szó volt róla, hogy meg kell javítani.
A címkékre tudunk szűrni adatbázisban, mert akkor azok egyediek lennének. A szűrés eredményeit pedig ki tudjuk írni egy sima TXT fájlba. Így ha a közgyűlés "jegyzőkönyve" kell, akkor a gyűlés címkéjére keresünk rá és akkor gyakorlatilag a bevezetőt és a napi rendi pontokat is kiírná a fájlba. De ha az elektromos kapu javításának a folyamata érdekes számunkra, akkor annak a címkéjére keresünk rá. Ekkor csak a közgyűlés adott napirendi pontja kerülne a fájlba írásra, ahol erről volt szó, valamint Józsi bácsi árajánlata. Ha pedig már kivitelezésre is került és ez rögzítésre is került az adatbázisban, akkor természetesen az is bele lenne írva. Utána azt a fájlt ki tudnátok nyomtatni.
Az egyszerűség jegyében csak szövegszerű tartalmakat tudna kezelni. Amennyiben fontos lenne, hogy pl. képeket is tudjon kezelni, akkor lehet, hogy az is megoldható, de az már bonyolítja a helyzetet, mert akkor már nem elég sima txt fájlba kiírni a keresés eredményeit.
Van egy adatbázisszerűen felépülő táblám, az oszlopfejlécekben autószűrővel. Az első oszlop sorszám. Ha leszűröm az adatokat a sorszám persze elállítódik. Létezik megoldás arra, hogy a sorszámozás mindig frissüljön a szűrésnek megfelelően?
Megnyugodtam, hogy nem bennem van a hiba, mert látom a későbbi hozzászólásokból is, hogy egészen másmiről írnak.
Biztos, hogy nem adatbázis volt, Access-t többször, mysql-t egyszer láttam, azt csak programozó tudja kezelni, aki nagyon utálja az egyedi feladatokat.
Leírtam, hogy mit láttam, de álljon itt újra, hátha segít:
Először nekiült és begépelte az aznapi gyűlést, hogy mikor és hol volt és kik voltak jelen, mik voltak a tervezett napirendi pontok, majd napirendi pontonként az egyes résztvevők beszámolóit, majd a kérdéseket és válaszokat.
Ezt szövegfájlként kinyomtatva eltette.
Majd, amikor valamit kérdeztek tőle, hogy pl. fél éve volt valami feladat, és az hogyan áll, akkor matatott valamit, majd kinyomtatott egy olyan szövegfájlt, amiben már az szerepelt, hogy pl. fél éve egy gyűlésen döntés volt valamiről, majd egy héttel később hasonló gyűlésen másik döntés volt a résztvevőkről és költségvetésről, stb. és még olyanok is voltak, hogy pl. Piftuka egy ismerőse telefonált valamikor, hogy megszerezte a kért dolgot és küldi postán Piftuka részére a céghez utánvétellel, stb.
Tehát az egész úgy nézett ki, mintha egy szövegfájl lenne, de minden bekezdés a különböző gyűlések bekezdéseiből és más, csak általa ismert dolgokból - pl. telefonüzenet, vagy postai küldemény - állt.
Biztos, hogy nem programozott semmit, csak a különböző szövegeket látta, ezért volt a tipp, hogy valami iktatórendszer lehetett - csakhát iktatórendszerbe csak postát és üzeneteket irnak, gyűlések jegyzőkönyveit nem.
Tudnátok segíteni, hogy hogy tudnám megtekinteni, hogy egy összeg milyen elemekből áll? Egyik partnerünk kifizette néhány számláját, de csak a végösszeget látom, és szeretném tudni, hogy ez a végösszeg pontosan milyen elemekből tevődik össze? Tehát van esetleg arra lehetőség, hogy lehívom a nyitott tételek listáját, és valahogy lekérem belőle azon összegek kombinációját, amik kiadják az utalt végösszeget?
Szerintem ikonkészlettel csak egymáshoz viszonyított relatív értékeket/adat sávokat lehet feltételes formázással megjeleníteni, egy adatkörön belül, ugyanúgy, ahogyan színskálákkal is.
Az "A" oszlopban kizárólag azokat a cellákat szeretném megjelölni pl. egy piros körrel, melyek megfelelnek annak a kritériumnak, hogy =ÉS(B$1>0;A$1>B$1)
Tudom, hogy van más módszer, amivel kijelölhető/színezhető az egész cella, de most kifejezetten arra vagyok kíváncsi, hogy ez ikonkészlettel megoldható-e?
Nem tudom jól hámoztam-e ki a mondandódból, de azt gondolom a Trello a segítségetekre lehet.
Bár mostanában már nem igazán használom, helyette Figmát használok jegyzetelésre, és mindenre is.
Csapatmunkára a legjobb választás mindkettő.
Érdemes elmélyülni bennük. PC-re, iPadre, mobilra is elérhető mindkettő. A FigJam-ben pencillel is jegyzetelhettek, és valós időben láthatjátok egymás tevékenységét.
A printelés módját, és lehetőségét ellenőrizni kell, ha ez fontos.
Szerintem egy ticketing rendszer kell nektek. Alapból ügyfélszolgálatoknak találtak ki, de ezeket használják a szoftverek hibakövetésére is (pl. Bugzilla). Ezekbe bárki (jogosult) felvihet témákat, hozzárendelhet felhasználókat, akik kommentelhetik, vagy rögzíthetik a jegy státuszának változásait (pl. új hiba, személyhez rendelve, több infó kell, javítva, ellenőrizve stb.) vagy bármilyen más munkafolyamat lépéseit.
Ha van belső szerveretek, még külsős tárhelyet sem kell bérelni, mert alig kell erőforrás. Ha nincs, az sem katasztrófa, kb. évi 10-20eFt-ból megvan. A szoftverek, amelyeken fut, mind ingyenesek (Apache webszerver, MySQL adatbázis). A fejlesztés tényleg sokba kerülhet, de ha nem akartok sok extra fícsört, akár nevetségesen olcsó is lehet (a CodeCanyon-on pl. 16$-tól vannak kész rendszerek). Már csak kell valaki, aki párszor ennyiért telepíti és beállítja.
Az első bekezdésre reagálva, azért nem annyira drága a dolog. Lehet bérelni is tárhelyet.
Én elvesztettem a fonalat, hogy pontosan mit is szeretnétek. Szerintem ugyan arról beszélünk amúgy.
Maradva az adatbázisnál, vannak korlátai, de messzemenőleg nem olyan szűkek, mint azt gondolnád. Lehet bennük komplett szöveges dokumentumokat is tárolni. Adattípus szerint 65.000, 16.800.000 vagy 4.300.000.000 karakter tárolására van lehetőség. Ha csak feljegyzéseknek kell, akkor szerintem untig elég a 65.000 is.
Ezt megfelelő programmal pedig úgy jeleníted meg ahogy szeretnéd.
Tovabbá annyi témakört rendelsz hozzá, amennyit szeretnél.
Ha DOS-os volt az alap program, akkor szinte biztosan Windowson futott a "megbuherált" változata. A WIN98-ig, ha nem csal az emlékezetem, akkor futott szinte az összes ahhoz képest nem túl öreg dos-os program. Maga a WIN98 is DOS alapú volt még.
Többször ki lettünk oktatva, hogy mi buta felhasználók vagyunk és hülyék az IT-hez, ilyet csak mérnökök tudnak megtervezni és rendszerterv kell hozzá jó sok pénzért és persze felhő meg webszerver, szóval, milliós az induló költség.
De az biztos, hogy nem adatbázis, mert ott meg vannak szabva, hogy milyen adatbázisban milyen adatokat lehet bevinni és milyen formában.
Olyat használják külön a pénzügyesek, van külön a könyvelőknek, meg a bérelszámolóknak és vannak, akik excelt használnak rengeteg munkafüzettel.
A szuper megoldás az olyan szöveges valami volt, amiben tetszőlegesen tudta összekapcsolni a különböző adatokat, és mindig gyorsan ki tudta deríteni, hogy mi mivel volt összefüggésben.
Ráadásul úgy, hogy egyben voltak a beírások, és mégis, amikor szükség volt rá, akkor a kapcsolatok révén úgy tudta kinyomtatni a különböző beírásokat, mintha egyetlen szövegfájl lett volna.
Próbáltunk szöveges fájlokat csinálni, de amikor ötven fölé mentünk, már nem tudtuk, hogy melyikben mi van, és nem lehetett őket összekötni, csak fizikailag másolni a tartalmak egy részét.
Félfüllel hallottam, hogy talán valami régi DOS-os, még az 1990-es években kötelezővé tett iktatóprogramnak volt valami megbuherált változata, de biztos, hogy windowsos vagy linuxos volt, nem DOS-os.
Hihetetlen dolgokat tudott vele pillanatok alatt kideríteni, csak néztünk.
Van sejtésem róla, hogy mit is szeretnél. Hogy őszinte legyek nem tudok ilyen jellegű programról.
De el tudok képzelni egy webes programot, ami ezt tudja. Az én olvasatomban ez viszonylag primitív program.
Ha jól értem az kell, hogy legyen egy adatbázis, amiben rögzítésre kerül, hogy ki, mikor, mit és melyik témához ír hozzá. Aminek kell hogy legyen egy rögzítő lapja és egy lekérdező lapja.
Ezt meg lehet oldani PHP és SQL alapon netes felületen. Ennek előnye, hogy ha publikus szerveren van, akkor bárhonnan és bármikor írható/olvasható. Ha helyi hálón van, akkor viszont kell egy szerver, ami ezt kiszolgálja, de "csak cégen belül" lesz elérhető.
Netes alapon egyszerre több eszközön is mehet az adatbevitel és az olvasás is.
De egyszerű excel dokumentumban is nyilvántartható. Akkor viszont egyszerre csak egy ember tudja szerkeszteni. (Kivéve Office 365 esetében). Ha vállalati közös tárhelyre van mentve, akkor többen is hozzáférhetnek és többen is szerkeszthetik egy időben. Viszont ügyelni kell rá, hogy ne írják felül egymás adatait.
Vagy lehet kombinálni a kettőt. Van egy adatbázis fájl, ami céges szerveren van és az tartalmazza az adatokat. Ehhez hozzá lehet férni excelben írt makrókkal és lehet azokat írni/olvasni.
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.
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.
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
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?
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)
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":
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.
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.
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.
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.