Bonjour à tous,

J'ai un problème sur lequel je me casse bien la tête depuis 2j, assez pour faire recours à un forum Excel, mais je suis sûr que j'y arriverais !
Mon problème est le suivant dans le cadre de mon travail je suis amené à améliorer un fichier de reporting, l'idée étant que la première cellule de mon tableau correspond à un nouveau code du type "FR-CAT-XXX(chiffre)-22".
L'objectif de ma venue sur ce Forum est de pouvoir créer un dossier avec ce nom de code dans mon sharepoint en ligne. (Donc clairement avec la selection de ma cellule)

J'ai d'ores et déjà réussis à trouver une Macro Excel me permettant de créer un dossier avec le nom de code dans un raccourcie que j'ai de ce sharepoint sur mon bureau (onedrive personnel).. et donc effectivement quand je test la macro sur l'ordinateur d'un collègue cela ne fonctionne pas car le chemin d'accès rentré dans la macro dépend de mon PC. (Mon collègue n'ayant pas le raccourcis Sharepoint sur son bureau car déconseillé par l'équipe pour des pbs de synchronisation... bref).

Ce pourquoi j'ai imaginé qu'il y'aurait surement la possibilité d'effectuer la même manip' vers le lien internet source de ce sharepoint et d'y créer le dossier directement sur le site. (Comme ça la macro peut être déclenchée par tout le monde et non pas que sur mon PC).

Si quelqu'un saurait coder ça ou du moins adapter le code ci-dessous qui a quand même les fonctions recherchées à savoir : Je crée une variable c je lui attribue le nom présent dans la cellule et je créer un dossier à tel emplacement avec le nom de la variable c.
Ci-dessous le code actuel:

Public Sub Creation_repertoire2()
Dim c
For Each c In Selection
MkDir "liens vers le dossier de mon raccourci Sharepoint" & c.Value
Next
End Sub



NB: j'ai déjà essayé de mettre le lien http en question à la place de l'emplacement du dossier mais ça ne fonctionnais pas bien évidement. :)

Je vous remercie d'avance pour vos retours sur déjà la faisabilité ou non de la tache.

CDT.
 

max.lander

XLDnaute Occasionnel
Bonjour à tous,

@Forcené des pb informatiq c'est pas très claire mais ci-dessous un début solution pour ce que j'ai compris

VB:
Sub UploadToSharepoint()

    Dim SharepointAddress As String
    Dim LocalAddress As String
    Dim FS As Object

    SharepointAddress = "\\share.xxx.com\tms\res\uppcaptracking\Test"

    LocalAddress = "c:\bl\bl\test.xlsx"

    Set FS = CreateObject("Scripting.FileSystemObject")

    If FS.FileExists(LocalAddress) Then
        FS.CopyFile LocalAddress, SharepointAddress
    End If

End Sub
 
Bonjour à tous,

@Forcené des pb informatiq c'est pas très claire mais ci-dessous un début solution pour ce que j'ai compris

VB:
Sub UploadToSharepoint()

    Dim SharepointAddress As String
    Dim LocalAddress As String
    Dim FS As Object

    SharepointAddress = "\\share.xxx.com\tms\res\uppcaptracking\Test"

    LocalAddress = "c:\bl\bl\test.xlsx"

    Set FS = CreateObject("Scripting.FileSystemObject")

    If FS.FileExists(LocalAddress) Then
        FS.CopyFile LocalAddress, SharepointAddress
    End If

End Sub

Merci pour ton aide n'hésites pas à me dire ce qui n'a pas été clair pour que je reformule, c'est vrai que c'est plus simple de le montrer en vrai que de l'expliquer à l'écrit ahah. (+ confidentialité entreprise qui ne facilite pas la chose)

Juste pour être sûr il faut que je rentre quoi dans LocalAddress ? je pense l'emplacement de mon fichier excel mais je suis pas sûr. D'ailleurs si il y'a d'autre lien à ajouter peux-tu me cibler lesquels s'il te plait ?

CDT.
 
J'ai testé, mais je pense que le problème c'est la ligne Localadress car comme expliqué dans mon texte plus haut, j'ai une locale adresse parce que j'ai crée un raccourci du sharepoint sur mon bureau (chose à ne pas faire normalement) donc le fichier que je modifie en local existe aussi sous un lien https.sharepoint.com. Je pense qu'il faudrait juste modifier ceci dans le code. (mais je ne sais pas du tout par quoi le remplacer).

et je veux bien que tu m'expliquer ce qu'est le FS = create object ?

CDT.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

[Pour infos]
NB: je bosse aussi avec Sharepoint
Pour pouvoir macroter avec Sharepont, il faut utiliser des paths UNC
C'est assez coton mais cela fonctionne
(Que ce soit en VBA ou VBScript)
C'est d'ailleurs du VBScript que la syntaxe proposée par max.lander

Je me permets de répondre pour FS
FS= FileSystem
(juste par convention usuelle)
 

max.lander

XLDnaute Occasionnel
Bonjour à tous,

Il s’agit d’une variable déclarée en tant qu’objet notamment pour permettre le traitement du fichier à uploader.

Mais je viens de comprendre que tu souhaites uniquement créer des répertoires.

Peut-être la solution en suivant ce lien
 
Dernière édition:
Bonjour à tous,

Il s’agit d’une variable déclarée en tant qu’objet notamment pour permettre le traitement du fichier à uploader.

Mais je viens de comprendre que tu souhaites uniquement créer des répertoires.

Peut-être la solution en suivant ce lien
Merci @max.lander je viens de jeter un oeil sur le ton lien, mais il n'y a aucune info du publieur que le code ait bien fonctionné, mais en effet, j'ai exactement le même objectif que lui à savoir :

--> Créer un dossier ayant le même nom que ma cellule excel directement sur sharepoint (sous un lien https).
 
Bonjour le fil

[Pour infos]
NB: je bosse aussi avec Sharepoint
Pour pouvoir macroter avec Sharepont, il faut utiliser des paths UNC
C'est assez coton mais cela fonctionne
(Que ce soit en VBA ou VBScript)
C'est d'ailleurs du VBScript que la syntaxe proposée par max.lander

Je me permets de répondre pour FS
FS= FileSystem
(juste par convention usuelle)
Bonjour Staple1600,

Merci pour l'info je découvre totalement le secteur. J'ai jeté un coup d'œil vers ton lien sur les paths UNC je pense qu'il me manque des notions pour comprendre tout ça ahah.

Si jamais tu peux solutionner le précédent code à l'aide de tes connaissances en VBScript je suis preneur :)
 
UPDATE pour ceux qui m'ont aidé :

VB:
Sub Upload()

    Dim SharepointAddress As String
    
    Dim c
    
    SharepointAddress = "\\blablabla.sharepoint.com\sites\ddddd\Shared Documents\"

For Each c In Selection
 
  MkDir "SharepointAddress" & c.Value
 
    Next

End Sub


Voici l'adaptation de mon code après quelques heures de plus passées sur le sujet. Je n'arrive pas à trouver une fonction pour créer un dossier (équivalent de MkDir vers des liens https://) et je pense qu'après ça sera bon :)

Merci par avance pour vos corrections :)
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Comme promis
Enrichi (BBcode):
Const SERVER_PATH As String = "\\root\subfolderA\subfolderB\test\" 'ADAPTER avec un path Sharepoint valide
Sub Creer_arbo_B()
'créér arborescence sur ressource Sharepoint
Application.ScreenUpdating = False
Dim folderPath$, i&, d_L&
d_L = Cells(Rows.Count, 1).End(3).Row
For i = 1 To d_L
folderPath = SERVER_PATH & ActiveSheet.Cells(i, "A").Text
With CreateObject("Scripting.FileSystemObject")
    If Not .FolderExists(folderPath) Then .CreateFolder folderPath
End With
Next
End Sub
NB: Faire les adaptations idoines

Voici comment je procède au boulot
  • 1) je créé un lecteur réseau qui pointe sur le ressource Sharepoint
  • 2) Je lance la macro ci-dessus
    =>les noms des dossiers à créer sont en colonne 1 de A1 à AX (ou X = dernière ligne non vide de la colonne A)
Les dossiers sont bien créés
 

Discussions similaires

Réponses
10
Affichages
205
Réponses
5
Affichages
290