Bonjour à tous,
Je vous expose mon problème ci-dessous.
J'ai réalisé une macro qui crée des fichiers, lesquels fichiers sont destinés à être mis en ligne sur une librairie SharePoint. Dans cette librairie, 2 variables ont un champ requis obligatoire : "Code_Fic" et "Codes_Pays" :
* "Code_Fic" : Variable unidimensionnelle, ayant pour valeurs un type de fichier (ex : "A", "B", "C"...)
* "Codes_Pays" : Variable bidimensionnelle ayant pour valeurs des couples de codes de pays (ex : "FR, US", "GE, IT", "ES, PT"...)
En préambule, je travaille sur le SharePoint via une connexion à un lecteur réseau.
Ma 1ère solution a été d'utiliser les propriétés personnalisées d'Excel ("Custom Properties"). J'ai créé, dans un fichier produit, une propriété personnalisée "Code_Fic" avec pour valeur "A". J'ai enregistré le fichier sur mon disque et je l'ai copié-collé sur le SharePoint. La valeur "A" a bien été lue et s'est bien affichée dans la colonne "Code_Fic". Le problème intervient avec la variable "Codes_Pays". Je ne savais pas comment coder 2 codes dans une valeur de propriété personnalisée. J'ai donc entré "FR, US". Cette valeur est bien affichée sur la librairie du SharePoint dans la colonne "Codes_Pays", sauf que l'utilisation du filtre montre que cette valeur n'est pas lue correctement. En effet, "FR, US" est vu comme une seule chaîne de caractère, alors que ça devrait être lu comme "FR" code pays 1 et "US" code pays 2. J'ai essayé d'entrer des valeurs avec d'autres séparateurs, avec ou sans espaces ("FR-US", "FR ; US", "FR_US"...), mais rien à faire, la valeur n'est pas lue correctement.
Ma 2ème solution a été d'enregistrer directement le fichier produit sur le SharePoint. Pour cela, il faut un 1er enregistrement test, dont on gère l'erreur, pour afficher les "Content Type Properties", qui sont donc les 2 variables requises. Ensuite, j'entre les valeurs pour chaque variable, en utilisant dans VBA un tableau à 2 dimensions ("Tab_Codes_Pays(0)" et "Tab_Codes_Pays(1)") pour entrer les codes des 2 pays. Comme, dans la librairie du SharePoint, des listes ont été définies pour chaque variable, il faut bien faire attention à entrer des codes qui appartiennent bien à ces listes, sans quoi l'enregistrement final déclenchera une erreur et le fichier ne pourra pas être enregistré. J'enregistre donc le fichier une 2ème fois, de manière définitive. Cette fois-ci, le filtre de la colonne "Codes_Pays" marche bien. A titre de précision, j'ai testé le fait de copier-coller le fichier produit sur le SharePoint puis de l'ouvrir pour éviter le 1er enregistrement test qui provoque une erreur. Mais cela prend encore plus de temps.
La 2ème solution est satisfaisante, mais elle prend plus de temps que la 1ère : environ 6-7 sec vs 1-2 sec pour 1 fichier. Vu que je produis 900 fichiers, cela fait une différence très importante.
* Est-il possible, dans ma 1ère solution, de taguer une variable bidimensionnelle (qui nécessite 2 valeurs) avec une propriété personnalisée ?
* Si tel n'est pas le cas, y'a-t-il une solution plus rapide et efficace avec VBA que ma 2ème solution ?
Merci d'avance pour votre aide.
Cordialement.
Je vous expose mon problème ci-dessous.
J'ai réalisé une macro qui crée des fichiers, lesquels fichiers sont destinés à être mis en ligne sur une librairie SharePoint. Dans cette librairie, 2 variables ont un champ requis obligatoire : "Code_Fic" et "Codes_Pays" :
* "Code_Fic" : Variable unidimensionnelle, ayant pour valeurs un type de fichier (ex : "A", "B", "C"...)
* "Codes_Pays" : Variable bidimensionnelle ayant pour valeurs des couples de codes de pays (ex : "FR, US", "GE, IT", "ES, PT"...)
En préambule, je travaille sur le SharePoint via une connexion à un lecteur réseau.
Ma 1ère solution a été d'utiliser les propriétés personnalisées d'Excel ("Custom Properties"). J'ai créé, dans un fichier produit, une propriété personnalisée "Code_Fic" avec pour valeur "A". J'ai enregistré le fichier sur mon disque et je l'ai copié-collé sur le SharePoint. La valeur "A" a bien été lue et s'est bien affichée dans la colonne "Code_Fic". Le problème intervient avec la variable "Codes_Pays". Je ne savais pas comment coder 2 codes dans une valeur de propriété personnalisée. J'ai donc entré "FR, US". Cette valeur est bien affichée sur la librairie du SharePoint dans la colonne "Codes_Pays", sauf que l'utilisation du filtre montre que cette valeur n'est pas lue correctement. En effet, "FR, US" est vu comme une seule chaîne de caractère, alors que ça devrait être lu comme "FR" code pays 1 et "US" code pays 2. J'ai essayé d'entrer des valeurs avec d'autres séparateurs, avec ou sans espaces ("FR-US", "FR ; US", "FR_US"...), mais rien à faire, la valeur n'est pas lue correctement.
Ma 2ème solution a été d'enregistrer directement le fichier produit sur le SharePoint. Pour cela, il faut un 1er enregistrement test, dont on gère l'erreur, pour afficher les "Content Type Properties", qui sont donc les 2 variables requises. Ensuite, j'entre les valeurs pour chaque variable, en utilisant dans VBA un tableau à 2 dimensions ("Tab_Codes_Pays(0)" et "Tab_Codes_Pays(1)") pour entrer les codes des 2 pays. Comme, dans la librairie du SharePoint, des listes ont été définies pour chaque variable, il faut bien faire attention à entrer des codes qui appartiennent bien à ces listes, sans quoi l'enregistrement final déclenchera une erreur et le fichier ne pourra pas être enregistré. J'enregistre donc le fichier une 2ème fois, de manière définitive. Cette fois-ci, le filtre de la colonne "Codes_Pays" marche bien. A titre de précision, j'ai testé le fait de copier-coller le fichier produit sur le SharePoint puis de l'ouvrir pour éviter le 1er enregistrement test qui provoque une erreur. Mais cela prend encore plus de temps.
La 2ème solution est satisfaisante, mais elle prend plus de temps que la 1ère : environ 6-7 sec vs 1-2 sec pour 1 fichier. Vu que je produis 900 fichiers, cela fait une différence très importante.
* Est-il possible, dans ma 1ère solution, de taguer une variable bidimensionnelle (qui nécessite 2 valeurs) avec une propriété personnalisée ?
* Si tel n'est pas le cas, y'a-t-il une solution plus rapide et efficace avec VBA que ma 2ème solution ?
Merci d'avance pour votre aide.
Cordialement.