IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro de déplacement de fichier [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Par défaut Macro de déplacement de fichier
    Bonjour a tous,

    j'ai mon fichier excel, dans la feuille 'suivi' qui comprend tous les devis, je veux pouvoir déplacer les devis vers un autre dossier "04-clos" si le dossier d'origine n'est pas "04-clos". j'ai fait une macro pour un menu contextuelle de sorte a ce que si on choisi l'option déplacement il exécute la macro de déplacement. il se trouve que ma macro de déplacement ne fonctionne pas. merci de m'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Sub_Déplacement_Clos()
    Set fs = CreateObject("Scripting.FileSystemObject")
    Dim Sh_Suivi As Worksheet
    Set Sh_Suivi = Sheets("Suivi")
    l = 2
    l_fin = 2
    Compteur = 0
    Do While Sh_Suivi.Cells(l, P_Suivi_CheminFichier).Value <> ""
        If Not (Sh_Suivi_PTV.Cells(l, P_Suivi_CheminFichier).Value Like "*04-Clos*") Then
            Set f = fs.GetFile(Sh_Suivi.Cells(l, P_Suivi_CheminFichier).Value)
                Fichier = f.Name
                fs.movefile f.Path, "C:\\04-Clos\\"
                Action = "Clos"
                Chemin = "C:\04-Clos\" & Fichier
                Compteur = Compteur + 1
                l_fin = l_fin - 1
                Do While Sh_Suivi.Cells(l_fin, P_Suivi_CheminFichier).Value <> ""
                    l_fin = l_fin + 1
                Loop
                Sh_Suivi.Cells(l_fin, P_Suivi_CheminFichier).Value = Chemin
        End If
    l = l + 1
    Loop
    MsgBox Compteur & " fichiers déplacés", vbInformation, "Déplacement statut"
    End Sub
    Après la ligne Set f = fs.GetFile(Sh_Suivi.Cells(l, P_Suivi_CheminFichier).Value)
    il passe directement au End If
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 415
    Par défaut Name() et Dir()
    (1) Pourquoi ne pas utiliser l'instruction Name OldName as NewName
    (2) avant de déplacer un fichier, il serait utile de vérifier que ce fichier existe bien à l'endroit indiqué, et si non: le signaler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub Sub_Déplacement_Clos()
        Dim Sh_Suivi As Worksheet
        Dim FromPath As String, ToNewPath As String, kL As Long
        Set Sh_Suivi = Sheets("Suivi")
        kL = 2
        FromPath = Sh_Suivi.Cells(kL, 2)
        Do While FromPath <> ""
            If Not (FromPath Like "*04-Clos*") Then
                ToNewPath = "C:\04-Clos" & Mid(FromPath, InStrRev(FromPath, "\"))
                Debug.Print ToNewPath
                If Dir(FromPath) = "" Then
                    MsgBox "Le fichier " & FromPath & " est manquant !", , "Anomalie"
                Else
                    Name FromPath As ToNewPath
                    Cells(kL, 2) = ToNewPath
                End If
            End If
            kL = kL + 1
            FromPath = Sh_Suivi.Cells(kL, 2)
        Loop
    End Sub
    Bonne continuation.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Regarde ce lien tu y trouera ce que tu veux et plus!

    http://www.developpez.net/forums/d15...l/#post8149786

  4. #4
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Par défaut
    Bonjour,
    j'aimerais dire merci à tous ceux qui se sont penchés sur mon problème.
    Merci particulier à EricDgn, ta solution avec quelques modifications a montré son efficacité.
    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E] Macro pour convertir un fichier texte en excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2006, 14h47
  2. Déplacement de fichiers
    Par sourivore dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 03/05/2006, 11h48
  3. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20
  4. [VBA-E]Lancement de macro à l'ouverture du fichier
    Par bastien62200 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/02/2006, 23h20
  5. Réponses: 16
    Dernier message: 25/11/2004, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo