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 :

code VBA copie colle cellule d'1 fichier excel à 1autre


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut code VBA copie colle cellule d'1 fichier excel à 1autre
    Bonjour tout le monde,

    Je voudrais réaliser quelque chose de simple, mais que je ne sais pas mettre en oeuvre....

    Il faudrait arriver à copier le contenu d'une cellule (exemple C9) d'1 fichier excel (appelé Création dossier chantiers.xls) vers 1 autre fichier excel appelé Tableau de Bord modifié.XLS et stocké ici:
    Y:\TKAF\R04\A422\_Commun-Agence\Roger\Travail Antony

    Attention le ficher de destination possède déjà de nombreuses lignes... Il convient de coller la valeur à la suite de ce qu'il y a déjà.... Dans la colonne A par exemple.


    Merci par avance pour votre aide !!

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    si tes deux fichiers sont ouverts :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim dl as integer
    with workbooks("travail antony.xls").worksheets("nomde tafeuille")
    dl = .range("a" & .rows.count).end(xlup).row + 1
    .range("a" & dl).value = workbooks("Création dossier chantiers.xls").worksheets("nomdetafeuille").range("c9").value
    end with
    à adapter

  3. #3
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Je ne suis pas programmeur mais plutôt une sorte d'hybride entre le mathématicien et le mécanicien, c'est pourquoi tu n'auras pas un code tout fait mais des piste pour faire ton propre code

    Pour ouvrir un fichier regarde l'aide sur
    L'enregistreur de macro aurait très bien pu te donner la commande.

    ensuite je te conseiller de préciser a chaque fois quelle classeur tu utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("classeur1.xls).worsheets("feuil1").CeQueTuVeux
    Pour copier regarde l'aide sur la fonction copy
    tu peux directement mettre la cible a la suite c'est plus pratique dans ton cas
    enfin
    pour connaitre la dernière ligne utilisé d'une feuille regarde ici tu rajoute 1 et tu a le numéro de la première ligne vide

    Voila je te laisse regarder tout ca. Commence ta macro fait quelque essai puis reviens nous voir si ca coince

    Edit : Bonjour casefayere, visiblement tu as été plus gentil que moi

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour Krovax,
    visiblement tu as été plus gentil que moi
    mon bon coeur me perdra
    Mon code n'est valable que si les deux classeurs sont ouverts, je n'ai jamais regardé les codes pour travailler sur des classeurs fermés ,je préfère les ouvrir

    bonne journée

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    Bonjour Messieurs,

    Tout d'abord merci pour vos conseils!!

    Pour l'instant rien ne se passe (j'ai rajouté le script à la suite de celui de ma macro) mais je pense que c'est dû au fait que mon fichier excel de destination lance à son tour une macro automatique aussi.....

    Je vais donc coller le script a la suite de mon fichier destination......nous verrons bien!

    Ca ne marche pas......

    En même temps j'ai une erreur ici qui s'explique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A" & dl).Value = Workbooks("Création dossier chantiers.xls").Worksheets("Feuil1").Range("C9").Valu
    puisque je suis à ce moment là sur le fichier Tableau de Bord modifié.XLS

    Je ne vois pas trop quoi faire et comment faire...

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Je pense que mon code devrait fonctionner, mais comme je n'ai aucune indication sur tes autres codes, je ne peux rien dire,
    quels messages d'erreur as-tu ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    J'ai mis ça comme code sur la macro de mon fichier excel d'où je copie les données:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Workbooks.Open Filename:="Y:\TKAF\R04\A422\_Commun-Agence\Roger\Travail Antony\Tableau de Bord modifié.XLS"
     
    Dim dl As Integer
    With Workbooks("Tableau de Bord modifié.XLS").Worksheets("Feuil1")
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    .Range("A" & dl).Value = Workbooks("Création dossier chantiers.xls").Worksheets("Feuil1").Range("C9").Value
    End With
    Dans celui de destination la macro n'est pas compliquée mais fait apparaître un pop up à l'ouverture... Je n'ai rien modifié dans cette macro...

    A priori pas de message d'erreur.... Mais rien ne se passe sur le fichier Tableau de Bord modifié.XLS....

  8. #8
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    sans trop de conviction,
    essayes ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim dl As Integer
    With Workbooks("Tableau de Bord modifié.XLS").Worksheets("Feuil1")
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    .Range("A" & dl).Value = ThisWorkbook.Worksheets("Feuil1").Range("C9").Value
    End With

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    Je ne comprends pas, j'ai rajouté ça dans mon script mais rien ne se passe... Ni modification, ni erreur...

  10. #10
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    dans tes deux classeurs respectifs, les feuilles concernées se nomment bien "feuil1" ? est-ce bien la cellule C9 qu'il faut copier ?

    si oui, je ne vois pas où est l'erreur

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    remarque: j'ai fais un test en enlevant ttes les macros "pop up..." s'appliquant sur le dossier source et pareil rien ne se passe!

    Sinon oui les 2 feuilles de mes 2 classeurs s'appellent bien Feuil1,

    et la cellule a copier est la C9 du classeur "Création dossier chantiers.xls" vers la 1ere cellule vide de la colonne A du classeur "Tableau de Bord modifié.XLS"

  12. #12
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    juste pour verifier autre chose, peux-tu essayer comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim dl As Integer, valeuracopier as string
    valeuracopier = Workbooks("Création dossier chantiers.xls").Worksheets("Feuil1").Range("C9").Value
     
    Workbooks.Open Filename:="Y:\TKAF\R04\A422\_Commun-Agence\Roger\Travail Antony\Tableau de Bord modifié.XLS"
     
    With Workbooks("Tableau de Bord modifié.XLS").Worksheets("Feuil1")
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    .Range("A" & dl).Value = valeuracopier
    End With

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    Pas d'erreur mais rien ne se passe...

    Je ne comprends vraiment pas là !!

    Sinon cette commande ne ferait pas la même chose ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Columns(1).Cells.Count, 1).End(xlUp).Row

  14. #14
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    il faut vérifier petit à petit
    essayes déjà ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim dl As Integer, valeuracopier as string
    valeuracopier = Workbooks("Création dossier chantiers.xls").Worksheets("Feuil1").Range("C9").Value
    msgbox valeuracopier
    stop
    en début de code pour vérifier la valeur et dis-moi quoi

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    un mesage box me retourne la valeur de la cellule C9 !! donc ca c'est bon

  16. #16
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Continues à vérifier à ces lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    msgbox .Range("A" & dl).address

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    avec ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim dl As Integer, valeuracopier As String
    valeuracopier = Workbooks("Création dossier chantiers.xls").Worksheets("Feuil1").Range("C9").Value
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    MsgBox .Range("A" & dl).Address
    Stop
    rien en se passe

    en tapant ca tel quel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim dl As Integer, valeuracopier As String
    'valeuracopier = Workbooks("Création dossier chantiers.xls").Worksheets("Feuil1").Range("C9").Value
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1  <-- ERREUR
    MsgBox .Range("A" & dl).Address
    Stop
    et l'erreur est :"référence incorrecte ou non qualifiée"

    a priori l'erreur est liée au mot "Rows"

  18. #18
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    donc c'est à ce niveau que quelque chose ne va pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Tableau de Bord modifié.XLS").Worksheets("Feuil1")
    ne serait-ce pas le mot modifié => pour modifie,l'accent en moins ?

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    D'aprés le débogueur l'erreur semble être liée au mot "Rows"......

    Mais je vais regarder ce que tu dis (l'histoire de l'accent)

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Points : 28
    Points
    28
    Par défaut
    non ss accent rien ne se passe

    avec ce code la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Workbooks.Open Filename:="Y:\TKAF\R04\A422\_Commun-Agence\Roger\Travail Antony\Tableau de Bord modifie.XLS"
     
    Dim dl As Integer
    With Workbooks("Tableau de Bord modifie.XLS").Worksheets("Feuil1")
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    .Range("A" & dl).Value = Workbooks("Création dossier chantiers.xls").Worksheets("Feuil1").Range("C9").Value
    End With
    en mettant ca seulement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Workbooks.Open Filename:="Y:\TKAF\R04\A422\_Commun-Agence\Roger\Travail Antony\Tableau de Bord modifie.XLS"
     
    dl = .Range("A" & .Rows.Count).End(xlUp).Row + 1
    MsgBox .Range("A" & dl).Address
    erreur de compilation:référence incorrecte ou non qualifiée a priori dû a "Rows"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2013] Modif code VBA copie colle sous condition
    Par d.deneys dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/09/2013, 18h56
  2. [XL-2003] Macro VBA copie valeur cellule excel et colle dans doc word
    Par tony020422 dans le forum Macros et VBA Excel
    Réponses: 54
    Dernier message: 03/06/2009, 09h21
  3. Copie de cellules d'un fichier vers un autre
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/02/2008, 15h04
  4. [VBA-E] erreur de code sur copie de cellules
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/03/2007, 23h12
  5. [Excel] Injecter du code VBA par le biais d'un fichier *.cvs
    Par llsn dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2006, 20h42

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