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.
Lenne egy-két kérdésem. Az első az lenne, hogy hogyan lehet azt megcsinálni, hogy van négy mérkőzés és ugye értelemszerűen a négy mérkőzésből továbbjut négy csapat és ezt a négy csapatot beírja a következő fordulóba autómatikusan és a négy győztes csapat nevét ki is emelje vastagon? Majd a két elődöntő győztesét automatikusan betegye a döntőbe? Illetve van négy féle verseny és mind a négynek más-más a pontrendszere, de egy tabellán számítják. Ez megoldható valahogy? Aki kiesik az első négyes mérkőzésén ők is más pontot kapnak mint aki ugyan azon verseny elődöntőjében esnek ki. Szóval 4 féle pontszámítás, de a 4 pontszámításon belül 4 adható. Negyeddöntős, elődöntős, döntős, győztes. Bocsi, ha bonyolultan fogalmaztam! Köszi előre is!
Az lehet, de az Analysis Toolpak-ba beépített WEEKNUM függvény, amit a kérdező használ, 30-at ad, és gondolom, neki ez kell. Amúgy az én naptáramban is 29. hét van.
Ha kijelölsz egy teljes oszlopot, és menüből választod az Ablak->Ablaktábla rögzítése parancsot (ami a VBA-s FreezePanes=True megfelelője) akkor a kijelölt oszloptól balra minden rögzítve lesz, jobbra pedig szalad. Sorok rögzítettségére a művelet nincs hatással. Én még olyan Excelt nem láttam, ahol ez ne így működött volna, pedig láttam már néhányat. Nehezemre esik elhinni, hogy a tiéd kivétel lenne.
Köszönöm a segítséget, közben 3.5 órás guglizással sikerült megoldani a problémát. Az volt a baj a legördülő listákkal, hogy bármit kiválasztottál nem az jelent meg, hanem visszaugrott a lista elejére, ugyanis a makró az egész munkafüzetre érvényes volt és így szöveget sem lehetett beírni sehova és a listák sem működtek. A megoldás ez lett:
Private Sub Worksheet_Change(ByVal Target As Range) Dim OldVal As Variant, NewVal As Variant If Union(Range("$F3:$F100"), Target).Address = Range("$F3:$F100").Address Then Application.EnableEvents = False NewVal = Target.Value Application.Undo OldVal = Target.Value If IsNumeric(OldVal) And IsNumeric(NewVal) Then Target.Offset(0, 1).Value = NewVal + Target.Offset(0, 1).Value End If Target.Value = NewVal Application.EnableEvents = True End If If Union(Range("$M3:$M100"), Target).Address = Range("$M3:$M100").Address Then Application.EnableEvents = False NewVal = Target.Value Application.Undo OldVal = Target.Value If IsNumeric(OldVal) And IsNumeric(NewVal) Then Target.Offset(0, 1).Value = NewVal + Target.Offset(0, 1).Value End If Target.Value = NewVal Application.EnableEvents = True End If
End Sub
Így a beviteli cella mellett lévő cellába adja össze a számokat és a beviteli cellában mindig látszik az utolsó érték.
Igaz hogy mire rájöttem kifolyt mindkét szemem, de működik. Köszönöm szépen a segítségedet :)
"Do you know that you can use a UDF as source for hyperlink.
Just like we can write =HYPERLINK(“http://chandoo.org/”,”Click here”) we can also write =HYPERLINK(myFunction(),”Click here”)
And Excel would run your function when user clicks on the link. But, there is more to it. Excel would also run the function, when you place your mouse on the link.No need to click!"
"But, seasoned VBA programmers would know that Functions are not allowed to change values in other cells or format them. Well, that restriction does not apply if you use a function from Hyperlink!!!"
Most komolyan, ezeket a trükköket ki találja meg?
Ilyenkor jövök rá, hogy van okom szerénynek lenni excel témakörben...
Azt a legördülős részt nem értem, de az oszlopra így tudod korlátozni a makrót:
Private Sub Worksheet_Change(ByVal Target As Range) Dim OldVal As Variant, NewVal As Variant If Not Intersect(Target, Range("F:F,L:L")) Is Nothing Then If Target.Count > 1 Then Exit Sub Application.EnableEvents = False NewVal = Target.Value Application.Undo OldVal = Target.Value If IsNumeric(OldVal) And IsNumeric(NewVal) Then Target.Value = NewVal + OldVal End If Application.EnableEvents = True End If End Sub
Van még egy hátránya ennek a makrónak, hogy egy cella értékét nem tudsz törölni, csak ha tartományt jelölsz ki. Ez nem tudom jó-e vagy rossz, lehet Neked éppen így jó!
TransferSpreadsheet, itt klasszul lehet tovább részletezni, hogy hova mentse pontosan.
Tökjó, persze mindig jönnek újabb kihivások...
Pl miért tűnnek el a nulla értékek, amik még megvannak a kereszttáblában, de ha már egy táblát csinálok belőle ugyenbből a kersezttáblából, akkor már csak üres cellát ad...
Private Sub Worksheet_Change(ByVal Target As Range) Dim OldVal As Variant, NewVal As Variant If Target.Count > 1 Then Exit Sub Application.EnableEvents = False NewVal = Target.Value Application.Undo OldVal = Target.Value If IsNumeric(OldVal) And IsNumeric(NewVal) Then Target.Value = NewVal + OldVal End If Application.EnableEvents = True End Sub
Az előző kérdésemhez találtam ezt a makrót, ami tökéletesen megfelel a célra amit írtam. Ha bármelyik aktív cellába beírok egy számot hozzáadja a cella aktuális étékéhez. Tehát ha a cella 2, én beírok 3-at akkor 5-öt mutat. Egy gondom van vele, hogy a táblázatom felső sorában van legördülő lista, stb ami ezzel a makróval nem működik. Lehet valahogy csak az F és az L oszlopra megadni neki egy range-t....
Az alábbi dologban szeretném a segítségeteket kérni:
Adott pl A1, B1, C1 cella
A1-be írok több számot, ami C1-ben összegződne úgy, hogy B1-ben mindig megjelenne mi volt az utolsó szám amit A1-be írtam, egyfajta önellenőrzés céljául. Az A1-be írt szám nem kellene hogy ott maradjon, hasonlóan működne mint egy számológép. Ez egy havi összesítő táblázatomhoz kellene de nem jövök rá hogyan lehetne megoldani. Nyilván ennél bonyolultabb a dolog, ez csak egy szegmense az egész táblázatnak.