[ gogi100 @ 25.01.2016. 14:26 ] @
| imam excel 2010 dokument na sharepointu. Ovaj dokument u svom document properties sadrzi podatke iz sharepoint colona. Zeleo bih da ova polja stavim u excel celije. na netu sam nasao da to radi ova funkcija
Function docprop(Info_needed As String) As Variant
Application.Volatile
DocPropCustom = ThisWorkbook.ContentTypeProperties(Info_needed).Value
End Function
medjutim svaki put kad stavim u celiju =docprop("ime svojstva iz excelovog property koje je na srpskoj cirilici") dobijam gresku #value!. da li jeproblem sto su sva imena svojstava unicode formatu tj. serbian cirilyc? mozete li mi dati neku instrukciju?
hvala |
[ Jpeca @ 27.01.2016. 09:52 ] @
Nažalost ne mogu da probam pa odgovaram napamet, ali pokušaj da konvertuješ string u unicode
StrConv(Info_needed, vbUnicode)
http://www.techonthenet.com/excel/formulas/strconv.php
[ gogi100 @ 27.01.2016. 11:42 ] @
kad dodam liniju u kod
Function docprop(Info_needed As String) As Variant
Application.Volatile
DocPropCustom = ThisWorkbook.ContentTypeProperties(Info_needed).Value
DocPropCustom=StrConv(Info_needed, vbUnicode)
End Function
i ukucam u celiju =docprop("ime svojstva iz excelovog property koje je na srpskoj cirilici") dobijem u celiji vrednost 0
[ djoka_l @ 27.01.2016. 12:03 ] @
Tvoja funkcija ne vraća vrednost, zato što se zove "docprop", a ti dodeljuješ vrednost promenljivoj "DocPropCustom".
Osim toga StrConv(Info_needed, vbUnicode) koristiš na pogrešnom mestu:
Function docprop(Info_needed As String) As Variant
Application.Volatile
DocProp = ThisWorkbook.ContentTypeProperties(StrConv(Info_needed, vbUnicode)).Value
End Function
[ gogi100 @ 27.01.2016. 14:02 ] @
sad kad stavim vas kod
Function docprop(Info_needed As String) As Variant
Application.Volatile
docprop = ThisWorkbook.ContentTypeProperties(StrConv(Info_needed, vbUnicode)).Value
End Function
i u neku celiju excel-a
=docprop("Subjekt")
PS:Subjekt je cirilicno
dobijam #VALUE!
[ Jpeca @ 27.01.2016. 14:28 ] @
Napravio sam custom document property "test" (ćirilično) i u Excelu 2013 rezultat funkcije je ispavan bez ikakve konverzije - kao u tvojoj početnoj verziji sa ovom važnom izmenom koju je djoka_l naveo (docprop je naziv funkcije pa tu upisuješ rezultat)
Code: Function docprop(Info_needed As String) As Variant
Application.Volatile
docprop = ThisWorkbook.CustomDocumentProperties(Info_needed).Value
End Function
Pošto nemam odgovarajući ContentTypeProperties da testiram ovo mi se učinilo najpripližnije
[ djoka_l @ 27.01.2016. 14:36 ] @
Nemam taj slučaj, pa ne mogu da testiram. Pomozi nam da ti pomognemo. Kako je kod mene CustomDocumentProperties kolekcija prazna, napravio sam drugu test funkciju koja ispisuje kolekciju za koju znam da nije prazna.
Probaj test:
Code:
Sub test()
cnt = ThisWorkbook.CustomDocumentProperties.Count
curr = 1
For Each c In ThisWorkbook.CustomDocumentProperties
MsgBox curr & " of " & cnt & " : " & c.Name & "/" & c.Value
Next
End Sub
Sub test2()
cnt = ThisWorkbook.BuiltinDocumentProperties.Count
curr = 1
For Each c In ThisWorkbook.BuiltinDocumentProperties
MsgBox curr & " of " & cnt & ": " & c.Name & "/" & c.Value
curr = curr + 1
Next
End Sub
[ gogi100 @ 27.01.2016. 14:50 ] @
ja sam nasao na netu da se contenttypeproperties koristi da se u excel u document properties koriste sharepoint podaci a ne CustomDocumentProperties
[ djoka_l @ 27.01.2016. 14:54 ] @
OK, izmeni test rutinu tako da ti pokaže ono što hoćeš, pa reci šta si dobio...
[ gogi100 @ 27.01.2016. 18:46 ] @
kad kliknem na makro test
dobijam 8 dialog boksova kao na slikama, dok makro test prikazuje sve ok
[ gogi100 @ 27.01.2016. 20:39 ] @
Citat: Jpeca:
Napravio sam custom document property "test" (ćirilično) i u Excelu 2013 rezultat funkcije je ispavan bez ikakve konverzije - kao u tvojoj početnoj verziji sa ovom važnom izmenom koju je djoka_l naveo (docprop je naziv funkcije pa tu upisuješ rezultat)
Code: Function docprop(Info_needed As String) As Variant
Application.Volatile
docprop = ThisWorkbook.CustomDocumentProperties(Info_needed).Value
End Function
Pošto nemam odgovarajući ContentTypeProperties da testiram ovo mi se učinilo najpripližnije
probao sam i sa ovim resenjem dobijam #value!
[ Jpeca @ 28.01.2016. 15:00 ] @
Normalno je da dobiješ rezultat #Value u primeru koji si naveo, jer verovatno nemaš Custom Property sa tim imenom.
Da li si probao attachovan fajl? Ja sam tamo kreirao custom property i probao. AKo kod tebe ne radi onda ima veze sa verzijom Offica.
Ako kod tebe radi probaj da preparaviš kod u tom primeru i umesto CustomDocumentProperties stavi Contenttypeproperties. Onda u ćeliju A1 na listu Test upiši naziv svojstva koje znaš da imaš (ćirilično) i vidi šta se dešava.
[ gogi100 @ 28.01.2016. 20:37 ] @
Prepravio sam tvoj kod i dobio
Option Explicit
Function docprop(Info_needed As String) As Variant
Application.Volatile
' docprop = ThisWorkbook.CustomDocumentProperties(StrConv(Info_needed, vbFromUnicode)).Value
docprop = ThisWorkbook.ContentTypeProperties(Info_needed).Value
End Function
Sub list_All_Properties()
Dim iRow As Integer
Dim sh As Worksheet
Dim prop As Variant
iRow = 1
Set sh = ThisWorkbook.Sheets(7)
On Error Resume Next
'below loop will traverse for all items of this collection of properties
'For Each prop In ThisWorkbook.BuiltinDocumentProperties
For Each prop In ThisWorkbook.ContentTypeProperties.Count
sh.Range("A" & iRow).Value = prop.Name 'Property Name like "Author" etc
sh.Range("B" & iRow).Value = prop.Value 'Property value like Author name updated in proprty
iRow = iRow + 1
Next
End Sub
Sub Test()
MsgBox docprop(StrConv("òåñò", vbUnicode))
list_All_Properties
End Sub
Medjutim, dobijam 3 properties kad startujem makro list_All_Properties,koji mi nisu potrebni,ali ovih kojih mi trebaju ne prikazuje u sheet 7, a ima ih jos 4.
Ovi properties se pojavljuju u Dokument panelu koji se otvara kad kliknem na dugme Document panel u Developer ribbonu.
Ono sto sam primetio da u title dokument panela stoji Dokument(cirilicno) properties - Server. Da li mozda nekako da se VBA uputi na njega i podatke povuce odatle u neki prazan sheet, a onda izvrsim kopiranje nekog svojstva u odgovarajucu celiju sheet-a gde mi je to svojstvo potrebno?
[ djoka_l @ 29.01.2016. 08:21 ] @
Ovo je pogrešno:
For Each prop In ThisWorkbook.ContentTypeProperties.Count
treba
For Each prop In ThisWorkbook.ContentTypeProperties
[ gogi100 @ 29.01.2016. 09:14 ] @
izvini, moja greska pokusao sam i sa linijom
For Each prop In ThisWorkbook.ContentTypeProperties
ali mi prikazuje samo 3 properties koja nisu polja u sharepoint-u,a ovih drugih 4 ne prikazuje.
Pokusao sam i sa kodom gde je linija
For Each prop In ThisWorkbook.ContentTypeProperties.Count
prijavljuje mi gresku u kodu
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|