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 :

Recopier un fichier en le renommant [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur Support BE
    Inscrit en
    Décembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Support BE

    Informations forums :
    Inscription : Décembre 2011
    Messages : 79
    Par défaut Recopier un fichier en le renommant
    Bonjour à tous,

    J'ai un fichier de modele de feuille de temps que j'appelle FdT_2012_MODELE.xls qui est stocker dans "D:\FdT_2012\FdT_2012_MODELE.xls"
    Je voudrai recopier ce fichier pour chacun des utilisateurs de mon département et le mettre dans le répertoire correspondant au service concerné.
    Je voudrai donc boucler sur ce type d'instruction,
    FileCopy "D:\FdT_2012\FdT_2012_MODELE.xls", "D:\FdT_2012\FdT2012_BE\FdT_2012_TOTO.xls"
    sachant que mes deux fichiers sont fermés.
    Dans le fichier excel qui contient le code VBA j'ai en feuille "Janv2012" un tableau avec une colonne pour les noms(1) et une pour les répertoires d'arrivée(4).

    J'ai commencé un bout de programmation mais je cale...

    Est-ce que quelqu'un a déjà rencontré ce type de manipulation et/ou pourrait m'aider.

    D'avance merci
    Véronique

    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
    26
    27
     
    Option Explicit
    Sub DeploiementFdTJanv2012()
     
    Dim PremLigne As Integer, DerLigne As Integer, Ligne As Integer, N°Ligne As Integer, i As Integer, j As Integer
    Dim valeur() As Variant
    Dim cel As Object
     
     
    'Calcul du nombre de ligne à lire
    Sheets("Janv2012").Activate
    PremLigne = Range("A1").End(xlDown).Row + 1
    DerLigne = Range("A65536").End(xlUp).Row
     
    'Lecture ligne par ligne du tableau
    For Ligne = PremLigne To DerLigne
        'Lecture cellule par cellule des lignes du tableau
        i = 0
        For Each cel In Range(Cells(Ligne, 1), Cells(Ligne, 4))
             i = i + 1
             valeur(i) = cel
        Next cel
    Next Ligne
     
     
    FileCopy "D:\FdT_2012\FdT_2012_MODELE.xls", "D:\FdT_2012\FdT2012_BE\FdT_2012_TOTO.xls"
    End Sub

  2. #2
    Membre expérimenté
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Par défaut
    Bonjour,

    j'ai pas lu le code en détail , ni exécuté mais il y a une erreur sur la variable valeur qui est un tableau mais dont la dimension n'est pas défini ( faut faire un redim par exemple).
    Pour chaque ligne tu réécrase valeur (i) ?.
    Tu ne décris pas comment tu nommes le fichier recopié ( ..toto..)


    Si je comprend bien ton problème , en colonne 1 tu as le nom du fichier à copier et en colonne 4 , le répertoire.

    tu peux faire ça :
    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
     
     
    'debut identique à ton code
     
    For Ligne = PremLigne To DerLigne
     
    if len (cells ( ligne , 1).value ) > 0 and len (cells ( ligne , 4).value ) > 0 then 
     
     
    FileCopy "D:\FdT_2012\"  &  cells ( ligne , 1).value   , "D:\FdT_2012\" & cells ( ligne , 4).value   &  "FdT_2012_TOTO.xls"
     
     
    end if 
     
    Next Ligne
    c'est une trame de départ...
    Ensuite il vaut mieux prévoir un if ...fileexists (.... pour tester si le fichier existe vraiment dans le répertoire avant de lancer une commande

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Dans ton code, quel est le but de lire les cellules des colonnes A&D de la feuille Janv2012 ?
    Parce-que tu lis ces cellules mais après ?
    Que veux tu faire exactement ?
    Copier les colonnes A & D de la feuille Janv2012 du fichier FdT_2012_MODELE.xls vers un autre classeur nommé FdT_2012_TOTO.xls et se trouvant dans un autre répertoire.
    Le nom du réperoire d'arrivée est il fixe ?
    Même question pour le nom du fichier.
    Petite remarque : Tu parles de modèle mais tu utilises un fichier xls et pas un fichier xlt. Est-ce par ignorance de l'existence de modèle dans Excel ou par volonté ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre confirmé
    Profil pro
    Ingénieur Support BE
    Inscrit en
    Décembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Support BE

    Informations forums :
    Inscription : Décembre 2011
    Messages : 79
    Par défaut modification de 2 cellules et du nom de feuille
    Bonjour,
    Merci pour vos réponses.
    Le répertoire n'est pas fixe, il se trouve en colonne 4 de mon fichier (concaténation avec nom de service) et le nouveau nom en colonne 5 (concaténation avec nom de famille).
    J'utilise effectivement un fichier xls pour que ce soit plus facile à gérer. J'ai mis le code qui semble fonctionner en-dessous. Par contre le HIC c'est que je ne sais pas comment faire pour ne rien faire qd le fichier d'arrivée existe déjà pour ne pas l'écraser...

    Je voudrai aussi modifier 2 cellules dans mon fichier d'arrivée :
    - La cellule A1 du fichier d'arrivée qui contient le Prénom de la personne et que je vais chercher dans la colonne B du fichier qui contient le code VBA
    - La cellule C1 du fichier d'arrivée qui contient le NOM de la personne et que je vais chercher dans la colonne A du fichier qui contient le code VBA

    et je voudrai également renommer la feuille qui s'appelle MODELE dans le nouveau fichier par NOM (valeur extraite de la colonne A).

    Je ne sais pas comment faire ceci sans ouvrir les fichiers....

    Merci de votre aide.
    Véronique


    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
    26
     
    Option Explicit
    Sub DeploiementFdTJanv2012()
     
    Dim PremLigne As Integer, DerLigne As Integer, Ligne As Integer, N°Ligne As Integer, i As Integer, j As Integer
    Dim valeur() As Variant
    Dim cel As Object
     
     
    'Calcul du nombre de ligne à lire
    Sheets("Janv2012").Activate
    PremLigne = Range("A1").End(xlDown).Row + 1
    DerLigne = Range("A65536").End(xlUp).Row
     
    For Ligne = PremLigne To DerLigne
     
        If Len(Cells(Ligne, 1).Value) > 0 And Len(Cells(Ligne, 4).Value) > 0 Then
     
     
            FileCopy "D:\FdT_2012\FdT_2012_MODELE.xls", Cells(Ligne, 4).Value & "\" & Cells(Ligne, 5).Value
     
        End If
     
    Next Ligne
     
    End Sub

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour lire et écrire dans un classeur fermé voici un tuto à lire mais rien ne t'empêche d'ouvrir le classeur sans que ce ne soit visible.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre confirmé
    Profil pro
    Ingénieur Support BE
    Inscrit en
    Décembre 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Support BE

    Informations forums :
    Inscription : Décembre 2011
    Messages : 79
    Par défaut Aïe Aïe Aïe
    Bonjour,
    Voila la réponse que je craignais. J'ai déjà regardé plusieurs fois ce tuto mais je n'y comprends pas grand chose...
    Je m'y replonge encore une fois...
    Veronique

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Quel est le problème d'ouvrir un classeur si tu le rends invisible. As-tu une contrainte technique particulière.
    Pour renommer un fichier fermé, tu as l'instruction Name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Renomme()
     Dim myFolder As String: myFolder = "Z:\Tests\"
     Dim OldName As String: OldName = "Exemple.xls"
     Dim NewName As String: NewName = "120403 Exemple.xls"
     Rename myFolder & OldName, myFolder & NewName
    End Sub
    Sub Rename(OldName As String, NewName As String)
     Name OldName As NewName
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. Recopié un fichier au format U en binaire sous ZOS
    Par Kyle Katarn dans le forum z/OS
    Réponses: 6
    Dernier message: 12/11/2008, 09h49
  2. Réponses: 2
    Dernier message: 01/10/2008, 10h15
  3. [OpenOffice][Tableur] Cppie fichier ods et renommer en zip
    Par bibi73 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 13/02/2008, 14h25
  4. Recopie de fichiers :date de création du fichier perdue
    Par mugwump dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 30/08/2007, 16h17
  5. création script korn shell de recopie de fichiers
    Par jeje4 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 29/03/2007, 07h38

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