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 :

copie une colonne d'un fichier à un autre


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut copie une colonne d'un fichier à un autre
    bonjour
    je voudrais copier la colonne A d'un fichier excel source vers la colonne A d'un autre fichier excel destinataire avec ce code
    rien à faire çà ne copie pas .
    j'ai manqué à quelque chose là?
    sachant que les 2 fichiers sont déjà ouvertes
    merci pour votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub aa_99f_copy_range_nvfich()
    Dim sourceColumn As Range, targetColumn As Range
    fic_s = "d:\0temp\presta\travail_sos\batt_fini_base1c.xlsm"
    fic_d = "d:\0temp\presta\ned_ajout_walk\ned_ajout.xlsm"
    Set sourceColumn = Workbooks(fic_s).Worksheets(1).Columns("A")
    Set targetColumn = Workbooks(fic_d).Worksheets(1).Columns("A")
    sourceColumn.Copy Destination:=targetColumn
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour,

    ne pas indiquer le dossier des fichiers, le nom étant suffisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("batt_fini_base1c.xlsm").Worksheets(1).UsedRange.Columns(1).Copy Workbooks("ned_ajout.xlsm").Worksheets(1).Cells(1)
    ___________________________________________________________________________________________________________

         Merci de cliquer sur en bas à droite de chaque message ayant aidé puis sur pour clore cette discussion …

    ___________________________________________________________________________________________________________
    Je suis Paris, Manchester, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    merci marc.ca marche.j'ai regardé plusieurs solutions , vous trouvez toujours le plus simple

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Solution que toi-même aurais pu - dû ! - trouver via l'Enregistreur de macro, si, si !
    Puis évidemment en consultant l'aide VBA interne …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    excusez moi de vous embêter .et si je voudrais coller que les valeurs et pas les formats ou les formules en provenance du fichier source ? j'aimerais bien savoir s'il y a d'autres méthodes qui marcheraient aussi car j'ai cherché sur internet et meme sur des sites anglais bizarrement ils proposent des méthodes mais çà na marchent pas apres mes tests

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Là aussi un classique du forum :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With Workbooks("batt_fini_base1c.xlsm").Worksheets(1).UsedRange.Columns(1).Cells
             Workbooks("ned_ajout.xlsm").Worksheets(1).Cells(1).Resize(.Count).Value = .Value
        End With
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    oui que du bon , je suis votre testeur avec plaisir

    en m'inspirant de votre technique j'ai trouvé une autre méthode qui marche quand le range est sur la ligne 1 comme Range("c1") mais si je mets Range("c4")
    ca ne marche pas .bizarre non?j'ai du loupé un truc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub aa_99fich1()
     fic_s = "batt_fini_base1c.xlsm"
     Set sourceColumn = Workbooks(fic_s).Worksheets(1).Columns("e:f")
     Set wb_d = Workbooks("1.xlsm").Worksheets(1)
      Set targetColumn = wb_d.Range("c1")
      sourceColumn.Copy Destination:=targetColumn
    End Sub

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    La démonstration du post #6 fonctionnant déjà quelle que soit la première ligne utilisée dans la feuille de calculs …

    Autre point que je voulais signaler dès la présentation initiale :
    si utilisation de variables objet - ici inutiles ou superflues - ne pas oublier alors de les libérer avant la fin de la procédure ‼

    Pour C4 cela ne joue pas sauf si la feuille de destination a été mal conçue !
    Et comme d'habitude, l'effectuer déjà manuellement, voire en activant au préalable l'Enregistreur de macro …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Points : 118
    Points
    118
    Par défaut
    oui le post 6 est super. Très générique facile à adapter. Un grand merci cher Marc

    j'en profite pour respecter vos conseils dorénavant avec des Set var objet= Nothing pour vider mémoires avant fin de chaque sub

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

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

Discussions similaires

  1. Intercaler une colonne d'un fichier dans un autre
    Par Taxan dans le forum Shell et commandes GNU
    Réponses: 18
    Dernier message: 15/07/2014, 09h17
  2. [WD-2003] Copie d'une sélection d'un fichier à un autre
    Par naunau31 dans le forum VBA Word
    Réponses: 1
    Dernier message: 22/04/2012, 18h19
  3. [XL-2003] Copier des colonnes suivant une référence d'un fichier à un autre
    Par K0007 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/09/2009, 16h29
  4. Réponses: 8
    Dernier message: 25/01/2008, 11h48
  5. Copie une colonne dans l'autre
    Par afrodje dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/10/2007, 16h37

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