Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[EXCEL/VBA ] Tekstvak, opmaak opslaan als PNG in Sharepoint

Pagina: 1
Acties:

  • Frituurman
  • Registratie: februari 2008
  • Laatst online: 10:57
Hallo allen!

Ik ben wat aan het hobby'en en ik kom er niet uit. Ik heb onderstaande macro samengesteld uit een aantal andere macro's met het idee om alle grafieken in een worksheet te exporteren naar een specifieke map. Dit werkt als een zonnetje. Bestanden worden keurig geëxporteerd en qua naamgeving klopt het ook allemaal.

Maar nu wil ik deze eigenlijk herschrijven om niet een grafiek op te slaan, maar een tekstvak met opmaak (tekst met specifieke font, achtergrondplaatje, etc.). Nu heb ik al eens met Shape en TextFrame wat geëxperimenteerd, maar daar komt uiteindelijk geen plaatje uit. Wat moet ik doen om onderstaand script zo aan te passen dat ik een tekstvak vanuit excel als .PNG kan exporteren? Iemand ideeën? Ik ben eigenlijk een totale n00b op dit gebied.. :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Sub GrafiekenExporteren()

Dim WS As Excel.Worksheet
Dim SaveToDirectory As String
Dim objChrt As ChartObject
Dim myChart As Chart

SaveToDirectory = "\\dir\main\grafieken\"

For Each WS In ActiveWorkbook.Worksheets

    WS.Activate 'go there

    For Each objChrt In WS.ChartObjects

        objChrt.Activate

        Set myChart = objChrt.Chart

        myFileName = SaveToDirectory & WS.Name & "_" & objChrt.Index & ".png"

        On Error Resume Next

        Kill SaveToDirectory & WS.Name & Index & ".png"

        On Error GoTo 0

        myChart.Export Filename:=myFileName, Filtername:="PNG"

    Next

Next
 
MsgBox "De grafieken zijn succesvol geëxporteerd!"

End Sub

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh


  • F_J_K
  • Registratie: juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je hebt nu een lijst van ChartObjects. Je zult nu de textbox shape moeten pakken. Al heeft een Shape-object volgens mij geen export-functie. https://docs.microsoft.co...range.exportasfixedformat kan alleen exporteren als xps of pdf, zo te zien.

Een omweg kan misschien wel: kopieer je bereik (bijv A2:A5) als plaatje IN een chart. Vervolgens kan je de chart exporteren.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Frituurman
  • Registratie: februari 2008
  • Laatst online: 10:57
Thnx! Stom dat ik dit laatste niet zelf heb bedacht. :)

Ik loop nu wel tegen een ander probleem aan. Ik probeer de plaatjes te tonen in Chrome, maar omdat het om een lokaal adres gaat, wordt dat niet in Chrome getoond. Ik kan geen command line meegeven aan Chrome zodat hij local files wel accepteert. Dit is dichtgezet door systeembeheer hier. Prima, dacht ik. Dan plaatsen we het gedoetje toch 'gewoon' op Sharepoint. En ook dat heb ik voor elkaar, uiteindelijk. Bestanden worden geplaatst in een Sharepoint-bibliotheek. Maarrrr...

- Er is geen document eigenaar ingevuld
- En het document is standaard uitgechecked.

Hierdoor zijn de afbeeldingen op de sharepoint-pagina voor mij alleen beschikbaar (omdat ze standaard naar mij uitgechecked staan). Maar is er ook een manier om de Document-eigenaar mee te geven in het bovenstaande script en standaard de export ook ingechecked te laten zijn?

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh


  • F_J_K
  • Registratie: juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

:) Misschien kan je voor mensen die ook zoiets zoeken, de code hier plaatsen. Nuttig voor hen later.

Ik pas de topictitel aan zodat ook Sharepoint wordt genoemd.

Inhoudelijk: kan je de permissies niet aanpassen met iets als https://docs.microsoft.co...api/office.permission.add ? (Vraag ik, ik heb al jaren geen SP gebruikt).

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Frituurman
  • Registratie: februari 2008
  • Laatst online: 10:57
De code voor het tekstvak exporteren als plaatje is nu gelijk aan de eerst neergezette code, omdat het alle chartobjects in even worksheet als PNG exporteert. Dus nieuwe code posten hoeft nog niet.

De code om automatisch in te checken kan ik niet fixen met de pagina waar jij naar verwijst. Dat gaat volgens mij meer om permissies op het huidige bestand en niet voor het inchecken van het nieuw gegenereerde bestand. Hoe ik een 'owner' toe kan voegen zie ik ook niet 1-2-3. Zijn er mensen die eerder hiermee hebben geworsteld?

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh


  • Yukkie
  • Registratie: januari 2001
  • Laatst online: 10:27

Yukkie

Vorsprung Durch Technik

Als ik me niet vergis, is een file in SharePoint dat verplichte properties mist per definitie uitgechecked en alleen zichtbaar voor de owner of uploader van het file. Als de library die je gebruikt verder standaard is, dan kan het feit dat er geen owner aan is toegekend de reden zijn dat het document uitgechecked staat.

Maar hoe plaats je de files precies in SharePoint? En welke versie van SharePoint betreft het?

We've got that ring of confidence


  • Frituurman
  • Registratie: februari 2008
  • Laatst online: 10:57
En weer is de oplossing simpeler dan gedacht. Ik wou alles mooi gestructureerd in één bibliotheek zetten, maar voor (gegenereerde) bestanden wil Sharepoint dan graag een owner. Maarrrrrrr... bij een afbeeldingen bibliotheek is owner geen verplicht veld en kun je dus gewoon naar hartenlust uploaden via bovenstaand script. De bestanden kunnen dan ook 'gewoon' in Sharepoint worden gebruikt.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Sub GrafiekenExporteren()

//Stel de variabelen in
Dim WS As Excel.Worksheet
Dim SaveToDirectory As String
Dim objChrt As ChartObject
Dim myChart As Chart

//Stel de locatie in waar de grafieken uit Excel worden opgeslagen.
//Let op: De locatie moet al wel bestaan; de directory wordt niet vanzelf gemaakt!
SaveToDirectory = "\\dir\main\grafieken\"

//Onderstaande code activeert de verschillende grafieken binnen álle worksheets
//en maakt er vervolgens een PNG en op te slaan op de eerder aangemaakte locatie.
//Bestanden krijgen de naam van de Worksheet waar ze op staan met een nummer
//erachter, voor het geval er meerdere grafieken op één worksheet staan (_1, _2, etc.)
For Each WS In ActiveWorkbook.Worksheets

    WS.Activate 'go there

    For Each objChrt In WS.ChartObjects

        objChrt.Activate

        Set myChart = objChrt.Chart

        myFileName = SaveToDirectory & WS.Name & "_" & objChrt.Index & ".png"

        On Error Resume Next

        Kill SaveToDirectory & WS.Name & Index & ".png"

        On Error GoTo 0

        myChart.Export Filename:=myFileName, Filtername:="PNG"

    Next

Next

//Bevestiging van het succesvol exporteren van de grafieken. 
MsgBox "De grafieken zijn succesvol geëxporteerd!"

End Sub


@Yukkie Excel-sheet staat in een Sharepoint-bibliotheek. Het script kan op dezelfde Sharepoint vervolgens bestanden plaatsen. Works like a charm. Nu ook voor collega's. :)

[Voor 4% gewijzigd door Frituurman op 19-09-2018 08:31]

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh

Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True