ਸ਼ੇਅਰਪੁਆਇੰਟ-ਲਿੰਕਡ ਐਕਸਲ ਟੈਂਪਲੇਟਸ ਵਿੱਚ ਉਪਭੋਗਤਾ ਦੀ ਗਤੀਵਿਧੀ ਨੂੰ ਟਰੈਕ ਕਰਨਾ
ਇੱਕ ਹਲਚਲ ਵਾਲੇ ਦਫ਼ਤਰ ਦੀ ਕਲਪਨਾ ਕਰੋ ਜਿੱਥੇ ਕਈ ਉਪਭੋਗਤਾ ਆਪਣੇ ਫਾਰਮ ਜਮ੍ਹਾਂ ਕਰਾਉਣ ਲਈ ਇੱਕੋ ਸ਼ੇਅਰਪੁਆਇੰਟ ਟੈਂਪਲੇਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦੇ ਹਨ। 🖥️ ਚੁਣੌਤੀ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਇੱਕ ਆਡੀਟਰ ਨੂੰ ਇਹ ਪਛਾਣ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਕਿ ਇੱਕ ਖਾਸ ਫਾਰਮ ਕਿਸਨੇ ਭਰਿਆ ਅਤੇ ਜਮ੍ਹਾ ਕੀਤਾ। ਜਦੋਂ ਕਿ ਸ਼ੇਅਰਪੁਆਇੰਟ "ਸਿਰਜਣਹਾਰ" ਕਾਲਮ ਦੇ ਅਧੀਨ ਇਸ ਜਾਣਕਾਰੀ ਨੂੰ ਲੌਗ ਕਰਦਾ ਹੈ, ਐਕਸਲ ਸ਼ੀਟ ਦੇ ਫੁੱਟਰ ਵਿੱਚ ਉਪਭੋਗਤਾ ਦੇ ਨਾਮ ਨਾਲ ਇੱਕ ਹਾਰਡ ਕਾਪੀ ਪ੍ਰਿੰਟ ਕਰਨ ਦੀ ਲੋੜ ਪੂਰੀ ਨਹੀਂ ਹੁੰਦੀ ਹੈ।
ਇਹ ਕੰਮ ਗੁੰਝਲਦਾਰ ਬਣ ਜਾਂਦਾ ਹੈ ਕਿਉਂਕਿ ਡਿਫੌਲਟ VBA ਫੰਕਸ਼ਨ ਜਿਵੇਂ ਕਿ ਐਪਲੀਕੇਸ਼ਨ.ਯੂਜ਼ਰਨੇਮ ਅਤੇ ਵਾਤਾਵਰਨ("ਉਪਭੋਗਤਾ ਨਾਮ") ਫਾਰਮ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰਨ ਵਾਲੇ ਅਸਲ ਉਪਭੋਗਤਾ ਦੀ ਬਜਾਏ ਅਕਸਰ ਅਸਲ ਟੈਂਪਲੇਟ ਨਿਰਮਾਤਾ ਜਾਂ ਸਥਾਨਕ ਮਸ਼ੀਨ ਉਪਭੋਗਤਾ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੇ ਹਨ। ਇਸ ਤਰ੍ਹਾਂ, ਸਹੀ ਉਪਭੋਗਤਾ ਨਾਮ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਸੰਮਿਲਿਤ ਕਰਨ ਲਈ ਇੱਕ ਭਰੋਸੇਯੋਗ ਢੰਗ ਲੱਭਣਾ ਮਹੱਤਵਪੂਰਨ ਬਣ ਜਾਂਦਾ ਹੈ।
ਅਸਲ-ਸੰਸਾਰ ਦੇ ਦ੍ਰਿਸ਼ਾਂ ਵਿੱਚ, ਇਹ ਅੰਤਰ ਆਡਿਟਿੰਗ ਅਤੇ ਟਰੈਕਿੰਗ ਵਿੱਚ ਅਸ਼ੁੱਧੀਆਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਮੇਰੀ ਪਿਛਲੀ ਭੂਮਿਕਾ ਵਿੱਚ, ਸਾਡੇ ਕੋਲ ਇੱਕ ਮੁੱਦਾ ਸੀ ਜਿੱਥੇ ਬਾਹਰੀ ਠੇਕੇਦਾਰਾਂ ਦੁਆਰਾ ਭਰੇ ਗਏ ਫਾਰਮ ਹਮੇਸ਼ਾ ਪ੍ਰਿੰਟਆਊਟ ਵਿੱਚ ਪ੍ਰਸ਼ਾਸਕ ਦਾ ਉਪਯੋਗਕਰਤਾ ਨਾਮ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਆਡਿਟ ਦੌਰਾਨ ਮਹੱਤਵਪੂਰਨ ਉਲਝਣ ਪੈਦਾ ਹੁੰਦਾ ਹੈ।
ਇਹ ਲੇਖ ਇਸ ਗੱਲ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ VBA, SharePoint ਏਕੀਕਰਣ, ਅਤੇ ਕੁਝ ਸਮਾਰਟ ਟਵੀਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਹਨਾਂ ਰੁਕਾਵਟਾਂ ਨੂੰ ਕਿਵੇਂ ਬਾਈਪਾਸ ਕਰ ਸਕਦੇ ਹੋ। ਅੰਤ ਤੱਕ, ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਵਿਹਾਰਕ ਹੱਲ ਹੋਵੇਗਾ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਹਰੇਕ ਪ੍ਰਿੰਟ ਕੀਤਾ ਫਾਰਮ ਉਸ ਵਿਅਕਤੀਗਤ ਉਪਭੋਗਤਾ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿਸਨੇ ਇਸਨੂੰ ਜਮ੍ਹਾਂ ਕੀਤਾ ਹੈ। ਆਓ ਅੰਦਰ ਡੁਬਕੀ ਕਰੀਏ! 🔍
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
ActiveSheet.PageSetup.LeftFooter | ਐਕਸਲ ਵਿੱਚ ਕਿਰਿਆਸ਼ੀਲ ਵਰਕਸ਼ੀਟ ਦੇ ਫੁੱਟਰ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਸੰਦਰਭ ਵਿੱਚ, ਇਹ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਫੁੱਟਰ ਵਿੱਚ ਇੱਕ ਉਪਭੋਗਤਾ ਨਾਮ ਅਤੇ ਮਿਤੀ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ। |
ListObjects.Add | ਵਰਕਸ਼ੀਟ ਅਤੇ "ਸਿਰਜਣਹਾਰ" ਖੇਤਰ ਵਰਗੇ ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ ਸ਼ੇਅਰਪੁਆਇੰਟ ਦਸਤਾਵੇਜ਼ ਲਾਇਬ੍ਰੇਰੀ ਵਰਗੇ ਇੱਕ ਬਾਹਰੀ ਡਾਟਾ ਸਰੋਤ ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਕਨੈਕਸ਼ਨ ਬਣਾਉਂਦਾ ਹੈ। |
CreateObject("MSXML2.XMLHTTP") | API ਕਾਲਾਂ ਕਰਨ ਲਈ ਇੱਕ HTTP ਬੇਨਤੀ ਆਬਜੈਕਟ ਨੂੰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ ਇੱਕ SharePoint REST API ਤੋਂ ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। |
InStr | ਇੱਕ ਸਤਰ ਦੇ ਅੰਦਰ ਇੱਕ ਸਬਸਟਰਿੰਗ ਦੀ ਸਥਿਤੀ ਲੱਭਦਾ ਹੈ। ਇੱਥੇ, ਇਸਦੀ ਵਰਤੋਂ SharePoint API ਤੋਂ JSON ਜਵਾਬ ਵਿੱਚ "ਸਿਰਜਣਹਾਰ" ਖੇਤਰ ਨੂੰ ਲੱਭਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। |
Mid | ਇੱਕ ਸ਼ੁਰੂਆਤੀ ਸਥਿਤੀ ਅਤੇ ਲੰਬਾਈ ਦੇ ਆਧਾਰ 'ਤੇ ਇੱਕ ਸਟ੍ਰਿੰਗ ਤੋਂ ਇੱਕ ਸਬਸਟ੍ਰਿੰਗ ਕੱਢਦਾ ਹੈ। SharePoint API ਦੇ JSON ਜਵਾਬ ਤੋਂ ਉਪਭੋਗਤਾ ਨਾਮ ਨੂੰ ਪਾਰਸ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
BuiltinDocumentProperties | ਐਕਸਲ ਵਰਕਬੁੱਕ ਦੀਆਂ ਮੈਟਾਡੇਟਾ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ "ਸਿਰਜਣਹਾਰ" ਸੰਪੱਤੀ, ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਉਸ ਉਪਭੋਗਤਾ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਜਿਸਨੇ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਹੈ। |
Range("A1") | ਕਿਸੇ ਬਾਹਰੀ ਸਰੋਤ, ਜਿਵੇਂ ਕਿ SharePoint ਮੈਟਾਡੇਟਾ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਡੇਟਾ ਨੂੰ ਰੱਖਣ ਲਈ ਸ਼ੁਰੂਆਤੀ ਸੈੱਲ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ। |
On Error Resume Next | ਕੋਡ ਨੂੰ ਐਗਜ਼ੀਕਿਊਟ ਕਰਨਾ ਜਾਰੀ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਭਾਵੇਂ ਕੋਈ ਤਰੁੱਟੀ ਵਾਪਰਦੀ ਹੈ, ਇੱਥੇ ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਦੌਰਾਨ ਕ੍ਰੈਸ਼ਾਂ ਨੂੰ ਰੋਕਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। |
responseText | API ਕਾਲ ਤੋਂ HTTP ਜਵਾਬ ਦੇ ਮੁੱਖ ਭਾਗ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ SharePoint REST API ਦੁਆਰਾ ਵਾਪਸ ਕੀਤਾ JSON ਡੇਟਾ ਰੱਖਦਾ ਹੈ। |
ParseJSONForCreator | ਇੱਕ JSON ਜਵਾਬ ਸਟ੍ਰਿੰਗ ਤੋਂ "ਸਿਰਜਣਹਾਰ" ਖੇਤਰ ਦੇ ਮੁੱਲ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਲਈ ਇੱਕ ਕਸਟਮ ਫੰਕਸ਼ਨ। |
ਐਕਸਲ ਫੁਟਰਾਂ ਨੂੰ ਡਾਇਨਾਮਿਕ ਸ਼ੇਅਰਪੁਆਇੰਟ ਉਪਭੋਗਤਾ ਨਾਮਾਂ ਨਾਲ ਅਨੁਕੂਲਿਤ ਕਰਨਾ
ਪੇਸ਼ ਕੀਤੇ ਗਏ ਹੱਲਾਂ ਦਾ ਉਦੇਸ਼ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਪ੍ਰਾਪਤ ਕਰਨਾ ਅਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਹੈ ਸ਼ੇਅਰਪੁਆਇੰਟ "ਸਿਰਜਣਹਾਰ" ਇੱਕ ਐਕਸਲ ਵਰਕਸ਼ੀਟ ਦੇ ਫੁੱਟਰ ਵਿੱਚ ਉਪਭੋਗਤਾ ਨਾਮ। ਇਹ ਲੋੜ ਉਹਨਾਂ ਸਥਿਤੀਆਂ ਵਿੱਚ ਪੈਦਾ ਹੁੰਦੀ ਹੈ ਜਿੱਥੇ ਇੱਕ ਤੋਂ ਵੱਧ ਉਪਭੋਗਤਾ ਸ਼ੇਅਰਪੁਆਇੰਟ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਸਾਂਝੇ ਟੈਮਪਲੇਟ ਦੇ ਅਧਾਰ ਤੇ ਫਾਰਮ ਜਮ੍ਹਾਂ ਕਰਦੇ ਹਨ, ਅਤੇ ਆਡੀਟਰਾਂ ਨੂੰ ਸਪਸ਼ਟ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਪਹਿਲੀ ਸਕ੍ਰਿਪਟ ਐਕਸਲ ਦੇ ਮੂਲ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ ਪੰਨਾ ਸੈੱਟਅੱਪ ਫੁੱਟਰ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਅਨੁਕੂਲਿਤ ਕਰਨ ਲਈ ਕਾਰਜਕੁਸ਼ਲਤਾ। ਸ਼ੇਅਰਪੁਆਇੰਟ ਮੈਟਾਡੇਟਾ ਪਹੁੰਚ ਦੇ ਨਾਲ VBA ਵਿਧੀਆਂ ਨੂੰ ਜੋੜ ਕੇ, ਇਹ ਸਕ੍ਰਿਪਟ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਫੁੱਟਰ ਉਸ ਉਪਭੋਗਤਾ ਦੇ ਉਪਭੋਗਤਾ ਨਾਮ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜਿਸ ਨੇ ਫਾਰਮ ਨੂੰ ਪੂਰਾ ਕੀਤਾ ਹੈ, ਨਾ ਕਿ ਅਸਲ ਸਿਰਜਣਹਾਰ ਨੂੰ।
ਉਦਾਹਰਨ ਲਈ, ਪਹਿਲਾ ਹੱਲ ਲਾਭ ਉਠਾਉਂਦਾ ਹੈ ListObjects.Add SharePoint ਦੀ ਦਸਤਾਵੇਜ਼ ਲਾਇਬ੍ਰੇਰੀ ਨਾਲ ਲਾਈਵ ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਨ ਲਈ। ਇਹ ਕਮਾਂਡ ਮੈਟਾਡੇਟਾ ਨੂੰ ਵਰਕਬੁੱਕ ਵਿੱਚ ਖਿੱਚਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਕਤਾਰਾਂ ਰਾਹੀਂ ਦੁਹਰਾਉਣਾ ਅਤੇ "ਸਿਰਜਣਹਾਰ" ਖੇਤਰ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨਾ ਸੰਭਵ ਹੋ ਜਾਂਦਾ ਹੈ। ਕਲਪਨਾ ਕਰੋ ਕਿ ਇੱਕ ਵਿਭਾਗ ਪਾਲਣਾ ਫਾਰਮ ਜਮ੍ਹਾਂ ਕਰ ਰਿਹਾ ਹੈ—ਹਰੇਕ ਸਬਮਿਸ਼ਨ ਦਾ ਫੁੱਟਰ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਜ਼ਿੰਮੇਵਾਰ ਕਰਮਚਾਰੀ ਦੀ ਪਛਾਣ ਕਰੇਗਾ, ਆਡਿਟ ਦੀਆਂ ਅਸਪਸ਼ਟਤਾਵਾਂ ਨੂੰ ਦੂਰ ਕਰੇਗਾ। ਇਹ ਵਿਧੀ ਲਚਕਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਅਤੇ ਫਾਰਮ ਯੋਗਦਾਨੀਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਹੱਥੀਂ ਦਖਲਅੰਦਾਜ਼ੀ ਨੂੰ ਰੋਕਦੀ ਹੈ। 🚀
ਦੂਜੀ ਪਹੁੰਚ SharePoint ਦੇ REST API ਦਾ ਫਾਇਦਾ ਉਠਾਉਂਦੀ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਕੇ CreateObject("MSXML2.XMLHTTP") ਕਮਾਂਡ, ਸਕ੍ਰਿਪਟ ਸਿੱਧੇ ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ HTTP ਬੇਨਤੀ ਸ਼ੁਰੂ ਕਰਦੀ ਹੈ। ਇਹ ਵਿਧੀ ਖਾਸ ਤੌਰ 'ਤੇ ਉਹਨਾਂ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਲਾਭਦਾਇਕ ਹੈ ਜਿੱਥੇ ਸ਼ੇਅਰਪੁਆਇੰਟ ਲਾਇਬ੍ਰੇਰੀਆਂ ਗੁੰਝਲਦਾਰ ਹਨ ਜਾਂ ਬਹੁਤ ਸਾਰੇ ਖੇਤਰ ਹਨ। ਜਿਵੇਂ ਫੰਕਸ਼ਨਾਂ ਨਾਲ JSON ਜਵਾਬ ਨੂੰ ਪਾਰਸ ਕਰਨਾ InStr ਅਤੇ ਮੱਧ "ਸਿਰਜਣਹਾਰ" ਖੇਤਰ ਦੇ ਸਟੀਕ ਐਕਸਟਰੈਕਸ਼ਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਮੇਰੀ ਪਿਛਲੀ ਭੂਮਿਕਾ ਵਿੱਚ, ਇੱਕ ਸਮਾਨ ਸਕ੍ਰਿਪਟ ਸਟ੍ਰੀਮਲਾਈਨ ਫਾਰਮ ਟਰੈਕਿੰਗ, ਹਰ ਮਹੀਨੇ ਮੈਨੂਅਲ ਮੇਲ-ਮਿਲਾਪ ਦੇ ਘੰਟਿਆਂ ਦੀ ਬਚਤ ਕਰਦੀ ਹੈ। 🖋️
ਅੰਤਿਮ ਸਕ੍ਰਿਪਟ ਆਫਿਸ 365 ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਦੀ ਹੈ, ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਬਿਲਟ-ਡਾਕੂਮੈਂਟ ਪ੍ਰਾਪਰਟੀਜ਼ ਵਰਕਬੁੱਕ ਦੇ ਮੈਟਾਡੇਟਾ ਨੂੰ ਸਿੱਧੇ ਐਕਸੈਸ ਕਰਨ ਲਈ ਕਮਾਂਡ। ਇਹ ਸਕ੍ਰਿਪਟ ਉਹਨਾਂ ਸੰਸਥਾਵਾਂ ਲਈ ਸਭ ਤੋਂ ਢੁਕਵੀਂ ਹੈ ਜੋ Office 365 ਦੀ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਅਤੇ REST API ਜਟਿਲਤਾਵਾਂ ਤੋਂ ਬਿਨਾਂ ਇੱਕ ਹਲਕੇ ਹੱਲ ਦੀ ਲੋੜ ਹੈ। ਹਰੇਕ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਮਾਡਿਊਲਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹੁੰਦੀਆਂ ਹਨ, ਜੋ ਉਹਨਾਂ ਨੂੰ ਹੋਰ ਸ਼ੇਅਰਪੁਆਇੰਟ-ਏਕੀਕ੍ਰਿਤ ਵਰਕਫਲੋ ਲਈ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਬਣਾਉਂਦੀਆਂ ਹਨ। ਉਦਾਹਰਨ ਲਈ, ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਸਬਮਿਸ਼ਨ ਟਾਈਮਸਟੈਂਪ ਜਾਂ ਵਿਭਾਗ ਦੇ ਨਾਮ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਅਨੁਕੂਲ ਬਣਾ ਸਕਦੇ ਹੋ, ਉਹਨਾਂ ਦੀ ਆਡਿਟ ਉਪਯੋਗਤਾ ਨੂੰ ਹੋਰ ਵਧਾ ਸਕਦੇ ਹੋ।
ਹੱਲ 1: ਸ਼ੇਅਰਪੁਆਇੰਟ ਮੈਟਾਡੇਟਾ ਦੁਆਰਾ ਉਪਭੋਗਤਾ ਨਾਮ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨਾ
ਸ਼ੇਅਰਪੁਆਇੰਟ ਮੈਟਾਡੇਟਾ ਤੋਂ "ਸਿਰਜਣਹਾਰ" ਖੇਤਰ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਅਤੇ ਇਸਨੂੰ ਐਕਸਲ ਫੁੱਟਰ ਵਿੱਚ ਜੋੜਨ ਲਈ VBA ਦੀ ਵਰਤੋਂ ਕਰਨਾ।
Sub AddUsernameFromSharePoint()
Dim ws As Worksheet
Dim sharePointUsername As String
Dim listObj As Object
Dim spURL As String
Dim row As Object
On Error Resume Next
' Set your SharePoint site and library path here
spURL = "https://your-sharepoint-site/documents/"
Set ws = ActiveSheet
' Access metadata of the current workbook in SharePoint
Set listObj = ws.ListObjects.Add(
SourceType:=xlSrcExternal,
Source:=spURL,
Destination:=Range("A1")
)
' Loop through rows to find "creator"
For Each row In listObj.ListRows
If row.Range(1, 1).Value = "creator" Then
sharePointUsername = row.Range(1, 2).Value
Exit For
End If
Next row
' Update footer with username
ws.PageSetup.LeftFooter = "SUBMITTED BY: " & sharePointUsername & " on " & Date
On Error GoTo 0
End Sub
ਹੱਲ 2: SharePoint REST API ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉਪਭੋਗਤਾ ਨਾਮ ਪ੍ਰਾਪਤ ਕਰਨਾ
"ਸਿਰਜਣਹਾਰ" ਖੇਤਰ ਤੋਂ ਉਪਭੋਗਤਾ ਨਾਮ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ SharePoint ਦੇ REST API ਨਾਲ Excel VBA ਨੂੰ ਜੋੜਨਾ।
Sub FetchUsernameWithAPI()
Dim http As Object
Dim jsonResponse As String
Dim username As String
Dim ws As Worksheet
Set http = CreateObject("MSXML2.XMLHTTP")
Set ws = ActiveSheet
' API endpoint to fetch metadata
apiURL = "https://your-sharepoint-site/_api/web/lists/getbytitle('Documents')/items"
' Make GET request
http.Open "GET", apiURL, False
http.setRequestHeader "Accept", "application/json;odata=verbose"
http.Send
' Parse response for "creator" field
jsonResponse = http.responseText
username = ParseJSONForCreator(jsonResponse)
' Add username to footer
ws.PageSetup.LeftFooter = "SUBMITTED BY: " & username & " on " & Date
End Sub
Function ParseJSONForCreator(jsonResponse As String) As String
' Basic parsing logic to extract "creator" value
Dim pos As Integer
Dim creatorValue As String
pos = InStr(jsonResponse, """creator"":")
creatorValue = Mid(jsonResponse, pos + 10, InStr(pos + 10, jsonResponse, ",") - pos - 10)
ParseJSONForCreator = creatorValue
End Function
ਹੱਲ 3: VBA ਏਕੀਕਰਣ ਦੇ ਨਾਲ Office 365 ਔਨਲਾਈਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ
ਇੱਕ ਸਹਿਜ ਸ਼ੇਅਰਪੁਆਇੰਟ ਏਕੀਕਰਣ ਲਈ Office 365 ਔਨਲਾਈਨ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਨਾਲ Excel ਦੀਆਂ VBA ਸਮਰੱਥਾਵਾਂ ਨੂੰ ਜੋੜਨਾ।
Sub AddFooterFromO365()
Dim ws As Worksheet
Dim o365User As String
Set ws = ActiveSheet
' Assume user is logged in to Office 365
o365User = Application.UserName
' Fetch creator data from workbook properties
If ActiveWorkbook.BuiltinDocumentProperties("Creator") <> "" Then
o365User = ActiveWorkbook.BuiltinDocumentProperties("Creator")
End If
' Add to footer
ws.PageSetup.LeftFooter = "SUBMITTED BY: " & o365User & " on " & Date
End Sub
ਵਿਸਤ੍ਰਿਤ ਆਡਿਟਿੰਗ ਲਈ ਐਕਸਲ VBA ਨਾਲ ਸ਼ੇਅਰਪੁਆਇੰਟ ਡੇਟਾ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ
ਸ਼ੇਅਰਪੁਆਇੰਟ ਦੇ ਨਾਲ ਐਕਸਲ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਨ ਦਾ ਇੱਕ ਅਕਸਰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ ਗਿਆ ਪਹਿਲੂ ਹੈ ਦੋ ਪਲੇਟਫਾਰਮਾਂ ਵਿਚਕਾਰ ਮੈਟਾਡੇਟਾ ਦਾ ਸਹਿਜ ਪ੍ਰਵਾਹ। VBA ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ, ਤੁਸੀਂ ਮਹੱਤਵਪੂਰਨ ਮੈਟਾਡੇਟਾ ਖੇਤਰਾਂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਲਈ ਬੁਨਿਆਦੀ ਆਟੋਮੇਸ਼ਨ ਤੋਂ ਪਰੇ ਜਾ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ ਉਪਭੋਗਤਾ ਨਾਮ ਟੈਮਪਲੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਵਿਅਕਤੀ ਦੀ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਕਸਟਮ ਐਕਸਲ ਫੁੱਟਰ ਜਾਂ ਸਿਰਲੇਖਾਂ ਵਿੱਚ ਵਰਤੋ। ਇਹ ਕਾਰਜਕੁਸ਼ਲਤਾ ਪਾਲਣਾ ਵਰਗੇ ਹਾਲਾਤਾਂ ਵਿੱਚ ਜ਼ਰੂਰੀ ਹੈ, ਜਿੱਥੇ ਹਰ ਸਪੁਰਦ ਕੀਤੇ ਫਾਰਮ ਨੂੰ ਇਸ ਦੇ ਮੁਕੰਮਲ ਹੋਣ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਵਿਅਕਤੀ ਲਈ ਸਪਸ਼ਟ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਇੱਕ ਹੋਰ ਉਪਯੋਗੀ ਪਹੁੰਚ ਵਿੱਚ SharePoint ਦੀ ਵਿਆਪਕ ਮੈਟਾਡੇਟਾ ਸਮਰੱਥਾਵਾਂ ਦਾ ਲਾਭ ਲੈਣਾ ਸ਼ਾਮਲ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਕਾਲਮ ਜਿਵੇਂ ਕਿ "ਸੋਧਿਆ ਗਿਆ" ਜਾਂ "ਆਖਰੀ ਸੋਧਿਆ" ਟਰੈਕਿੰਗ ਅਤੇ ਪੁਸ਼ਟੀਕਰਨ ਲਈ ਵਾਧੂ ਸੰਦਰਭ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦਾ ਹੈ। VBA ਦੁਆਰਾ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਇਸ ਡੇਟਾ ਨੂੰ ਖਿੱਚਣ ਨਾਲ, ਤੁਹਾਡੇ ਐਕਸਲ ਟੈਂਪਲੇਟਸ ਨਾ ਸਿਰਫ ਸਹੀ ਉਪਭੋਗਤਾ ਜਾਣਕਾਰੀ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ ਬਲਕਿ ਮੈਨੂਅਲ ਐਂਟਰੀ ਗਲਤੀਆਂ ਦੀ ਸੰਭਾਵਨਾ ਨੂੰ ਵੀ ਘਟਾਉਂਦੇ ਹਨ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਟੀਮ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਕੀਮਤੀ ਹੈ, ਜਿੱਥੇ ਬਹੁਤੇ ਉਪਭੋਗਤਾ ਸਾਂਝੇ ਟੈਂਪਲੇਟਾਂ 'ਤੇ ਸਹਿਯੋਗ ਕਰਦੇ ਹਨ। 🖇️
ਅੰਤ ਵਿੱਚ, ਸੰਗਠਨਾਂ ਦੁਆਰਾ SharePoint ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਤਰੀਕੇ ਵਿੱਚ ਸੰਭਾਵੀ ਭਿੰਨਤਾਵਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਕੁਝ ਵਿੱਚ ਕਸਟਮ ਕਾਲਮ ਜਾਂ ਮੈਟਾਡੇਟਾ ਖੇਤਰ ਹੋ ਸਕਦੇ ਹਨ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਅਨੁਕੂਲਿਤ VBA ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਮਾਡਿਊਲਰ ਕੋਡਿੰਗ ਅਭਿਆਸਾਂ, ਜਿਵੇਂ ਕਿ API ਕਾਲਾਂ ਨੂੰ ਡੇਟਾ ਫਾਰਮੈਟਿੰਗ ਤੋਂ ਵੱਖ ਕਰਨਾ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਹੱਲ ਅਜਿਹੇ ਭਿੰਨਤਾਵਾਂ ਨੂੰ ਸਕੇਲ ਜਾਂ ਅਨੁਕੂਲ ਕਰ ਸਕਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਪਿਛਲੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ, ਅਸੀਂ ਇਸ ਪਹੁੰਚ ਦੀ ਵਰਤੋਂ ਆਪਣੇ ਆਪ ਸੰਖੇਪ ਰਿਪੋਰਟਾਂ ਤਿਆਰ ਕਰਨ ਲਈ ਕੀਤੀ ਹੈ ਜੋ ਸ਼ੇਅਰਪੁਆਇੰਟ ਤੋਂ ਐਕਸਲ ਵਰਕਬੁੱਕ ਵਿੱਚ ਸਿੱਧੇ ਉਪਭੋਗਤਾ ਦੀ ਗਤੀਵਿਧੀ ਨੂੰ ਇਕੱਠਾ ਕਰਦੀ ਹੈ। 🚀
SharePoint ਅਤੇ VBA ਏਕੀਕਰਣ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- ਮੈਂ VBA ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਐਕਸਲ ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਇੱਕ ਉਪਭੋਗਤਾ ਨਾਮ ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਵਰਤ ਕੇ CreateObject("MSXML2.XMLHTTP"), ਤੁਸੀਂ SharePoint ਦੇ REST API ਨੂੰ ਕਾਲ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਪਾਰਸ ਕਰ ਸਕਦੇ ਹੋ "creator" ਮੈਟਾਡਾਟਾ ਖੇਤਰ।
- ਕਿਉਂ ਕਰਦਾ ਹੈ Application.UserName ਅਸਲੀ ਸਿਰਜਣਹਾਰ ਦਾ ਨਾਮ ਵਾਪਸ ਕਰਨਾ ਹੈ?
- ਇਹ ਕਮਾਂਡ ਸਥਾਨਕ ਐਕਸਲ ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਲ ਜੁੜੇ ਉਪਭੋਗਤਾ ਦਾ ਨਾਮ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ, ਜੋ ਸ਼ੇਅਰਪੁਆਇੰਟ ਟੈਂਪਲੇਟ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਵਾਲੇ ਉਪਭੋਗਤਾ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ ਹੋ ਸਕਦੀ।
- VBA ਵਿੱਚ JSON ਜਵਾਬਾਂ ਨੂੰ ਪਾਰਸ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਕੀ ਹੈ?
- ਦੇ ਸੁਮੇਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ InStr ਅਤੇ Mid, ਤੁਸੀਂ JSON ਜਵਾਬ ਤੋਂ ਖਾਸ ਡੇਟਾ ਖੇਤਰ, ਜਿਵੇਂ ਕਿ "ਸਿਰਜਣਹਾਰ" ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰ ਸਕਦੇ ਹੋ।
- ਕੀ ਮੈਂ ਐਕਸਲ ਫੁੱਟਰ ਵਿੱਚ "ਆਖਰੀ ਸੋਧ" ਵਰਗੇ ਹੋਰ ਸ਼ੇਅਰਪੁਆਇੰਟ ਖੇਤਰਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਤੁਸੀਂ SharePoint's API ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਲਟੀਪਲ ਮੈਟਾਡੇਟਾ ਖੇਤਰਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਆਪਣੀ ਸਕ੍ਰਿਪਟ ਦਾ ਵਿਸਤਾਰ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਉਹਨਾਂ ਨੂੰ Excel ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਫਾਰਮੈਟ ਕਰ ਸਕਦੇ ਹੋ। PageSetup.
- ਕੀ ਕਈ ਟੈਂਪਲੇਟਾਂ ਲਈ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਵੈਚਲਿਤ ਕਰਨਾ ਸੰਭਵ ਹੈ?
- ਬਿਲਕੁਲ। ਤੁਸੀਂ ਇੱਕ ਸਕ੍ਰਿਪਟ ਡਿਜ਼ਾਇਨ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਸ਼ੇਅਰਪੁਆਇੰਟ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਕਈ ਟੈਂਪਲੇਟਾਂ ਰਾਹੀਂ ਲੂਪ ਕਰਦੀ ਹੈ, ਹਰੇਕ ਲਈ ਉਪਭੋਗਤਾ-ਵਿਸ਼ੇਸ਼ ਡੇਟਾ ਦੇ ਨਾਲ ਫੁੱਟਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਦੀ ਹੈ।
ਡਾਇਨਾਮਿਕ ਫੁੱਟਰ ਕਸਟਮਾਈਜ਼ੇਸ਼ਨ 'ਤੇ ਅੰਤਿਮ ਵਿਚਾਰ
ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਸ਼ੇਅਰਪੁਆਇੰਟ ਟੈਂਪਲੇਟ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਵਿਅਕਤੀ ਦਾ ਉਪਯੋਗਕਰਤਾ ਨਾਮ ਇੱਕ ਐਕਸਲ ਫੁੱਟਰ ਵਿੱਚ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਜਵਾਬਦੇਹੀ ਅਤੇ ਟਰੇਸੇਬਿਲਟੀ ਦੋਵਾਂ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦਾ ਹੈ। VBA ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਲਾਭ ਲੈਣ ਵਾਲੇ ਹੱਲ ਇਸ ਲੋੜ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ ਅਨੁਕੂਲਿਤ ਅਤੇ ਸਕੇਲੇਬਲ ਪਹੁੰਚ ਪੇਸ਼ ਕਰਦੇ ਹਨ।
ਉੱਨਤ ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤੀ ਵਿਧੀਆਂ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਕੇ, ਜਿਵੇਂ ਕਿ API, ਜਾਂ ਬਿਲਟ-ਇਨ ਦਸਤਾਵੇਜ਼ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਸੰਸਥਾਵਾਂ ਵਰਕਫਲੋ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਸਵੈਚਲਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ। ਇਹ ਨਾ ਸਿਰਫ਼ ਸਮੇਂ ਦੀ ਬਚਤ ਕਰਦਾ ਹੈ, ਸਗੋਂ ਸਟੀਕ ਆਡਿਟਿੰਗ ਨੂੰ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ, ਪਾਲਣਾ-ਭਾਰੀ ਉਦਯੋਗਾਂ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ। 🚀
VBA ਅਤੇ SharePoint ਏਕੀਕਰਣ ਲਈ ਹਵਾਲੇ ਅਤੇ ਸਰੋਤ
- ਐਕਸਲ ਫੁਟਰਾਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ VBA ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ ਇਸ ਬਾਰੇ ਵਿਸਥਾਰ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ: ਮਾਈਕ੍ਰੋਸਾੱਫਟ VBA ਦਸਤਾਵੇਜ਼
- ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤੀ ਲਈ ਸ਼ੇਅਰਪੁਆਇੰਟ ਦੀਆਂ REST API ਸਮਰੱਥਾਵਾਂ ਦੀ ਵਿਆਖਿਆ ਕਰਦਾ ਹੈ: Microsoft SharePoint REST API ਗਾਈਡ
- SharePoint ਵਰਕਫਲੋ ਅਤੇ ਟੈਮਪਲੇਟ ਪ੍ਰਬੰਧਨ 'ਤੇ ਸੂਝ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ: ਸ਼ੇਅਰਗੇਟ - ਸ਼ੇਅਰਪੁਆਇੰਟ ਮੈਟਾਡੇਟਾ ਵਧੀਆ ਅਭਿਆਸ
- ਉੱਨਤ API ਜਵਾਬਾਂ ਲਈ VBA ਵਿੱਚ JSON ਪਾਰਸਿੰਗ ਬਾਰੇ ਚਰਚਾ ਕਰਦਾ ਹੈ: ਐਕਸਲ ਮੈਕਰੋ ਪ੍ਰੋ - JSON ਪਾਰਸਿੰਗ