Automatiser la copie d'un fichier vers un autre fichier

Automatiser la copie d'un fichier vers un autre fichier - VB/VBA/VBS - Programmation

Marsh Posté le 24-05-2006 à 15:34:01    

Bonjour,
Je vous précise tout d'abord mon problème :  
 
Je dois copier une cellule précise d'un fichier E1 vers une cellule précise d'un fichier E2.  
Par comodité, on dira de la cellulle B1 du fichier E1 vers la cellule B2 du fichier E2.  
Seulement cette copie doit s'effectuer par l'intermédiaire d'un bouton.  
De sorte que, lorsque je clique sur le bouton, une fenêtre s'ouvre pour me demander de selectionner le fichier E2, qui une fois selectionner, me copie directement la cellule B1 de E1 vers la cellule B2 de E2.
 
J'ai essayer avec le recorder, et j'ai reussi à faire une macro sur un bouton qui copie une cellule du fichier E2 vers une cellule du fichier E1.
Mais il y a plusieurs problème et d'autres modifications que j'aimerai apporter :
- Je voudrais que le fichier dans lequel je copie la cellule soit le fichier ouvert et non pas le fichier spécifique à celui qui a servie à créer la maccro (en gros la copie devrait s'effectuer sur le fichier ouvert)
- Je voudrais que le "coller" passe à la ligne d'en dessous au prochain clique sur le "bouton"
 
On aurait par exemple :
 
Premier clique sur le bouton : Je copie la cellule B2 du fichier E2 dans la cellule B1 du fichier E1  
Puis un deuxième clique plus tard : Je copie la cellule B2 du fichier E3 dans la cellule C1 du fichier E1  
Et ainsi de suite (ce procédé permettant de mettre à jour des données sur différents mois par exemple).  
 
Je pense qu'il faut peut être changer quelque chose dans cette portion du code pour le problème du fichier ouvert :  
Windows("classeur1.xls" ).Activate  
Range("C16" ).Select  
Selection.Copy  
Windows("Classeur1" ).Activate

Mais je n'en suis pas persuadé.
 
Ensuite pour la copie de cellule, il faut peut être faire une sorte de boucle ou de compteur. Je ne sais pas.
Si vous avez des idées, une solution, un code qui fonctionne, à me fournir, je suis tout ouïe ! Car j'ai vraiment de grosse lacune en VBA.
 
Merci d'avance.
Bonne journée à tous !  
 
PS : Si je n'ai pas été assez clair, n'hésiter pas à me demander de plus amples précisions.
 

Reply

Marsh Posté le 24-05-2006 à 15:34:01   

Reply

Marsh Posté le 26-05-2006 à 19:03:43    

Voilà un exemple qui devrait t'aider.
La macro "boucle" sur la boite de sélection de fichier jusqu'à une sortie par "Annuler".

Code :
  1. Sub Test()
  2.     Do
  3.         monFichier = Application.GetOpenFilename("Fichiers Excels (*.xls), *.xls" )
  4.         If monFichier = False Then
  5.             Exit Do
  6.         End If
  7.         Application.Workbooks.Open monFichier
  8.         laValeur = ActiveSheet.Range("B2" ).Value
  9.         ActiveWorkbook.Close (False)
  10.         ThisWorkbook.Activate
  11.         ActiveCell.Value = laValeur
  12.         ActiveCell.Offset(1).Activate
  13.     Loop
  14. End Sub


Ce n'est peut-être pas la façon la plus efficace de faire puisque l'on ouvre effectivement, et de façon visible, les fichiers, mais cela correspond à ta demande.
Reste bien sûr à "blinder" tout ça ;)
 
Bon courage.
Bidgii

Reply

Marsh Posté le 29-05-2006 à 16:25:11    

Merci je vais essayer de voir avec ça.
Cela me parait fort interessant !
Merci encore et n'hésitez pas si vous avez d'autres conseils !
 
Edit : merci beaucoup ! J'ai reussi à obtenir quelque chose de très bien grâce à ton code !
Merci beaucoup Bidgii


Message édité par jfox le 01-06-2006 à 12:03:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed