Jump to content
GSForum - Segélyvonal

Körlevélvarázsló diagrammal - vagy más megoldás


vmiki

Recommended Posts

vmiki

Olyan problémám lenne, hogy van egy viszonylag sok soros (több, mint 100) excel, amely minden sora egy-egy adatlap adatai lennének. (név, kód, megjegyzés, stb). Ebből körlevélvarázslóval tervezném az adatlapokat létrehozni Word-del, ami megy is szépen, kivéve az a része, hogy minden egyes ilyenhez tartozna egy diagram is. Azt meg lehetne valahogy oldani, hogy szintén az Excel fájlból vegyen hozzá adatokat? Vagy más megoldás esetleg van erre, szívesen fogadnék 1-2 tippet :) Gondolom makro kell, ha másképp nem megy, de azt annyira nem ismerem.

Link to comment
Share on other sites

vmiki

Azt tudom, hogy hogyan lehet Excel diagramot Word-be rakni :) A probléma az, hogy mindezt kvázi automatizálni szeretném. Úgy, ahogy a körlevélvarázsló pl név, cím, stb-t átvesz excelből, adott diagram értékeit is onnan vegye át.

Link to comment
Share on other sites

Temporary

Talán ezt kerested?

"Ha az Excel diagramot csatolással szeretnénk beilleszteni, azaz ha azt szeretnénk hogy a Word dokumentumban lévő diagram az eredeti Excel munkafüzet minden módosításakor frissüljön, akkor kattintsunk a Csatolás Excel diagramhoz beállításra."

 

Vagy a Beszúrás > Objektum > MS Excel diagram?

 

Melyik Office-t használod?

------szerk

Kezdem érteni pontosan mit is szeretnél :) sajnos, ugyanis már én is látom az office ilyen irányú korlátait, de még nem adom fel. Nézegess vissza, mert van ötletem csak ki kell próbálnom, ha lesz egy kis időm rá.

Link to comment
Share on other sites

vmiki

Akkor ok :) Automatikusan akarom, hogy a 200 sor adathoz külön-külön elkészüljön a word-ben a diagram. Sajnos próbálkoztam már sokmindennel de nem ment. Még Access jelentéssel próbálkozom, de az a Word-höz képest alapból elég ronda...

Link to comment
Share on other sites

Temporary

Az a gond, hogy a word-ben lévő diagram egy spéci saját excel táblából (Microsoft Office Word programbeli diagram.xlsx) veszi az adatokat. Ezt sajnos eddig csak úgy sikerült applikálnom a körlevél törzsdokumentumába, hogy minden diagram az első adatsor értékeit tartalmazta.

 

Végső esetben (brute force módon :) ) írni lehetne hozzá egy VB kódot, ami megnyitja a (félkész)leveleket és módosítja az alapdiagramot.

 

Vagy még egyszerűbb: Egyesével elkészíteni a leveleket az adattábla adataiból.

Link to comment
Share on other sites

vmiki

Nagyon köszönöm, hogy foglalkozok a témával. Sajnos én is itt akadok el és egyszerűen nem tudok rájönni. A kézi beillesztgetés csak nagyon végső megoldás lenne, mert 360 sorról van szó, mindegyikhez 2 diagram, az meg 720... :)

 

Access-ben a módszer működne, de ott meg csak a nagyon gusztustalan Office 97 kinézetű diagramok (vagy a még régebbi fekete-fehér) vannak, nem is tudom feldolgozni, hogy az Access 2013-ban ezt hogy sikerült bennehagyni. :(

Link to comment
Share on other sites

  • 1 month later...
Temporary

Nos vmiki azóta sem jelentkezett, hogy jó lett-e neki, de a megoldás megszületett.

Így néz ki a törzsdokumentum:TDOK.jpg

Ez pedig az adatforrás:

XLS.jpg

 

Az excel tábla első sora tartalmazza majd a megjelenítendő adatokat A munkafüzet másik két lapján pedig megjelennek az ezekből készült diagramok.

DIAG1.jpg

 

DIAG2.jpg

 

A törzsdokumentum úgy készül, hogy az excel táblázat első sorában lévő cellát (ebbe kerül mindig az épp megjelenítendő tartalom) másolom. Majd a Word-ben Irányított beillesztés > Csatolás > Nem formázott szöveg. A diagramokat Irányított beillesztés > Csatolás > MSO excel diagram.

 

A két fájlt egy C:\TESZT mappába kell tenni. A "Rekordok" fájlt kell csak elindítani, és az abban található makrót. Ugyanebbe a mappába jönnek létre a kész levelek.

 

Ez most csak a fentebb írt mappában és ezekkel a fájlnevekkel működik. Természetesen meg lehet változtatni őket makró megfelelő sorainak átírásával és a törzsdokumentumot megnyitva az "Office menü > Előkészítés > Fájlhivatkozások szerkesztése" (legalsó) ablakában, a forrás fáj helyének újbóli beállításával:

 

CSATI.jpg

 

 

Végül a kód:

Sub korlevel()
    Rows("1:1").Select
    Selection.ClearContents
    For sor = 3 To 5
    Rows(sor).Select
    Selection.Copy
    'Az első sor tartalmazza a készülő dokumentum adatait
    Range("A1").Select
    ActiveSheet.Paste

    'Erre nem biztos hogy szükség van.
    'Nálam azért kell, mert a 2000 is telepítve van:
TaskID = Shell("c:\Program Files\Office 2007\Office12\WINWORD.EXE") '2007
    'Törzsdokumentum megnyitása
Set wdApp = GetObject(, "Word.Application")
wdApp.Documents.Open ("c:\TESZT\értékelés.docx")
	    'ellenőrzi van e nyitva dokumentum
    On Error Resume Next
    On Error GoTo 0
    If wdApp Is Nothing Then
				    MsgBox "Word dokumentum nem található"
		    Exit Sub
    End If
    If wdApp.Documents.Count > 0 Then

		    'ez frissíti a csatolásokat
	    wdApp.Activedocument.Fields.Update
    End If
wdApp.Activate
'egyedi levél létrehozása
Const wdFormatXMLDocument As Long = 12
wdApp.Activedocument.saveas Filename:= _
"c:\TESZT\" & "ok" & sor - 2 & ".docx"
'csatolások megszünteése
wdApp.Activedocument.Fields.Unlink
'újra mentés
wdApp.Activedocument.saveas Filename:= _
"c:\TESZT\" & "ok" & sor - 2 & ".docx"
'word bezárás
wdApp.Quit
Set wdApp = Nothing
Next sor
Rows("1:1").Select
    Selection.ClearContents
Stop
End Sub

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...