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.
Sajnos nekem a kép alapján nem derül ki, hogy milyen adatokra hivatkozik az adatforrás. Ha nem bizalmasak az adatok, akkor elküldhetnéd a fájlt magát. Ha bizalmasak, akkor a tényleges nevek és adatok helyett más szöveget irva talán kideríthetné valaki, hogy mi a hiba.
Sajnos m54-b olvtárs megoldása nem működik. Az az érdekes, hogy ha a 2024-et teszem az 1-3. helyre, akkor azonnal oda kerül a Jelmagyarázatban is, de ha a 4. helyre teszem (a helyére), akkor a 3.-on marad. Próbáltam azt is, hogy az 1.-re teszem, aztán elé tolok mindent, de csak a 3.-ig hajlandó lecsúszni.
Egyetlen különbség van a 3 évszám között: 2021-22-23 fixen meg van adva, 2024 egy névvel ellátott cellára mutató hivatkozás eredménye (=thisYear). De az se segít, ha csak az évszámot írom a cellába.
Kínomban meghekkeltem, a jelmagyarázatot kivágtam, átrendeztem, töröltem és képként beillesztettem. Csak el ne felejtsem 2025 januárjában lecserélni :)
Szia, akármit próbálok, nem változik a sorrend. Először átrendeztem a sorrendet (eddig normál volt: 2021-2024, átállítottam 2024-21-22-23-ra), de semmi, 2021-22-24-23 maradt. Ki- és bekapcsoltam a Jelmagyarázatot a "Diagram-összetevő hozzáadása" pontban, de semmi, csak elveszítettem a szövegformázást (könnyen visszaállítottam).
Ha a cikkszámok az A oszlopban vannak, akkor én így oldanám meg.
A képlet a B2 cellában: =HA(DARABHA(A:A;A2)>1;A2&"_"&DARABHA($A$1:A2;A2);A2) Feltételezve, hogy az első sorban oszlop nevek vannak. Ha nincsenek oszlop nevek, akkor meg csak felhúzod a képletet a B2-ből B1-be is.
Annyit csinál, hogy ha egy cikkszámból több van, akkor mögé szúr egy alsó vonást és az aktuális sorszámot. Ha csak 1 darab van a cikkszámból, akkor meghagyja az eredeti. Célszerű összesen egy alkalommal így módosítani a cikkszámokat és elmenteni őket az eredeti adatbázisban, mert ha legközelebb más sorrendben lesz a lekérdezés, akkor össze fognak keveredni az új cikkszámok.
Bocs, hogy ilyen sokára reagálok, szabin voltam és kiment a fejemből, hogy kérdeztem :) Köszönöm mindenkinek a segítő szándékot!
Itt a példa, hogy mi nem jó a grafikonban. Az adatok rendezésénél jó az évszámok sorrendje (2021-22-23-24), a megjelenő grafikonban viszont 2024 megelőzi 2023-at. Azóta sem jöttem rá, hogy mi a megoldás. Többször néztem, nincs a 2023-ban semmilyen elütés, láthatatlan karakter (pl. egy szóköz a szám előtt) vagy hasonló, ami a jelmagyarázatban a sor végére tolhatná 2023-at.
Elolvasom, csak első esetben végül elakadtam, és a konkrét táblázatban is segítséget kellett kérnem, amit bizalmas adatok miatt nem oszthattam így meg, így végül privátban dolgoztunk a segítséget nyújtóval a megoldáson, így ott sikerült pontot tennünk az ügy végére. A második esetben valóban elmaradt a reagálás, sajnálom, ott azért maradt el, mert sokáig nem tudtam, hogy én nem értek hozzá, vagy a segítséget nyújtó hagyott ki valamit, mert mindig azt hittem, hogy lefagyott tőle az excel. Aztán utólag kiderült, hogy csinálta, csak konkrétan két óráig futtatta az excel a keresést, valószínűleg túl sok adat volt, de addigra már eltelt több hónap.
Egyik ötletem: csinálsz egy -tól és egy -ig oszlopot, autoszűrővel pedig tudsz úgy szűrni, hogy a -tól oszlop esetén >=3, az -ig oszlop esetén pedig <=3.
A másik: minden látszámhoz csinálsz egy oszlopot: 1, 2, 3, 4, 5, 6, 7 stb. nevekkel, és amelyik játék az adott létszámmal játszható, oda beteszel egy X-et.
Ha nagylétszámú játékok is szerepelnek a listában (mint pl. számháború, fogócska), akkor ez igen sok oszlopot eredményez, az első módszer ott jobb lehet. Egyébként lehet a második is jó.
Társasjáték várólistámhoz szeretnék készíteni egy excelt, ebben kérném a segítségeteket. Meg tudnátok mondani, hogy hogyan tudnék egy tól-ig tartományt beállítani? Az lenne a cél, hogy mindegyik társasjátékhoz beírom, hogy hány fővel játszható, van ami csak solo, van ami 1-2, van ami 2-4, de van 6-21 fővel játszható is, szóval elég széles sávon mozog a tartomány. Ezeket a tartományokat szeretném úgy beírni az excelbe, hogy ha később rászűrök az adott oszlopra, akkor ki tudjam választani például a 3 fővel játszható játékokat, és rá tudjak szűrni csak azokra.
Sub ConvertCSVtoMMandSave() Dim ws As Worksheet Dim cell As Range Dim lastRow As Long, lastCol As Long Dim conversionFactor As Double Dim tempValue As Double Dim csvFilePath As String Dim originalCSV As Workbook Dim newCSV As Workbook ' A konverziós tényező: 1 inch = 25.4 mm conversionFactor = 25.4 ' Megnyitjuk a feltöltött CSV fájlt csvFilePath = Application.GetOpenFilename("CSV files (*.csv), *.csv") If csvFilePath = "False" Then Exit Sub ' Ha nem választottak fájlt Set originalCSV = Workbooks.Open(csvFilePath) Set ws = originalCSV.Sheets(1) ' Az utolsó sor és oszlop megkeresése lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' Végigmegyünk az összes cellán, amely tartalmaz adatot For Each cell In ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)) ' Ellenőrizzük, hogy a cella számértéket tartalmaz-e If IsNumeric(cell.Value) Then ' Konvertáljuk az értéket milliméterre tempValue = cell.Value * conversionFactor ' Az új értéket visszaírjuk a cellába cell.Value = Format(tempValue, "0.000000") End If Next cell ' Elmentjük a módosított fájlt új CSV-ként csvFilePath = Application.GetSaveAsFilename("Modified_" & originalCSV.Name, "CSV files (*.csv), *.csv") If csvFilePath = "False" Then Exit Sub ' Ha nem választottak mentési helyet Application.DisplayAlerts = False originalCSV.SaveAs Filename:=csvFilePath, FileFormat:=xlCSV, Local:=True Application.DisplayAlerts = True ' Bezárjuk az eredeti CSV fájlt originalCSV.Close SaveChanges:=False ' Felhasználó értesítése MsgBox "A fájl sikeresen konvertálva és elmentve milliméterben.", vbInformation End Sub
Nem lett jó, de imádom ahogyan elmagyarázza a dolgokat:)
Hogyan használd a makrót:
Hozz létre egy új Excel fájlt: Nyiss egy új munkafüzetet az Excelben.
Nyisd meg a VBA szerkesztőt: Nyomd meg az ALT + F11 billentyűkombinációt.
Illeszd be a kódot: Kattints az "Insert" menüre, válaszd a "Module" opciót, majd illeszd be a fenti kódot.
Futtasd a makrót: Zárd be a VBA szerkesztőt, majd nyomd meg az ALT + F8 billentyűkombinációt, válaszd ki a ConvertCSVtoMMandSave makrót, és kattints a "Run" gombra.
Válaszd ki a CSV fájlt: A makró kérni fogja, hogy válaszd ki a fájlt, amelyet konvertálni szeretnél.
Válaszd ki a mentési helyet: A makró kérni fogja, hogy válaszd ki a mentési helyet és nevet az új CSV fájlnak.