vb: 31 in Indesign moet linken met veld A1:36 in Excel
bvd Hans
Groet,
Ton
Ik zal wat duidelijker zijn: ik weet dat Indesgn scriptable is en er allerleiscript standaard inzitten, ik hoopte dat er zoiets al was
groet Hans
Via Google ook veel te vinden, zoeken op indesign excel plugin.
Succes
Kijk eens bij http://instantindesign.com/index.php?view_category=Data%20Merge voor meer info en ook een tutorial.
Succes!
Met een plug-in is de link actief. Veranderd de waarde in je excel document dan wordt dit automatisch bijgewerkt in je InDesign document.
Klopt mijn aanname hansmac123?
Het probleem zit hem in de voorwaarde die ligt besloten in de inhoud van een tekstframe, en daar helpt datamerge niet.En daarvan weet ik zo niet of de Catalog-plugin van Woodwing in de oplossing voorziet.Maar, er is een trial-versie te downloaden dus dat zou je kunnen onderzoeken.
De InDesign Scripting Guide biedt wel een paar aanknopingspunten.De inhoud van een tekstframe is op te vragen en te testen, en de waarde van een Excel-cel is afhankelijk van de uitkomst al dan niet te gebruiken.Maar ja, dat kost mij drie maanden...
Is er een script-guru in de zaal?
Wijzigt jou excel bestand dan maak je daar een nieuw csv bestand van met dezelfde naam. Via het link panel in Indesign kun je dan zo je document updaten. Hoef je geen dure plugin voor te hebben hoor.
Momenteel werk ik zelf aan een document dat bestaat uit 19 velden met data (tekst, getallen en afbeeldingen) en als ik dat merge met een 1600 records van een csv bestand geeft dat geen problemen.
Je kan behoorlijk wat handige dingen doen met gegevenssamenvoegen. Zolang je input maar goed is.
Maar misschien dat HansMac een wat duidelijker voorbeeld kan geven wat hij exact wil bereiken. Er zijn namelijk vele wegen die naar Rome leiden.
Tot slot: ik zie geen mogelijkheid met datamerge tot hetzelfde resultaat te komen.
Het script:
global vervset theWorkbookFile to choose file with prompt "Kies het Excel-bestand:"set theWorkbookName to name of (info for theWorkbookFile)tell application "Microsoft Excel" open theWorkbookFile set theWorkbook to active workbook tell worksheet "Sheet1" of active workbook --set value of cell "A1" to "Ik ben cel A1" set verv to value of cell "A1" --display dialog (verv & return) end tellend telltell application "Adobe InDesign CS5" set myDocument to document 1 if (count text frames of myDocument) = 0 then set myErrorMessage to "Geen leeg document!" error end if repeat with myCounter from 1 to (count text frames of myDocument) select text frame myCounter of myDocument set myTextFrame to text frame myCounter of myDocument if contents of word 1 of myTextFrame is "Zoektekst" then --beep --display dialog ("B I N G O !" & return) set contents of myTextFrame to verv end if set Teller to Teller + 1 end repeatend tell
set theWorkbookFile to choose file with prompt "Kies het Excel-bestand:"set theWorkbookName to name of (info for theWorkbookFile)tell application "Microsoft Excel" open theWorkbookFile set theWorkbook to active workbook tell worksheet "Sheet1" of active workbook --set value of cell "A1" to "Ik ben cel A1" set verv to value of cell "A1" --display dialog (verv & return) end tellend tell
tell application "Adobe InDesign CS5" set myDocument to document 1 if (count text frames of myDocument) = 0 then set myErrorMessage to "Geen leeg document!" error end if repeat with myCounter from 1 to (count text frames of myDocument) select text frame myCounter of myDocument set myTextFrame to text frame myCounter of myDocument if contents of word 1 of myTextFrame is "Zoektekst" then --beep --display dialog ("B I N G O !" & return) set contents of myTextFrame to verv end if set Teller to Teller + 1 end repeatend tell
Jammer dat hansmac niet even komt vertellen wat de status van zijn projectje is.
Ik zelf ben nog niet veel verder gekomen, maar lees alles met belangstelling en zie dat er nog vragen zijn met wat ik precies bedoel. Ik probeer het goed neer te leggen: Ik heb een Excel bestand met daarin 1400 rubrieken in een colom, in een colom ervoor een code: A1-1: EADE1 (code) A2-1: Bakkersartikelen.In Indesign maak ik een tekstframe en wil daarin alleen EADE1 invoeren en wanneer ik een return of wat dan ook geen dit automatisch wordt vervangen door Bakkersartikelen.Ik hoop dat ik wat duidelijker ben zo
alvast bedankt voor de feedback Hans
In dat Indesign document is dat een document van 1 pagina waar dan deze info in moet komen of wil je van al die artikelen (of een deel van de lijst) die in je Excellijst staan een pagina? Heb je maar twee velden dan per pagina die variabel zijn, de input code en het retour veld of moeten er nog meer gegevens van het Excelblad jou document in.
Hoe ziet jou eindresultaat eruit of wat wil je bereiken? Als het gaat om meerdere pagina's met gegevens van een enkele cel of in de geval van twee cellen zou ik toch kiezen voor datamerge. De waarde's die je wel of niet wilt hebben zou ik in Excel eruit filteren. Hoe lang is die lijst in Excel? Gaat het om 100 artikelen of 10.000
@tonpja ben er inmiddels achter dat applescript veel kan. Heb er nog niet zoveel mee gewerkt, maar voor mezelf heb ik iets in automator/applescript gemaakt wat pdf's uiteen ript en wegzet etc. Scheelt een hoop werk in ieder geval start het op en kan dan even een uur iets anders gaan doen zonder erbij te moeten blijven voor het beste resultaat
Uitgangspunt is een geselecteerd InDesign tekstframe.We zoeken in een Excel-tabel naar de inhoud van dat tekstframe (zoekstring) en - indien gevonden - halen uit de naastliggende cel de vervangstring.Vervolgens worden van alle tekstframes met als inhoud de zoekstring die inhoud vervangen door de vervangstring.
Neem het script op in het Scripts-panel, ken er een sneltoets aan toe en draaien maar.Veel plezier ermee.
global vervangstringglobal zoekstringtell application "Adobe InDesign CS5" set myDocument to document 1 if class of selection is text frame then set myTextFrame to item 1 of selection set zoekstring to word 1 of myTextFrame --display dialog (zoekstring & return) end ifend tellset theWorkbookFile to choose file with prompt "Kies het Excel-bestand:"set theWorkbookName to name of (info for theWorkbookFile)tell application "Microsoft Excel" open theWorkbookFile set fc to (find (range "A:A" of worksheet "Sheet1") what zoekstring) set celadres to (get address fc) set doelcel to get offset range (celadres) column offset 1 set vervangstring to value of (doelcel) --display dialog (vervangstring & return)end telltell application "Adobe InDesign CS5" set myDocument to document 1 repeat with myCounter from 1 to (count text frames of myDocument) select text frame myCounter of myDocument set myTextFrame to text frame myCounter of myDocument if contents of word 1 of myTextFrame is zoekstring then --display dialog ("B I N G O !" & return) set contents of myTextFrame to vervangstring end if end repeatend tell(* Inhoud Excel-bestand: A B1 Code Rubriek2 EADE1 Bakkersartikelen3 EADE2 Slagersartikelen4 EADE3 Kruideniersartikelen*)
tell application "Adobe InDesign CS5" set myDocument to document 1 if class of selection is text frame then set myTextFrame to item 1 of selection set zoekstring to word 1 of myTextFrame --display dialog (zoekstring & return) end ifend tell
set theWorkbookFile to choose file with prompt "Kies het Excel-bestand:"set theWorkbookName to name of (info for theWorkbookFile)tell application "Microsoft Excel" open theWorkbookFile set fc to (find (range "A:A" of worksheet "Sheet1") what zoekstring) set celadres to (get address fc) set doelcel to get offset range (celadres) column offset 1 set vervangstring to value of (doelcel) --display dialog (vervangstring & return)end tell
tell application "Adobe InDesign CS5" set myDocument to document 1 repeat with myCounter from 1 to (count text frames of myDocument) select text frame myCounter of myDocument set myTextFrame to text frame myCounter of myDocument if contents of word 1 of myTextFrame is zoekstring then --display dialog ("B I N G O !" & return) set contents of myTextFrame to vervangstring end if end repeatend tell
(* Inhoud Excel-bestand:
A B1 Code Rubriek2 EADE1 Bakkersartikelen3 EADE2 Slagersartikelen4 EADE3 Kruideniersartikelen*)