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.
Sziasztok ! Egy olyan problémával illetve kérdéssel fordulok hozzátok, amihez hirtelen ötletem sincs hogyan fogjak hozzá. Adott egy táblázat ( egy termékkísérő lap ) amin van egy x szám egy cellában, pl 120. Egy másik fülön van egy vonalkódos címkéket tartalmazó táblázat, ( A4-es fektetett oldal, 80 db címkével ). Egy ilyen kis címke 3db sorból, cellából áll. Egy cikkszám, egy vonalkód, egy megnevezés amit az előző táblázatból generál az excel. ( a vonalkódot makróval ). A kérdésem, megvalósítható-e az, hogy ha az első lapra a termékek számához pl 120-at beírok, annyi termékcímkét jelöljön ki / nyomtasson ki / színezzen be a másik fülön található táblázatból? ( 1 db címke 3 cella ahogy említettem, szóval annyiszor 3db pl 120 x 3 db cellát kellene hogy kijelöljön ) pfffff :)
Az A és C tartományban a cellaformázás Védelem fülén vedd ki a pipát 'Zárolt' elől, a B oszlopnál ugyanitt jelöld be a 'Rejtett' négyzetet. Az utóbbi opció eredménye, hogy a lap zárolásakor nem látszik a szerkesztőlécen semmi a cellák kijelölésekor.
A B oszlopba ezt írtam: =HA(A1;"Írjon megjegyzést a C" & SOR() & " cellába";""). Tehát a megjegyzést nem a B, hanem a C oszlopba írják be.
Az A oszlopot tedd rejtetté, és védd le a lapodat (Eszközök - Védelem - Lapvédelem). A védelemnél vedd ki a pipát a 'Zárolt cellák kijelölése' elől.
Lapfülön jobb klikk, Kód megjelenítése. A jobb oldalon kapott üres lapra másold be:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 Then If Target > "" Then Cells(Target.Row, 1) = "HAMIS" Else Cells(Target.Row, 1) = "IGAZ" End If End If End Sub
Ezután a C-be írt megjegyzés hatására a rejtett A oszlop azonos sora HAMIS értéket kap, a B-ből a képletnek megfelelően eltűnik a felszólító szöveg. Ha egy megjegyzést törölnek, az A oszlop azonos sorú cellája IGAZ lesz, B-ben előjön a felszólítás.
Konkrétan arról van szó, hogy a B lenne a megjegyzések oszlopa. Ide írhat be a helhasználó.
Viszont, ha az A oszlop celláiban IGAZ van (ez egy logikai eredmény, egyébb cellákból), akkor a B oszlop megfelelő cellájába kötelező írnia indolkálst.
Ezért arra gondoltam, hogy ha az A-ban IGAZ szerepel, akkor automatikusan beírok egy felszólító szöveget a B-be, hogy "Legyen szíves indokolja...".
Ha hamis szerepel, akkor üres sztringet. De ettől függetlenül még írhat bele.
És azt szeretném, hogyha rááll a B cellájára, akkor ne képletet lásson benne pl ilyet: HA(A1 = IGAZ; "Indokolja meg..."; "").
Ezért lebbe jó megoldani azt, hogy mondjuk az A cellájából tudnám módosítani a B tartalmát.
első megkreált sheet után már nem az eredeti Name sheeten akar lépkedni, hanem az újon.
Persze, mert az újonnan beszúrt munkalap lesz az aktív - márpedig te nem mondtad meg neki, hogy melyik munkalapról vegye a neveket - így venné az aktívról
Sub Makró1() Dim WSN As String, T As Object WSN = ActiveSheet.Name Set T = Sheets(WSN).Range("A1").CurrentRegion For Each CELLA In T Sheets.Add ActiveSheet.Name = CELLA Next End Sub
Egy táblázat oszlopának sorszámait egymás alatti cellákba írva a következőt műveli:
1-2-3-4....stb jól beírva, általános szám formátumban semmi gond nincs. Amikor azonban pl; a 4-5-6. formációt szeretném beírni egy cellába, automatikusan átvált az enter után dátumformátumra...(lásd alant...) Már próbáltam a cellaformázásnál és az excelbeállításoknál is kijelölni utána, de hatástalan. Állandóan dátumformátumot dob ki... Egy cellában valamiért sikerült beírni, de hiába másolom azt is, hatástalan...
A probléma az, hogy egy számlázó programból exportál adatokat kell feldolgoznom, azaz nem nekem, hanem egy kis cég igazgatójának.
A makró kész, használja már, csak az a probléma, hogy elfelejti frissíteni az árfolyam táblázatát, akkor a makró futása megszakad, mert nincs meg minden adat.
Ekkor frissíti az MNB oldaláról, és újra indítani a makrót.
Ezt szeretném elkerülni, hogy nem álljon meg futás közben, egyszerűbb lenne egyből abból a táblázatból indulni.
"Mert ugye az árfolyamok, mint historikus adatok nem változnak."
Igen, nem változnak, de amíg nincs frissítve, akkor ahhoz a naphoz nincs adat!
Nem elkerülni akarom annak elismerését, hogy fogalmam sincs hogy kéne csinálni (mert nincs), de:
Miért akarod mindíg megnyitni? Nem lenne egyszerűbb egyszer letölteni (ha szükséges belerakni munkalapként abba a workbook-ba amiben használni akarod) és kész. Mert ugye az árfolyamok, mint historikus adatok nem változnak.
Adj egy kicsit több infót a problémáról és bár lehet az árfolyamok folyamatos nyitását-csukását nem tudjuk megoldani neked, de valami alternatív megközelítést nem kizárt hogy találunk.
Érdeklődöm, hogy Ti hogyan oldanátok meg azt a feladatot, hogy a Magyar Nemzeti Bank oldalán található árfolyam-lekérdezés táblázatot automatikusan nyissa meg az Excel.
Erről az oldalról van szó: http://www.mnb.hu/arfolyam-lekerdezes a lap alján van, hogy éves listák. Ki lehet választani az évet, és a letöltés gombra kattintva megnyílik az excel.
Automatikusan szeretném nyitni/zárni. (A zárás nem gond :))
Akkor nem érted, azt amit leírtam. Lehet nem jól fogalmaztam, de próbáld ki azt amit leírtam az elején. Egyébként csak azért írtam le, hogy okos ember más kárán tanuljon :o) És itt sok okos ember megfordul. :o)
Pont hogy az a hiba, hogy nem azt kapom vissza amit letároltam, és erről még csak nem is tudok. Korrektül csak akkor kapom vissza az adatokat, ha egyszerre egy darab munkafüzet van megnyitva.
Az első táblázatban 1-es érték szerepel, mert amikor lementettem ez volt a csatolásban.
A második táblázatban 2-es érték szerepel, mert amikor lementettem már ez volt a csatolásban, mivel időközben a csatolásban szereplő adat megváltozott.
Amikor az első táblázatot megnyitom helyesen az 1-es értéket látom. Bezárom majd megnyitom a második táblázatot, amiben helyesen a 2-es értéket látom. Bezárom Eddig nincs semmi gond.
Ha viszont az első táblázatot nem zárom be, hanem megnyitom a második táblázatot is, akkor mindenféle figyelmeztetés nélkül az első táblázatban lévő érték átíródik 2-esre, pedig abban a táblázatban 1-esnek kellene szerepelni. Tehát mind a két táblázatba 2-es fog szerepelni hibásan.
Ha fordítva nyitod meg, először a második táblázatot, majd utána az elsőt, akkor meg a másodikban íródik át az érték és mind a két táblázatban az 1-es érték fog szerepelni. Most az 1-es, vagy a 2-es érték a helyes? Mind a két táblának meg kellene őriznie a saját értékét.
Ez a hiba attól függetlenül jelentkezik hogy engedélyezem-e a már nem létező csatolást vagy nem. Ez utóbbi esetben azért különösen súlyos az eset, mert mondjuk pont azért nem engedélyezem a csatolást, hogy az eredeti adataimat láthassam, még ha egyébként létezne is a csatolás, hiszen ennek ez az egyik célja. Ennek ellenére módosul a tábla. Majd miután valamilyen módosítás hajtok végre a táblában (ha egyszerre vannak megnyitva) és lementem, akkor már az általam nem módosított cella is a megváltozott hibás adattal kerül mentésre és erről még csak nem is tudok.
Ennél pontosabban nem hiszem hogy le tudom írni. Sok embernek mutattam már személyesen is. Elöször mindenki csak értetlenül nézet, aztán amikor felfogták, hogy miről beszélek ledöbbentek, és elkezdtek visszagondolni, hogy követhettek-e el ilyen hibát a munkájuk során, hiszen ebben az esetben ők már egy harmadik személynek hibás adatokat továbbítanak.
Az hogy ilyen hibával nem találkoztál azért lehet, mert egy normális excel felhasználó ezt általában nem követi el. Ha új verziójú/dátumú táblázatot készít, akkor általában a csatolásból is újat készít, vagyis a csatolás neve is más lesz. Vagy ha sem a táblázat, sem a csatolás nevét nem változtatja, akkor megy egy másik könyvtárban menti az új táblázatokat. Ebben az esetben meg a csatolás elérési útja lesz más és így a hiba megint nem jelentkezik.