[VBA-E] Problème pour macro collage spécial

Problème pour macro collage spécial [VBA-E] - VB/VBA/VBS - Programmation

Marsh Posté le 29-10-2009 à 11:28:56    

Bonjour,
J'ai un problème avec une macro qui effectue un collage spécial (copie des valeurs sans les formules) vers un nouveau classeur après un clic sur un bouton puis enregistrement du nouveau classeur.
Voici le code utilisé :
 
Public Sub CommandButton1_Click()
sortie = "Sortie" & ".xlsx"
ActiveSheet.Select
Range("A1:B7" ).Select
Selection.Copy
Workbooks.Add.SaveAs sortie
Worksheets.Add.Name = "Consommation"
Workbooks(sortie).Activate
Sheets("Consommation" ).Select

'Jusqu'ici tout va bien le classeur avec une feuille consommation est bien créé.
'J'ai une erreur ensuite, une alertbox comportant seulement le texte "400" !
Range("A1" ).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Workbooks(sortie).Save
Workbooks(sortie).Close
End Sub

 
Merci d'avance pour vos réponses

Reply

Marsh Posté le 29-10-2009 à 11:28:56   

Reply

Marsh Posté le 02-11-2009 à 14:31:39    

C'est "assez simple" en fait
Excel degage ton Copy apres une autre action. Que ca soit en code, ou en utilsiation "normale".
 
D'ailleurs tu aurais du voir que ta selection n'avait pas les petits pointillés clignotants comme lors d'un copier. ;)
 
Il faut que tu copies et colles quasiment a la suite.
 

  • Tu créés ton nouveau fichier.
  • Tu atteinds ton premier fichier.
  • Tu copies ta selection.
  • Tu atteinds ton nouveau fichier.
  • Tu colles.
  • Enjoy


Code :
  1. Public Sub CommandButton1_Click()
  2.     sortie = "Sortie" & ".xls"
  3.     'sauvegarde du nom du classeur et de la feuille active
  4.     originefeuille = ActiveSheet.Name
  5.     origineclasseur = ActiveWorkbook.Name
  6.     'creation de ton doc "sortie"
  7.     Workbooks.Add.SaveAs sortie
  8.     Worksheets.Add.Name = "Consommation"
  9.    
  10.     'retour sur le fichier d'origine pour copier
  11.     Workbooks(origineclasseur).Activate
  12.     Sheets(originefeuille).Select
  13.     Range("A1:B7" ).Select
  14.     Selection.Copy
  15.    
  16.     'collage dans le classeur créé
  17.     Workbooks(sortie).Activate
  18.     Sheets("Consommation" ).Select
  19.     Range("A1" ).Select
  20.     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  21.     Workbooks(sortie).Save
  22.     Workbooks(sortie).Close
  23. End Sub


Message édité par SuppotDeSaTante le 02-11-2009 à 14:31:52

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 03-11-2009 à 14:58:48    

Merci beaucoup,
J'avais encore une erreur persistante mais en supprimant le  Range("A1" ).Select avant le paste special ça fonctionne.
 
Maintenant j'ai un autre souci, je voudrais qu'il réalise un collage spécial comme quand je fais coller les valeurs et formats des nombres.
Dans la macro actuelle il ne fait que les valeurs, j'arrive aussi à faire seulement le format. Mais les 2 je ne trouve pas ?
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 04-11-2009 à 12:45:09    

Il faut faire les deux a la suite non ?
 
Un coup tu colles les valeurs, puis les formats.
 

Code :
  1. '
  2. Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  3. Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False


 
Ou alors j'ai pas compris la question...


Message édité par SuppotDeSaTante le 04-11-2009 à 12:45:37

---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

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