[Solutionné][VBA] erreur avec Paste, je comprends pas pourquoi

erreur avec Paste, je comprends pas pourquoi [Solutionné][VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 10-03-2008 à 17:22:11    

Bonjour,
 
Ma macro semble simple, et pourtant je ne comprends le plantage :
Le but est d'ouvrir un fichier excel (160021.xls), de copier la feuille active, d'ouvrir un autre fichier (16.xls) de créer un onglet et d'y coller ce que j'ai copié précédemment.
Tout ce déroule bien, sauf le Past.
J'ai débuggé à base de "msgbox" comme vous pouvez le voir, et ya que là qu'il y a un soucis : "erreur d'exécution 1004 : erreur définie par l'objet..."
 
Le plus fort, c'est qu'une fois que ca a planté, si je vais sur la feuille où je voulais coller, j'ai juste à faire "Ctrl+v" et ca colle.
 
Ca fait plus de deux heures que je cherche une solution, j'y arrive pas, please help  :cry:  
 

Code :
  1. Sub Copie(nomOnglet)
  2. '
  3. ' Copie Macro
  4. '
  5.     If test_fichier_ouvert("16.xls" ) = False Then
  6.         Workbooks.Open Filename:="C:\Documents and Settings\All Users\Bureau\test\16.xls"
  7.     Else
  8.         Workbooks("16.xls" ).Activate
  9.     End If
  10.     Call CreerOnglet("16.xls", nomOnglet, False)
  11.     If test_fichier_ouvert("160021.xls" ) = False Then
  12.         Workbooks.Open Filename:="C:\Documents and Settings\All Users\Bureau\test\tout\160021.xls"
  13.     Else
  14.         Workbooks("160021.xls" ).Activate
  15.     End If
  16.    
  17.     Cells.Select
  18.     MsgBox "on a sélectionné"
  19.     Selection.Copy
  20.     MsgBox "on a copié"
  21.     Workbooks("16.xls" ).Activate
  22.     MsgBox "on a changé de feuille"
  23.     ActiveSheet.Paste
  24.     MsgBox "on a collé et c'est fini"
  25. End Sub


Message édité par tuxbleu le 10-03-2008 à 18:38:15
Reply

Marsh Posté le 10-03-2008 à 17:22:11   

Reply

Marsh Posté le 10-03-2008 à 18:00:07    

Paste (avec un "e" à la fin et qui est prononcé "peste" ) est différent selon le type de données auquel il est appliqué.
En l'occurence, comme la copy concerne une selection, je crois qu'il faudrait faire un paste d'une selection, donc remplacer "ActiveSheet.Paste" par "Selection.paste".

Reply

Marsh Posté le 10-03-2008 à 18:08:24    

olivthill a écrit :

Paste (avec un "e" à la fin et qui est prononcé "peste" ) est différent selon le type de données auquel il est appliqué.
En l'occurence, comme la copy concerne une selection, je crois qu'il faudrait faire un paste d'une selection, donc remplacer "ActiveSheet.Paste" par "Selection.paste".


oui, désolé pour le "e" manquant, ca veut forcement rien dire comme je l'avais écris :jap:
 
donc, j'ai essayé en suivant ton conseil :  
 

Code :
  1. Cells.Select
  2.     MsgBox "on a sélectionné"
  3.     Selection.Copy
  4.     MsgBox "on a copié"
  5.     Workbooks("16.xls" ).Activate
  6.     MsgBox "on a changé de feuille"
  7.     Cells.Select
  8.     MsgBox "on a re-selectionné"
  9.     Selection.Paste
  10.     MsgBox "on a collé et c'est fini"

 
 
Et j'ai une autre erreur : "Erreur 438 : propriété ou métode non gérée par cet objet"
 
Une idée ? merci du premier indice en tout cas  :)

Reply

Marsh Posté le 10-03-2008 à 18:37:53    

Solutionné !!!
Il fallait sélectionner un range avant le paste : ActiveWorkbook.ActiveSheet.Range("A1" ).Select
 

Code :
  1. Cells.Select
  2.     MsgBox "on a sélectionné"
  3.     Selection.Copy
  4.     MsgBox "on a copié"
  5.     Workbooks("16.xls" ).Activate
  6.     MsgBox "on a changé de feuille"
  7.     MsgBox "on a re-selectionné"
  8.     ActiveWorkbook.ActiveSheet.Range("A1" ).Select
  9.     ActiveWorkbook.ActiveSheet.Paste
  10.     MsgBox "on a collé et c'est fini"


 
Ca, ca plante pas.  :wahoo:

Reply

Sujets relatifs:

Leave a Replay

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