Erreur Nom ou numéro de fichier incorrect

Résolu/Fermé
siamens_duj Messages postés 191 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 - Modifié par siamens_duj le 31/05/2016 à 09:31
siamens_duj Messages postés 191 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 - 31 mai 2016 à 13:29
Bonjour,

Je fais appel à vous car je suis sur un problème depuis quelques jours et je n'arrive pas
à le résoudre.

Je dispose de sharepoint et d'un classeur excel.
J'aimerais récupérer les noms des fichiers présents dans un de mes répertoire Sharepoit.

J'ai un code qui fonctionne dans un autre classeur, je l'ai donc copié afin de le mettre
dans mon nouveau classeur mais ici j'ai une erreur.

Cette erreur est "Nom ou numéro de fichier incorrect" sur Rep = Dir(path, vbDirectory)

Sub Liste()


Application.ScreenUpdating = False


Dim cmpt As Integer
Dim Rep As String
Dim path As String
Dim CheminFeuille As String


CheminFeuille = "https://etc .../"
CheminFeuille = Replace(Replace(CheminFeuille, "https:", ""), "/", "\")

path = CheminFeuille
Rep = Dir(path, vbDirectory)
Sheets("Liste").Select

Range("A1").Value = "Liste des fichiers"

'On initialise le cmpt
cmpt = 1

' Boucle tant que le répertoire n'a pas été entièrement parcouru
Do While (Rep <> "")

If (cmpt > 2) Then
'Sélection de la feuille où vont être répertorié les données
Range("A" & cmpt - 1).Value = Rep
End If

' Passe à l'élément suivant & incrémentation du compteur
Rep = Dir
cmpt = cmpt + 1

Loop

end sub


Merci pour votre aide.
A voir également:

1 réponse

Utilisateur anonyme
31 mai 2016 à 11:56
Bonjour Siamens_duj,

Ton code contient :

«
CheminFeuille = "https://etc .../"
CheminFeuille = Replace(Replace(CheminFeuille, "https:", ""), "/", "\")
»

Après tes 2 lignes de code ci-dessus, on a : CheminFeuille = "\\etc ...\"

Si tu remplaces la 2ème ligne par :
CheminFeuille = Replace(Replace(CheminFeuille, "https://", "\"), "/", "\")

Tu auras dans CheminFeuille : "\etc ...\" sans "\\" devant,
et ton erreur "Nom ou numéro de fichier incorrect" devrait
disparaître ; c'était dû au Path qui commençait par "\\".

-------------------------------------------

Si ça ne marche pas, essaye avec :
CheminFeuille = Replace(Replace(CheminFeuille, "https://", ""), "/", "\")

Tu auras dans CheminFeuille : "etc ...\"  (aucun "\" devant)

-------------------------------------------

Peut-être faudra-t-il encore adapter pour avoir le bon chemin
qui correspond à celui se trouvant sur ton disque dur C: ?

Si oui, je suis sûr que tu pourras y arriver par toi-même.

Cordialement.  😊

0
siamens_duj Messages postés 191 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 7
31 mai 2016 à 12:26
Bonjour et merci pour votre reponse.
J'ai fais ce que vous m'avez conseillé. Je n ai plus l'erreur cependant rien ne se copie ...
Le chemin est bon, c est un chemin sharepoint, pas un chemin sur mon disque ..
Merci pour votre aide.
0
siamens_duj Messages postés 191 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 7
31 mai 2016 à 12:38
Aussi, quand je met un espion sur path et sur Rep et que je met aussi des points d arrêt, path est bien égale au chemin mais Rep est vide. Es ce normal ?
0
Utilisateur anonyme > siamens_duj Messages postés 191 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019
Modifié par albkan le 31/05/2016 à 13:28
Je te laisse étudier mon code VBA ci-dessous, qui affiche la liste des fichiers
d'un répertoire donné (en mettant aussi leurs dates). Je l'ai mis tel que ; à toi
de le comprendre sachant que le résultat est en Feuil2 et qu'il y a sur Feuil1 :

En C6 le chemin complet du répertoire sur disque dur, tel que :
C:\Users\albkan\AppData\Roaming\Microsoft\Modèles
ou :
C:\Users\albkan\Documents\Compta

Sub Directory()
  On Error GoTo ErrFolder
  Const NomMacro As String * 9 = "Directory"
  Worksheets(1).Select
  If IsEmpty([C6]) Then MsgBox "C:\DossierX manquant...  ", 48, "Quel dossier ?": Exit Sub
  Dim DirX As Object, FileX As Object, ListFiles As Object, nb As Long, i As Long
  Set DirX = CreateObject("Scripting.FileSystemObject").GetFolder([C6])
  Set ListFiles = DirX.Files: With Worksheets(2): .Select: .Unprotect: .Cells.ClearContents: End With
  [B2] = Worksheets(1).[C6]
  With [B4]
    For Each FileX In ListFiles
      .Offset(i) = Format(FileX.DateLastModified, "dd/MM/yyyy    hh:mm")
      .Offset(i, 1) = FileX.Name: nb = nb + 1: i = i + 1: If nb Mod 4 = 0 Then i = i + 1
    Next FileX
    .Offset(i + 1, 1) = "Total : " & nb & " fichiers"
  End With
  ActiveSheet.Protect: Exit Sub
ErrFolder:
  MsgBox "Le dossier indiqué en C6 n'existe pas :  " & vbLf & [C6] & "  ", 48, "Macro " & NomMacro
End Sub

Regarde bien la ligne Set ListFiles = DirX.Files car ensuite, c'est l'instruction
For Each FileX In ListFiles qui parcourt tous les fichiers du répertoire.

Dans ton cas, C6 doit être remplacé par le nom du répertoire Sharepoint,
et ça devrait marcher. Tiens-moi au courant. A+  😊
 
0
siamens_duj Messages postés 191 Date d'inscription vendredi 20 juin 2014 Statut Membre Dernière intervention 14 février 2019 7
31 mai 2016 à 13:29
Mon code fonctionne !
Merci pour votre aide ;)
0