Renommer et déplacer un fichier

modus57

XLDnaute Occasionnel
Bonjour.:)

Malgré plusieurs recherches sur les forums je n’ai pas trouvé de solution.

Si j’utilise l'instruction Name :
Code:
Name "C:\Mes documents\Jurassic Park.pdf" As "C:\Mes documents\Jurassic Park - Copie.pdf"
Dans ce cas pas soucis.

Par contre si j’utilise des variables :
Code:
Dim CheminAncienNomDocument As String, CheminNouveauNomDocument As String
CheminAncienNomDocument = TextBox1 & "\" & ListBox1.List(ListBox1.ListIndex)
CheminNouveauNomDocument = TextBox3 & "\" & ComboBox1 & "\" & ComboBox2 & "\" & ComboBox3 & "\" & ListBox2.List(ListBox2.ListIndex)
La syntaxe
Code:
Name CheminAncienNomDocument  As CheminNouveauNomDocument
génère l’erreur suivante: « Erreur d’exécution 75 : Erreur d’accès Chemin/Fichier »

Ou la méthode fso :
Code:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile CheminNouveauNomDocument, CheminNouveauNomDocument
génère l’erreur suivante :« Erreur d’exécution 70 : permission refusée »

Je n’arrive pas à trouver une solution, avez-vous une réponse.

Merci d’avance.
 
Dernière édition:

modus57

XLDnaute Occasionnel
Re : Renommer et déplacer un fichier

Bonjour Pierrot93.

Merci pour votre réponse.

J'ai vérifié mes variables avant l'exécution de l'instruction "name" avec Debug.Print, à prime abord elles semblent correctes.

En utilisant LTrim cela ne fonctionne pas.

En ajoutant (.Text) aux TextBox et aux ComBoBox ça change rien.

CheminAncienNomDocument pointe sur C:\ et CheminNouveauNomDocument pointe sur I:\ sur clé USB, je ne pense pas que ce soit un problème.

Je ne sais plus quoi faire.

@ ++
 

modus57

XLDnaute Occasionnel
Re : Renommer et déplacer un fichier

Re,

La longueur du texte du chemin en dur est égal à x caractères + les guillemets, alors que la longueur du texte du chemin dans les variables est égal à x caractères sans les guillemets.

Comment corriger les syntaxes :
Code:
CheminAncienNomDocument = TextBox1 & "\" & ListBox1.List(ListBox1.ListIndex)
CheminNouveauNomDocument = TextBox3 & "\" & ComboBox1 & "\"  & ComboBox2 & "\" & ComboBox3 & "\" &  ListBox2.List(ListBox2.ListIndex)
et
Code:
Name CheminAncienNomDocument  As CheminNouveauNomDocument
Si c'est la cause du problème ?
 

modus57

XLDnaute Occasionnel
Re : Renommer et déplacer un fichier

Bonsoir Pierrot93.

C'est bon pour les autorisations sur C: par contre sur I: de la clé USB il n'y a pas d'onglet sécurité.

J'ai réduit la longueur du nom des variables... CheminAncienNomDocument => AncienNom et CheminNouveauNomDocument => Nouveaunom.

Cela ne fonctionne pas.:confused:

@+
 
Dernière édition:

modus57

XLDnaute Occasionnel
Re : Renommer et déplacer un fichier

Bonjour Pierrot93 :cool:

J’ai trouvé en partie d’où vient le problème, voici le code en question :
Code:
Private Sub ListBox1_Click()
'------------------------------------------------------------------------------
'Synchronise l'affichage entre 2 ListBox (si MultiSelect = fmMultiSelectSingle)
'------------------------------------------------------------------------------
    TextBox2.Value = ""
    With ListBox2
        .TopIndex = ListBox1.TopIndex
        .ListIndex = ListBox1.ListIndex
    End With
    If TextBox1.Value = "" Then     End If
    ChDrive Left(TextBox1, InStr(TextBox1, "\"))
    ChDir TextBox1
    chemin = TextBox1
    nom = ListBox1.List(ListBox1.ListIndex)
    Fichier = CurDir & "\" & nom
    On Error Resume Next
    WebBrowser1.Navigate (Fichier)
End Sub
Le principe c’est de cliquer sur un item pour afficher la vignette du fichier PDF.

Si je supprime le :
Code:
Fichier = CurDir & "\" & nom
    On Error Resume Next
    WebBrowser1.Navigate (Fichier)
Plus de message et ça fonctionne parfaitement, mais je souhaiterais conserver le principe pour afficher la vignette du fichier PDF.

Comment procéder svp.

Merci d’avance pour votre réponse.

@+
 

modus57

XLDnaute Occasionnel
Re : Renommer et déplacer un fichier

Bonjour. :)

Pas de réponse, c'est embêtant.

De mon côté je n'ai pas trouvé trouvé de solution, est il possible de savoir s'il existe une possibilité ou pas. Si non j’abandonne cette piste.

Voici le code du CommandButton
Code:
Private Sub CommandButton10_Click()
Dim CheminAncienNomDocument As String, CheminNouveauNomDocument As String
CheminAncienNomDocument = TextBox1 & "\" & ListBox1.List(ListBox1.ListIndex)
CheminNouveauNomDocument = TextBox3 & "\" & ComboBox1 & "\" & ComboBox2 & "\" & ComboBox3 & "\" & ListBox2.List(ListBox2.ListIndex)
    If Dir(CheminNouveauNomDocument) = "" Then
        Name CheminAncienNomDocument As CheminNouveauNomDocument
        Application.ScreenUpdating = False
        ' blabla ....
        TextBox1.SetFocus
        Application.ScreenUpdating = True
        MsgBox "Le nouveau document a été classé et enregistré", , ThisWorkbook.Name
    Else
        MsgBox "Le document est déjà enregistré." & vbLf & "ARRÊT DE LA PROCÉDURE!" & vbLf & "Vérifier s'il s'agit d'un doublon et supprimer le si nécssaire?", , ThisWorkbook.Name
    End If
End Sub

Une réponse posite ou négative me permettra de gagner du temps.

Merci d'avance.
 

modus57

XLDnaute Occasionnel
Re : Renommer et déplacer un fichier

Bonjour MJ13, Pierrot93. :cool:

Finalement j'ai trouvé la solution, il suffit d'ajouter "WebBrowser1.Stop" au début du
Code:
Private Sub CommandButton10_Click()
Cela résout le problème et ça fonctionne nickel-chrome.

Merci à vous et bonne soirée.

M:)dus57
 

Statistiques des forums

Discussions
312 305
Messages
2 087 093
Membres
103 467
dernier inscrit
Pandiska