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.
Lehet félreérthetően fogalmaztam. Modulos felhasználói függvénnyel nem sikerült megoldani és a kereséseim is ebben erősítettek meg, hogy ezt azzal nem lehet megoldani.
'beolvasás For i = 1 To ActiveDocument.Paragraphs.Count ActiveDocument.Paragraphs(i).Range.Select szavak(i) = Selection Next i
'betűkre bont
For i = 1 To ActiveDocument.Paragraphs.Count For j = 1 To Len(szavak(i))
x = Asc(Mid(szavak(i), j, 1)) If x <> 13 Then betu(x) = betu(x) + 1 End If
Next j Next i
Documents.Add DocumentType:=wdNewBlankDocument
'kiírás 'For i = 1 To 255 ' If betu(i) > 0 Then ' Selection.TypeText Chr(i) & " " & Val(betu(i)) & Chr(13) ' End If 'Next i
For i = 1 To 255
If betu(i) > 0 Then For j = 1 To betu(i) ActiveDocument.Shapes.AddTextEffect(msoTextEffect1, Chr(i), "Arial Black", _ betumeret, msoFalse, msoFalse, oszlop, sor).Select oszlop = oszlop + oszlop_tav If oszlop > 500 Then oszlop = 60 sor = sor + sor_tav If sor > 600 Then Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.InsertBreak Selection.MoveLeft Unit:=wdCharacter, Count:=2 Selection.InsertParagraph Selection.GoTo wdGoToPage, wdGoToAbsolute, 1 Set objPage = ActiveDocument.ActiveWindow.Panes(1).Pages.Item(1) sor = 100 oszlop = 60 End If End If Next j
End If If betu(i) <> 0 Then ActiveDocument.SaveAs (hova_ment & Chr(i) & ".docx") ActiveDocument.Close Documents.Add DocumentType:=wdNewBlankDocument sor = 100 oszlop = 60 End If Next i
Szerintem azzal kell kezdeni, hogy a szövegeket betűikre szeded szét, függőleges, vagy vízszintes elosztással.
Ezután az első sort, vagy oszlopot átviszed Wordbe körlevélként, ott kedvedre formázhatod. Kinyomtatod az első színes lapra. Jöhet a következő sor, vagy oszlop, nyomtatás a 2. színes lapra.
Nem tudom hány db szó, de a karácsonnyal kapcsolatos.
Lehet 20, lehet 50, nem tudom.
A betüket körvonalként kell nyomtatni a színes papírra, mert ki lesznek vágva.
A példa: christmas ez 9 karakter, tehát 9 különféle színű lapra lenne kinyomtatva. Ha mondjuk a c betű lenne piros lapon, akkor a többi szóból kéne még annyi betű, hogy kitöltse a lapot, mondjuk olyan 8-10cm betűmagassággal.
Ha még így sem tiszta a lényege, akkor megoldatom valakivel, aki tud rá vmi programot írni. Én tuti nem fogok betűket sakkozni ehhez egyenként, hogy melyikből milyen szín hiányzik, ezért is gondoltam hátha van valami random vagy stb. excel függvény, ami ezt legyártaná kb.
Makróval lehet véletlen színválasztással különböző színű karakterekből álló szövegeket készíteni. Azt el lehet érni, hogy egy adott szóban ne legyenek egyforma színű karakterek. A karakter nagyságot is be lehet állítani.
Ezeket a szövegeket tartalmazó munkalapokat aztán ki lehet nyomtatni.
Ha gondolod, tudok rá használható makrót a jövő hét elején.
Nem teljesen fogom fel, de szerintem a papír a színes, nem a betű!
A színes papírokra akar több szóból véletlenszerűen betűket nyomtatni, legalábbis én ezt hámozom ki, lehet rosszul.
Mondjuk egy példa sokat segítene! Meg hogy mi alapján lenne keverve a szín. Egyáltalán milyen óriás mennyiségről van szó, hogy nem lehet kézzel összekalapálni.
Nem is igazán excel probléma, ha csak nincs ehhez vmi spec. függvény, de olyan dolgot kéne megoldani, hogy karácsonyi díszítéshez színes papírokra nyomtatandó feliratok betűit kellene úgy összekeverni, hogy adott szavak különféle, 8-10 színnel megjelenő betűkből álljanak.
Tehát pl. a christmas szót úgy kellene kinyomtatni, hogy 9 különféle színű papíron szerepeljenek a betűi, s nyilván nem 1 betűre akarnak 1 papírt elpocsékolni, hanem más szavakból származó betűk kellene rajta legyenek, hogy ne legyen színegyezés a rendes szónál.
Erre mit tudnátok ajánlani?
Gyakorlatilag mint ha egy kalapban összekevernénk a betűket és azt szeretnénk, hogy adott szóhoz minden betű más színű legyen…
Utána jártam egy kicsit a témának. Felhasználói függvényt nem lehet rá írni. Ez alatt azt értem, hogy modulként hozod létre és akkor tudnád használni, mint egy rendes beépített függvényt és dinamikusan frissülne is.
A végeredmény továbbfeljesztéseként mivel kel bővíteni a képletet, ha pl. A1 és A2 cellák tartalmát másolom össze A3 cellába úgy, hogy a két szövegrész között ALT+Enter a sortötrés legyen, és az első sor betűi fékövérek legyenek, a második maradjon normál? Makrót nem szeretnék használni.
Valamiért nem ismeri fel, hogy dátumot próbálsz meg bevinni.
Szerintem a következő a probléma: el van állítva a rendszer dátum formátuma vagy nem annak megfelelően próbálod bevinni a dátumot.
Nincs W11-em, de ha ugyan ott vannak a beállítások, akkor jobb klikk a tálcán a dátumon, majd "Dátum és időbeállítások", ott "Dátum, idő és regionális beállítások", majd "Adatformátumok módosítása", majd "További dátum-, idő- és területi beállítások", ott "Dátum, idő és számformátumok módosítása", majd "További beállítások", "Dátum" fül és itt láthatod a rövid és hosszú dátumformátumokat. Ezt módosítsd a neked megfelelőre és ennek megfelelően vidd be a dátumokat az excelbe. Ő ezeket fogja dátumként felismerni.