Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1843 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA EXCEL : copier coller des valeurs automatiquement

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA EXCEL : copier coller des valeurs automatiquement

n°2078408
julielef
Posté le 26-05-2011 à 13:50:21  profilanswer
 

Bonjour à tous,
 
Pour mon travail, je dis copier les valeurs d'un fichier A pour les coller dans un autre fichier B. Comme le fichier A  est rempli très souvent, l'idée est d'arriver à le faire automatiquement.
J'ai trouvé une macro sur internet qui répond à ce que j'attend.
Le soucis est qu'il semble y avoir une erreure quelque part.
 
Voici le code :
 
Privat Sub CommandBouton1()
Dim classeurSource As workbook, classeurDestination As Workbook
'ouvrir le classeur source (en lecture seule)
Set classeurSource=Aplication.Workbooks.Open("C:\....\exo suivi argent de poche adultes.xls", ,True)
'définir le classeur destination
Set classeurDestination= ThisWorkbook
'copier les données de la feuille"essai" du classeur source vers la feuille "aaa" du classeur destination
classeurSource.Sheets("essai" ).Cells.Copy
classeurDestination.Sheets("aaa" ).Range("A1" )
'fermer le classeur source
classeurSource.close False
 
End Sub
 
Voila.
Quand je lance la macro, elle bloque à  
classeurDestination.Sheets("aaa" ).Range("A1" )
et me dit qu'il y a une erreur d'execution (numéro 438) car "propriété ou méthode non géré par cet objet"
 
Quelqu'un saurai de quoi il s'agit???
merci d'avance
julie

mood
Publicité
Posté le 26-05-2011 à 13:50:21  profilanswer
 

n°2078501
olivthill
Posté le 26-05-2011 à 16:00:42  profilanswer
 

Il manque le mot "Paste".
Normalement, cela devrait être

classeurDestination.Sheets("aaa" ).Range("A1" ).Paste


 
Edit : Ou bien le problème viendrait peut-être d'un retour à la ligne qui ne devra pas avoir lieu.
Par exemple au lieu de

classeurSource.Sheets("essai" ).Cells.Copy  
classeurDestination.Sheets("aaa" ).Range("A1" )


Il faudrait écrire tout sur la même ligne

classeurSource.Sheets("essai" ).Cells.Copy classeurDestination.Sheets("aaa" ).Range("A1" )


Message édité par olivthill le 26-05-2011 à 16:25:22
n°2078516
julielef
Posté le 26-05-2011 à 16:52:44  profilanswer
 

merciiiiiiiiiiiiiiiiiiiiiiiiiii olivthill
ca fonctionne!!!
a bientôt

n°2078672
julielef
Posté le 27-05-2011 à 14:35:09  profilanswer
 

Bonjour,
Je fais encore appel à votre savoir.
La macro que j'ai fonctionne très bien.
 
Private Sub CommandBouton1()  
Dim classeurSource As workbook, classeurDestination As Workbook  
'ouvrir le classeur source (en lecture seule)  
Set classeurSource=Aplication.Workbooks.Open("C:\....\exo suivi argent de poche adultes.xls", ,True)  
'définir le classeur destination  
Set classeurDestination= ThisWorkbook  
'copier les données de la feuille"essai" du classeur source vers la feuille "aaa" du classeur destination  
classeurSource.Sheets("essai" ).Cells.Copy classeurDestination.Sheets("aaa" ).Range("A1" )  
'fermer le classeur source  
classeurSource.close False
end sub
 
A présent j'aimerais inclure une condition dans cette macro qui serais :
Si dans la colonne B du fichier A il y a la valeur :"Baulle", alors Colle uniquement les lignes qui contiennent cette valeur dans le fichier B.
vous croyez que c'est possible??
Comment faire???

n°2078827
otobox
Maison fondée en 2005
Posté le 28-05-2011 à 00:42:27  profilanswer
 

Oui, c'est possible, mais c'est plus compliqué qu'un bête copier-coller.
Il faut parcourir la sélection du 1er classeur avec une boucle, trouver la valeur voulue et si trouvée, recopier sur la première ligne vide trouvée du 2nd classeur l'intégralité de la ligne du 1er classeur.
 
Rien de très compliqué en soi, mais il faut connaitre un peu le vba pour ça.


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
n°2079072
julielef
Posté le 30-05-2011 à 11:36:19  profilanswer
 

Merci Otobox pour ta réponse,
 
Je suis novice en VBA, généralement j'arrive à me débrouiller en recopiant par ci par là des bouts de macro, et en bidouillant un peu les codes...
Pas très pratique parfois, ça me prend beaucoup de temps pour arriver à faire des trucs simple...
Une boucle c'est quoi? Do...Loop par exemple??
Ou dois-je préciser la condition a rechercher???
Je poste mon code de base, celui qui dit à la macro d'ouvrir le fichier A, de copier les valeures, et de les coller sur le fichier B.
 
Privat Sub CommandBouton1()  
Dim classeurSource As workbook, classeurDestination As Workbook  
'ouvrir le classeur source (en lecture seule)  
Set classeurSource=Aplication.Workbooks.Open("C:\....\exo suivi argent de poche adultes.xls", ,True)  
'définir le classeur destination  
Set classeurDestination= ThisWorkbook  
'copier les données de la feuille"essai" du classeur source vers la feuille "aaa" du classeur destination  
classeurSource.Sheets("essai" ).Cells.Copy classeurDestination.Sheets("aaa" ).Range("A1" )  
'fermer le classeur source  
classeurSource.close False  
 
End Sub  
 
Je ne sais pas si on peut insérer une condition là dedans ou si je dois changer de code pour cela.
Merci de me répondre
julielef  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA EXCEL : copier coller des valeurs automatiquement

 

Sujets relatifs
mise à jour tables access en VBAComparer 2 feuilles Excel VBA
[Excel-VBA] Rajouter Série .newseriesVBA Lien Catia - Excel / ou comment créer une liaison vers un classeur
Comment copier une partie d'une colonne avec condition?Inserer des renvoi dans un doc word via une macro VB excel
Problème avec envoi d'email depuis Excel en passant par outlook 
Plus de sujets relatifs à : VBA EXCEL : copier coller des valeurs automatiquement


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR