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 :

manipulation de fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut manipulation de fichier
    Bonjour tous le monde

    j'ai un petit probleme sur la manipulation de mes fichiers

    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
     
        Dim nom_fichier As String
     
        nom_fichier = Format(Date, "yyyymmdd")
        nom_fichier = "C:\Documents and Settings\laborder\Bureau\SAV" & nom_fichier & ".xls"
     
        FileCopy "C:\Documents and Settings\laborder\Bureau\assmat.xls", nom_fichier
     
        Open "C:\Documents and Settings\laborder\Bureau\assmat_valide.csv" For Append As #1
     
        With ActiveSheet
            For i = 2 To .Cells(2, 1).End(xlDown).Row + 1
                mon traitement de donnée
                assmat_valide = Cells(i, "A") & ";" & Cells(i, "B") & ";" & Cells(i, "C") & ";" & Cells(i, "D") & ";" & Cells(i, "E") & ";" & Cells(i, "F") & ";" & Cells(i, "G") & ";" & Cells(i, "H") & ";" & Cells(i, "I")
                Write #1, assmat_valide
     
            Next i
        End With
     
        Close #1
    l'orsque je veux exécuter la macro, il me dit :
    erreur d'éxécution 70
    permission refusée

    et si je clique sur debogage c la ligne de filecopy qui est designer

    je ne comprend pas pourquoi

    comment resoudre se probleme
    merci de votre aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonsoir

    tu n'aurais pas un problème de droit de session ?

    tu cherches à lire et écrire dans la session "laborder", est-ce celle qui est ouverte ?

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    non aucun probleme de droit

    par contre le fichier sur lequel je fais un filecopy, c'est le fichier qui lance la macro donc il est ouvert

    c'est pe etre sa mon probleme

    je cherche a faire une sauvegarde au tout debut de ma macro avant quelle commence les modifs sur le fichier ouver

    peut etre exist-il une fonction plus apropriée que filecopy

    merci de votre aide

    je viens de trouvais ceci qui a l'aire de fonctionnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    nom_fichier = Format(Date, "yyyymmdd")
    nom_fichier = "C:\Documents and Settings\laborder\Bureau\SAV" & nom_fichier & ".xls"
    ActiveWorkbook.SaveAs Filename:=nom_fichier
    c'est la seule option possible??

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    Ta dernière solution n'est pas mal mais le seul problème est que le fichier sur lequel tu travailleras sera le fichier de sauvegarde et ce n'est pas le résultat attendu.

    je vais essayer de voir s'il n'y aurai pas une autre méthode.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    zyhack effectivement je me retrouve a travailler dans le fichier de sauvegarde
    s'il y a une autre alternative je suis preneur

    merci de ton aide

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    Je viens de faire le test en passant par l'objet FSO et ça marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim fso As Object, nom_fichier As String
     
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    nom_fichier = Format(Date, "yyyymmdd")
    nom_fichier = "C:\Documents and Settings\laborder\Bureau\SAV" & nom_fichier & ".xls"
     
    fso.CopyFile "C:\Documents and Settings\laborder\Bureau\assmat.xls", nom_fichier
     
    Set fso = Nothing
    End Sub
    je n'ai pas mis de gestion d'erreur au cas ou le fichier existerait déja mais je pense que tu n'aura pas de mal à l'ajouter au besoin.

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

Discussions similaires

  1. Manipulation de fichier (copier, supprimer, déplacer)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 21/10/2004, 10h26
  2. Manipulation des fichiers
    Par monsau dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2004, 17h45
  3. [LG]Manipulation de fichiers
    Par yffick dans le forum Langage
    Réponses: 29
    Dernier message: 10/01/2004, 15h04
  4. Manipulation de fichiers - gestion d'extensions
    Par ulukai dans le forum Linux
    Réponses: 13
    Dernier message: 02/07/2003, 15h28
  5. Réponses: 2
    Dernier message: 18/01/2003, 17h06

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