VBA EXCEL : copier coller des valeurs automatiquement - VB/VBA/VBS - Programmation
Marsh Posté le 26-05-2011 à 16:00:42
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 |
Il faudrait écrire tout sur la même ligne
classeurSource.Sheets("essai" ).Cells.Copy classeurDestination.Sheets("aaa" ).Range("A1" ) |
Marsh Posté le 26-05-2011 à 16:52:44
merciiiiiiiiiiiiiiiiiiiiiiiiiii olivthill
ca fonctionne!!!
a bientôt
Marsh Posté le 27-05-2011 à 14:35:09
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???
Marsh Posté le 28-05-2011 à 00:42:27
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.
Marsh Posté le 30-05-2011 à 11:36:19
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
Marsh Posté le 26-05-2011 à 13:50:21
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