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 még mindig lenne kérdésem :( Ez a nyomtatási terület kijelölés nagyon klasszul működik, már csak egy baj van. Ha pl beírok 9-et akkor két sor címkét jelöl ki, mert nyilván 1-el több mint a 8, ezért egy sorba már nem fér bele. Vajon lehet úgy módosítani a makrót ( belenéztem, saját kútfőből nem jöttem rá :D ) hogy pontos címke darabszámot jelöljön ki, vagy mostmár menjek a francba. :D A makróban láttam hogy minden cellát 3-al szoroz, ezért elvileg cellákat kellene kijelölnie 3-asával nem pedig sorokat, de lehet hogy rosszul értelmezem.
Elküldtem a módosított fájlt az itt található címedre.
A 3 lapra tettem 3 gombot, amik végrehajtják a makrót. Mindegyik a saját címkéi közül annyit tesz a nyomtatási képbe, ahány a BIZTn lap E4 cellájában található.
A nyomtatást nem írtam bele, a nyomtatási ikonra kattintással nyomtathatod. Azért hagytam ki, mert most sárga hátterűek lesznek a címkék, azon biztosan akarsz majd változtatni a
Range("A1:H" & usor).Interior.ColorIndex = 6 sorban a 6 átírásával.
A probléma az, hogy 3db munkafüzet van, amihez 3db címkeoldal tartozik. A " komplett darab " az a szám, ami alapján a megfelelő mennyiségű címkét kellene kijelölni. Ne haragudjatok az amatőrködés miatt de ezidáig nem nagyon foglalkoztam ilyesmivel.
Ha a címkék a Munka2 lapon több oszlopban vannak, akkor az usor változót az oszlopok számával osztani kell, és szorozni 3-mal. Az előbb ez a szorzás lemaradt.
Köszönöm a segítséget, feltöltöttem az excel file-omat megauploadra, így jobban átlátható. Természetesen a vonalkód a megfelelő betűtípus nélkül nem fog megjelenni, de az nem is lényeges.
A Munka1 lap A1 cellájába írtam a darabszámot (120-at).
A Munka2 lapon vannak a nyomtatandó címkék, a példában mind az A oszlopban.
Sub Nyomt_ter() Dim usor As Integer
Sheets("Munka2").Select Cells.Interior.ColorIndex = xlAutomatic ' az előző terület színének visszaállítása usor = Sheets("Munka1").Cells(1).Value ActiveSheet.PageSetup.PrintArea = "$A$1:$A" & usor Range("A1:A" & usor).Interior.ColorIndex = 6 End Sub
A makró a Munka!A1 cellájában található számnak megfelelő sort jelöl ki nyomtatásra, és a hátterüket sárgára festi. Szerintem a színezés elé kellene tenni a nyomtatási parancsot, hacsak nem színes címkéket akarsz nyomtatni.
Ha a címkék a Munka2 lapon több oszlopban vannak, akkor az usor változót az oszlopok számával osztani kell, és természetesen a PrintArea is ennek megfelelően módosul.
Illetve még azon gondolkodtam, hogy ha 2 lapot csinálok a címkékből 2x80=160 és az első lapra 120-at írok akkor 40 db-ot el lehet rejteni a címkékből automatikusan a 120-as szám alapján.... lehet hogy hülyeség csak eszembe jutott. :) Vagy fordítva... elrejtem a címkéket pl 3x80-at és csak annyi x3 jelenik meg amilyen számot beírok az első táblázatba.
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