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.
Makró írással kapcsolatban szeretnék segítséget kérni. Van 3 oszlopom. A, B és C. A-ban a dátum van, B-ben a dátumhoz kapcsolódó összeg, a C pedig egyelőre üres. Azt szeretném, hogy ha azokat az összegeket, amelyekhez a mai, vagy egy korábbi dátum tartozik, átmásolná át a C oszlopba. 2 órája küzdök vele, de semmire nem jutottam. Előre is köszönöm a segítséget.
Nálam a 11415 indentálva van, a 11412 meg nincs. FF, legújabb frissítés. Talán a beírásnál számít a böngésző. Viszont: az amit lejjebb írtam, mindig működik, és egyszerű szövegcserével berakható.
Az xl2007-ben a View menüben van egy View Side-by-side rész, én ott keresgélnék.
1.) View/New window (ez csinál egy új ablakot a munkafüzetednek, így már kétszer láthatod ugyanazt). 2.) View/View side by side (ez egymás alá rakja a munkafüzeted két ablakát 3.) View/Arrange All, ezzel vertikálissá teheted a két ablakot 4.) View/Synchronous scrolling (ezzel lekapcsolod a két ablak szinkron görgetését).
Hogy ezt ne kelljen minden egyes alkalommal megcsináljad, én javasolnám a View/Save Workspace alkalmazását.
Előrebocsátom, hogy nem tudom mi a megoldás, de arra gyanakszom nem a SelectionChange.
Mert te itt arról beszélsz, hogy ha gördíted a táblázatot ... és a scrollozás nem jár kijelöléssel.
Esetleg azt lehet VBA-n kívül megpróbálni, hogy a munkalapot két részre bontod. Az egyiken lesz a táblázatod (amit gördíthetsz ahova akarsz) a másikban pedig mozdulatlanul vigyázzban áll a chart.
"a sor eleji space-eket az Index lakapta... ". Nem mindegy, melyik böngészőből hívod meg a fórumot, erre Jimmy jött rá. Az IE szépen hozza a tagolást (csak itt használom).
Itt a módosított verzió:
Sub summa_1() Dim oszlop As Integer, lap As Integer, oszlop_1 As Integer Dim sor As Integer
For lap = 1 To ThisWorkbook.Sheets.Count - 1 Sheets(lap).Select
For sor = 1 To 150 If Sheets("Összesítő").Range("IV" & sor).End(xlToLeft).Column = 1 Then oszlop_1 = 4 Else oszlop_1 = Sheets("Összesítő").Range("IV" & sor).End(xlToLeft).Column + 1 End If
For oszlop = Range("IV" & sor).End(xlToLeft).Column To 1 Step -1 If Cells(sor, oszlop) > "" Then Sheets("Összesítő").Cells(sor, oszlop_1) = Cells(sor, oszlop) oszlop_1 = oszlop_1 + 1 End If Next Next Next
Valamiért nem bírtunk leszakadni erről a 10. sorról, miközben a sok információ között elrejtve :) ott lapult, hogy van vagy 150 vizsgálandó sorom is (!) munkalaponként. Nyafogás helyett (nagy kedvvel, de segédlet nélkül) belevetettem magam a VB makróírásba, így most már van egy új ciklusom az eddigieken felül (ováció!). Már csak egyetlen kérdésem lenne: nem találom a szintaktikáját a Range változó (?) argumentumának. A te makródban ez "IV10", ami, ahogy rájöttem a ctrl-end megfelelője a 10. sorban (ugye?). Hogy lehet ezt "univerzálissá" tenni, hogy az esetemben "For sor=1 to 150" ciklus bármely sorában érvényes legyen? Ui. akármilyen szintaktikával próbálkoztam, nem jött be.
jelenleg így állok:
Sub summa() Dim oszlop As Integer, lap As Integer, oszlop_1 As Integer, sor As Integer
For sor = 1 To 150 'paraszt módszer/1 oszlop_1 = 4 'nekem így jó For lap = 1 To ThisWorkbook.Sheets.Count - 1 'ez tiszta Sheets(lap).Select For oszlop = 1 To 20 'paraszt módszer/2-kínomban, és step -1 nélkül a fasza If Cells(sor, oszlop) > "" Then Sheets("Összesítő").Cells(sor, oszlop_1) = Cells(sor, oszlop) oszlop_1 = oszlop_1 + 1 End If Next Next Next Sheets("Összesítő").Select End Sub
Range("IV150"), Range ("IV"; sor) és hasonlókkal próbálkoztam, de egyik sem kóser...
Adott egy táblázat (70 sor, 9 oszlop). Az első 3 sor rögzítve van. A táblázat mellett van egy chart (5. sortól). Amit szeretnék megoldani, az az hogy ha a táblázatot gördítem hogy az alsó sorok is látszódjanak, akkor a mellette levő chart is mozogjon - maradjon látható. (excel 2007)
Azt sejtem hogy a munkalap SelectionChange eseménye lesz a barátom, de hogyan?
Ha a sorrend mindegy, ez a makró elintézi. Az utolsó lap legyen az, ahol összesítesz, a makróban ez Összesítő névre hallgat.
Sub summa() Dim oszlop As Integer, lap As Integer, oszlop_1 As Integer
oszlop_1 = 1 For lap = 1 To ThisWorkbook.Sheets.Count - 1 Sheets(lap).Select For oszlop = Range("IV10").End(xlToLeft).Column To 1 Step -1 If Cells(10, oszlop) > "" Then Sheets("Összesítő").Cells(10, oszlop_1) = Cells(10, oszlop) oszlop_1 = oszlop_1 + 1 End If Next Next