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.
"á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."
Értem. Viszont, ha makrót írok, akkor gondoskodni kell arról, hogy véletlenül se futhasson a makró egy olyan sorra, amely már át lett alakítva mm-be. Különös tekintettel arra, hogy - feltételezésem szerint - bővül a listád, tehát a makrónknak az újakat át kell számítania mm-be, de a már átalakítottakat nem szabad újraszámolni. Jól gondolom?
A következő megoldásra gondolok: Úgy írnám meg, hogy az átszámított adatok betűméretét módosítsa a makró. Ha mondjuk 11-volt, akkor 12-re. (ezt majd beszéljük meg). Ez egy alig észrevehető változás, nem hinném, hogy a bonyolult makród ezzel foglalkozna. Viszont az átszámító makró ezt figyelve ebből tudja, hogy melyik sorokkal nem kell foglalkoznia.
Először nem látszott, de mentés-bezárás-megnyitás után helyreállt, azaz az utolsó cella a hasznos terület végén van. Egyébként egy másik munkafüzetből átmásolt munkalapon végzett kisebb módosítások után történt az eset. Hogy pontosan milyen műveleteket végzett a kolléga, amik a növekedést okozhatták, az sajnos nem derült ki.
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.