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.
Azt szeretném, ha abban az esetben, ha egy cella (c1) nem üres, akkor a c2:c7 cellák kitöltése változzon, ha a d1 nem üres, akkor a d2:d7 kitöltése változzon, és így tovább.
Beállítottam, de csak a c2-t színezte, majd abszolút hivatkozást csináltam a c1-ből, így már jó volt, de akkor meg nem tudtam másolni lefelé a szabályt.
2010-es excelt használok. A képletek újraszámolását automatikus számolásra állítottam. Ez kézi beírásnál remekül működik, azonban ha lefut egy makró (dupla klikkes), akkor nem számolja újra, sőt az automatikus számolás opció is visszaállítódik manuálisra.
Sajnos az excell-t nem tanultam soha, s nem is használom...azaz alap user vagyok...bár 5-6 éve a "ti" segítségetekkel kicsit belemerültem a makrózásba és akkor megírt viszonylag egyszerű táblázatkezelőt most is használom....Mára minden t elfelejtettem.... :(
Amit beírtál, azon elkezdek gondolkodni, s talán gyakorolgatni....így első olvasásra annyira nem tűnik nekem egyszerűnek, de én is igyekszem valamit tenni, valamilyen irányba elmozdulni... ha konkrétab (egyszerű felhasználónak érthetőbb, szájbarágósabb) megoldásra van időtök, akkor azt megköszönöm
menüszalag/külsőadatok átvétele/szövegből menüponttal közvetlenül megnyitható a szövegfile és konvertálható oszlopokra.
(Ugyanezek megvannak 2003-ban is)
2:
Makró nélkül:
Egy másik munkalapra ÖSSZEFŰZ() fgv-el összefűzöd a cellákat, a cellahivatkozások közél berakod a "|" jelet
Vagy: Elmented *.csv formában a táblázatot, majd a csv-ben kicseréled (nem kézzel!!!) a pontosvesszőket(;) "csere" funkcióval more(|)-ra (Sima notepadban a csere funkciót ctrl+h-val lehet előcsalogatni)
Vagy: makró és egy kattintással megvan minden, idő híján ezt most nem tudom
Az excell egy sort egy cellába rak be. A fenti két sort az A1 és B1 cellákban nyitja meg. Ha belemegyek ezekbe a cellákba, akkor tudom átírni, javítani, stb mert mentés után tökéletesen működik a navigációban...
Nekem ennél sokkal többre van szükségem, hisz szeretném az excel előnyeit kihasználni. ( szűrés, rendezett áttekintés)
Létrehozta, egy táblázatot ami így néz ki: (minden adat külön cellában)
Ez így nagyon frankó, mert mappa, almappa, név, stb szerint tudom szűrni, rendezni, hisz külön-külön oszlopban van minden adat...
Budapest, XIX kerület, Lackó ....
Budapest, XX kerület, Ferences ....
Konkrétan 2 dolog lenne, amit nektek "excell zseniknek" meg kellene oldani:
1.:
Szöveges fájl formátumot hogy tudok úgy bemásoltatni az excellbe, hogy az külön cellába másolja be az adatokat. Az adatok így vannak a szöveges fájlban (igo-ban) hogy:
adat|adat|adat|adat|adat|adat|......
Az excellbe így kellene átkonvertálni:
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
adat | adat | adat | adat | adat |
ha így van, akkor egyértelmű, hogy az A2, A4, A6 oszlopot kényem-kedvem szerint tudom szűrni, s egy baromira átlátható táblázatom van.....
Vagy egy külső program kellene, ami a " | " jel közötti részt külön cellákba rak be, s ügyel arra, hogy a sortörés jó legyen
Vagy egy olyan függvény az excellen belül, ami a szöveges fájl bemásolása után végigmegy az A1, B1, C1... cellákon és onnan kinyert adatokat új táblázatba tölti be ( a " | " jel közötti adatokat, az üres adatot is.... ezzel gyakorlatilag autómatikusan megcsinálná azt ami én manuálisan és nagyon lassan (lásd hozzászólásom eleján betett táblázat)
2. feladat...
Az 1. feladatban elkészített excell táblázatot konvertálja vissza vagy szöveges formátumban, vagy az elkészített táblázatot alakítsa úgy át, hogy az összes adat (soronkénti adat) egy cellába másolja be:
adat|adat|adat|adat|adat|
Az Io csak úgy tudja olvasni, ha az adatok között nincs szóköz.....
Eddig ezt úgy oldottam meg, hogy megnyitottam az IGO "user.upoi" fájlt jegyzetfüzetként, bemásoltam az excell táblázatom szövegként (ekkor a sorokat helyesen töri meg, csak az a baj, hogy minden excell cellát egy szóközzel elválaszt...így az igo nem olvassa...de ha az így kapott szöveges részbe a " | " jelek és az adatok mentén a szóközt kiszedtem, akkor minden rendben van....
Ha ezt meg tudjátok oldani, akkor sok-sok ember hasznát vehetné, hisz ezek alapján könnyedén saját poikat is készíthetsz és kezelheted, átírhatod..... sebességmérő kamerák, hasznos helyek, stb
Előre is köszönöm azoknak akik a feladaton elgondolkodnak és segíteni próbálnak!
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim O As Object, BGE As clsButtonGroupElement, S As Shape Dim PID As String
Set myButtonGroup = New Collection For Each S In Sh.Shapes On Error GoTo Hiba PID = S.OLEFormat.Object.progID If PID = "Forms.CommandButton.1" Then Set BGE = New clsButtonGroupElement Set BGE.myButton = S.OLEFormat.Object.Object myButtonGroup.Add BGE End If Folyt: Next Exit Sub Hiba: Resume Folyt End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Set myButtonGroup = Nothing End Sub '---------------------kód vége------------------------------------
A Class Module kódját nyilván átírod majd, hogy a gombok valami értelmeset csináljanak.
A másik rész dióhéjban annyit tesz, hogy mindig, amikor egy munkalapot aktiválsz, létrehoz egy új Collection-t, amibe beleteszi a munkalapon lévő ActiveX gombokat. Ha többféle Shape objektum volna a munkalapon, nem csak Commandbutton, erre az esetre van egy szűrés a ProgID-vel. Nem vagyok benne 100%-ig biztos, de reményeim szerint csak a gombokat engedi át.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Application.Calculation = xlCalculationManual If Not Intersect(Target, Range("B13:B2000,c13:c2000,d13:d2000,e13:e2000,f13:f2000")) Is Nothing Then Target.Value = Cells(Target.Row, 1).Value For i = 2 To 6 If Target.Column <> i Then Cells(Target.Row, i).Clear End If Next i Cancel = True End If End Sub
Azzal ki lehetne egészíteni, hogy egyszerre csak az egyik lehetőségbe lehessen írni? Tehát, ha véletlenül másik helyre kattintottam, akkor a jó helyre kattintáskor a másik törlődjön. Vagyis egyszerre csak egy helyen jelenhessen meg összeg.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Application.Calculation = xlCalculationManual If Not Intersect(Target, Range("B13:B2000,c13:c2000,d13:d2000,e13:e2000,f13:f2000")) Is Nothing Then Target.Value = Cells(Target.Row, 1).Value Cancel = True End If End Sub
A lényeg, hogy van 52 munkalap, minden munkalapon van 30-30 commandbutton. Minden gomb ugyanazt csinálja, csak az éppen aktuális sorral. Megcsináltam már, de csak úgy tudtam, hogy minden egyes commandbutton_click-et létrehoztam, és bemásoltam ugyanazt a kódot mindegyikbe.
Azt szeretném, hogy csak egy kód fusson le például ami a class modulban van. Remélem így érthető.
Ja, Excel 2003-ról van szó, mert most néztem a 2010-ben már két féle commanbutton-t tudok lerakni egy munkalapra egy űrlap-vezérlőt, és egy activeX vetzérlőt. a 2003-ban csak activeX-et tudok lerakni.
Adott egy táblázat, amelynek első oszlopába összegeket írunk be. A következő 5 oszlop 5 különböző kategória (pl: egy, kettő három, négy, öt)
A beírt összeget szeretném az 5 kategória valamelyikébe rendelni. Arra gondoltam, hogy ha adott kategória (adott összeg melletti) cellájába kattintok duplán, akkor másolja át oda az összeget.
Egyszerű szöveget már sikerült beírnom dupla klikkes makró segítségével, de az adott feltétellel együtt nem megy.
Ebből ki lehetne indulni?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.Calculation = xlCalculationManual If Not Intersect(Target, Range("B13:B2000")) Is Nothing Then Target.Value = Date Cancel = True End If
If Not Intersect(Target, Range("Q13:AA2000, G13:G2000, K13:K2000")) Is Nothing Then Target.Value = "IGEN" Cancel = True End If End Sub
2007-es (angol) excelem van es valami elallitodott, ha rakattintok az egyes menupontokhoz tartozo funkciok (pl. file - cut, insert - pivot table, stb), csak akkor jelennek meg, ha a menure kattintok, ha az excel tablaba, akkor pedig eltunnek a funkciok, csak a menusor latszik. Mit kell beallitani, hogy a funkciok is fixen latszodjanak? Koszi a segitseget!