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 :

copier, coller, en code VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Par défaut copier, coller, en code VBA
    Bien le bonjour à tous le monde

    voila je voudrais savoir comment faire en code vba pour ouvrir un fichier excel, copier les données de ce fichier dans un nouveau classeur et ensuite refermer le fichier ouvert. Je pense que par exemple, pour ouvrir le fichier dont on a besoin, l'utilisation de fênetre permettan la recherche du fichier sur le DD serai le mieu mais sa on pourra voir plus tard ^^

    voila merci à vous d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 288
    Par défaut
    bonjour

    Citation Envoyé par jackall Voir le message
    ouvrir un fichier excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("nom_fichier.xls").open
    copier les données de ce fichier dans un nouveau classeur
    il doit exister un .copy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("nom_fichier.xls").worksheets("nom_feuille").range("plage_a_copier").copy
    et equivalent avec le coller! (.pastespecial je crois)

    pour refermer le fichier.. ca je ne sais pas!

    ps : il doit y avoir des fautes de frappes (voire des grosses erreurs qui ne fonctionnent pas!!!)

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour effectuer la recherche d'un fichier et pour l'ouvrir, tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Dialogs.Item(xlDialogOpen).Show
    C'est le plus simple.
    Sitôt le fichier ouvert, tu peux récupérer son nom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomFich = Activeworkbook.name
    Pour avoir le répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemin = Activeworkbook.path
    Pour créer un nouveau fichier, c'est
    Pour récupérer son nom, c'est toujours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewFich = Activeworkbook.name
    Pour copier une feuille du fichier NomFich dans ce nouveau classeur en dernière position, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Workbooks(NomFich).Sheets("UneFeuille").Copy After:=Workbooks(NewFich).Sheets(Workbooks(NewFich).Sheets.count)
    Pour fermer le classeur ouvert pour simple copie, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(NomFich).close false
    Ensuite, pour enregistrer NewFich dans le même répertoire que le fichier copié avec son nouveau nom, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Activeworkbook.saveas Chemin & "NouveauNom.xls"
    Si tu fais tout ça dans l'ordre, ça devrait fonctionner
    Bon courage

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Par défaut
    tout d'abord je remerci ouskel'n'or et pyrene pour m'avoir donner des solution.
    j'ai utiliser dans un premier temp la solution de ouskel'n'or qui m'a beacoup plu.
    il y a juste un probleme c'est à dire que au moment de copier il me donne un message d'erreur. je vous donne mon code si des fois je me suis tromper à quelque part en reprenant et je donne aussi le message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton3_Click
      Application.Dialogs.Item(xlDialogOpen).show
      nomfich = ActiveWorkbook.Name
      Workbooks.Add
      newfich = ActiveWorkbook.Name
      Workbooks(nomfich).Sheets("Feuil1").Copy After:=Workbooks(newfich).Sheets(Workbooks(newfich).Sheets.Count)
      Workbooks(nomfich).close False
    End Sub

    et le message d'erreur :

    Erreur d'exécution '-2147352565(8002000b)':

    Le format du fichier que vous tentez d'ouvir, "R20080514.xls", est
    différent de celui spécifié par l'éxtension de fichier. Assurez-vous que
    le fichier n'est pas endommagé et qu'il provient d'une source fiable
    avant de l'ouvir. Souhaitez vous ouvrir le ficheir maintenant ?


    pour ma part je ne comprend pas du tout ce message ... donc je suis un peut perdu.
    si vous vos lanternes pourraient me sortir du noir ^^

    merci

  5. #5
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    et elle se situe où l'erreur?

    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(nomfich).Sheets("Feuil1").Copy After:=Workbooks(newfich).Sheets(Workbooks(newfich).Sheets.Count)
    avec ça .... juste pour voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks(nomfich).Sheets("Feuil1").Copy After:=Workbooks(newfich).Sheets(1)

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Par défaut
    aïe aïe aïe ... sa ne marche toujours pas ...

    ben l'erreur se situe exactement a la ligne que tu m'a demander de remplacer

  7. #7
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    en fait je me disait avec ton code

    je ferais simplement ça!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(nomfich).Sheets("Feuil1").Copy
    sans creer de workbook auparavent

  8. #8
    Membre confirmé
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 136
    Par défaut
    je vien d'essayer mais sa ne va toujours pas je ne sais vraiment pas quoi faire ...

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

Discussions similaires

  1. Copier coller un code matlab
    Par Leonpolou dans le forum Débuter
    Réponses: 9
    Dernier message: 20/01/2010, 09h43
  2. [AC-2003] Copier/coller par code VBA ?
    Par ortiz dans le forum IHM
    Réponses: 2
    Dernier message: 24/08/2009, 14h32
  3. Copier Coller du Code dans une macro VBA
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/04/2008, 16h11
  4. probleme lors du copier\coller du code
    Par milki1 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 31/08/2007, 10h11
  5. Comment faire Copier/Coller par code VBA sur INTERNET...
    Par GESCOM2000 dans le forum Access
    Réponses: 5
    Dernier message: 02/01/2006, 13h19

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