Se connecter avec
S'enregistrer | Connectez-vous

VBA , Transport de donnée d'un classeur vers un autre

Dernière réponse : dans Programmation

Bonjour,
Je débute en programmation VB-VBA et l'on m'a demandé de faire un travail sous excel. J'ai un fichier A et un fichier B. Mon but est de récupérer des infos du Classeur A ( puis les trier et les ordonner dans un tableau , jai vu comment faire sous un tutorial,ect ) et de les réécrire dans un autre tableau se situant dans le Classeur B.
Mon problème est le suivant ,je sais comment changer de feuillet et transporter mes données d'un feuillet a l'autre mais je ne sais pas comment faire pour importer des données d'un classeur vers un autre classeur.

Cordialement
Gauthier Grégory
Lassé par la pub ? Créez un compte

Je vais m'auto répondre, je pense avoir trouvé:
Ouvrir le fichierA.xls, enregistrer les données nécéssaires dans une variable.
Fermer le fichier.
Ouvrir le fichierB.xls et mettre le contenu de la variable dans la case désiré.
Fermer le fichier.
Expert Programmation

Par exemple.

On peut aussi :
  • recopier une feuille, recopier un classeur (Au sens VB),
  • copier une feuille, copier un classeur (Au sens Presse-papier de Windows),
  • ouvrir les deux classeurs dans une même session Excel et écrire classeur2.feuille2.case2.Valeur = classeur1.feuille1.case1.Valeur,
  • etc.

    Il y a juste un touch'ti truc que je voudrais savoir.
    Quand je fais :
    Workbooks.Open Filename:=output_file 'fichier source
    Workbooks.Open Filename:=redefinition 'fichier destination

    Les classeurs sont indexé automatiquement ? ( cad output est le classeur 1 et redefinition le classeur2)
    Expert Programmation

    Merci pour le lien.

    Oui. C'est Excel qui gère l'indexation, tu n'as pas la main là-dessus.
    Mais la méthode Open de la classe Workbooks renvoie un Workbook. DOnc une bonne manière de faire est celle-ci :

    1. Dim srce As Workbook
    2. Dim dest As Workbook
    3.  
    4. Set srce = Workbooks.Open(Filename:="fichier source")
    5. Set dest = Workbooks.Open(Filename:="fichier destination ")


    Ainsi, il te sera facile d'utiliser ces deux variables pour ne pas te trombrer ni pour avoir à faire confiance au numérotage d'Excel.
    Lassé par la pub ? Créez un compte