Copie plage cellules dans un onglet d'un autre fichier

Copie plage cellules dans un onglet d'un autre fichier - VB/VBA/VBS - Programmation

Marsh Posté le 17-06-2006 à 09:00:54    

Voila, tout est à peu près dans le titre.
J'ai un programme qui est "sensé" recopier une plage de cellule de mon fichier actif dans un autre fichier (dont le chemin est indiqué dans une cellule, le nom du fichier dans une autre cellule et le nom du nouvel onglet à crée dans une tierve cellule).
 
Cependant mon programme répuère bien le fichier, l'ouvre, créer bien mon nouvel onglet mais je n'arrive pas à coller ma plage de cellule sélectionnée dedans ... normalement c'est là que vous intervenez ! (enfin je l'espère vraiment  :) )
 
Voici mon PG:

Code :
  1. Sub Insertion_onglet()
  2. Dim Emplacement As String
  3. Dim W1 As Workbook
  4. Dim titi As String
  5. Set W1 = ThisWorkbook
  6. titi = Range("E126" )
  7. Emplacement = ActiveWorkbook.Sheets(2).Range("E124" )
  8.    
  9.    
  10. W1.Activate
  11.     Sheets(2).Select
  12.     Range("A1:H115" ).Select
  13.     Application.CutCopyMode = False
  14.     Selection.Copy
  15.      
  16.     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
  17.         :=False, Transpose:=False
  18.     Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
  19.         SkipBlanks:=False, Transpose:=False
  20.  
  21.    ChDir _
  22.         Emplacement
  23.            
  24.    Workbooks.Open Filename:= _
  25.         Emplacement & "\" & Range("E125" ) & ".xls"
  26.    
  27.     Sheets.Add
  28.     Sheets("Feuil1" ).Select
  29.     Sheets("Feuil1" ).Name = titi
  30.     Range("A1" ).Select
  31.     Cells.Select
  32.     Selection.Paste
  33.     Application.CutCopyMode = False
  34.     ActiveWorkbook.Save
  35.     ActiveWindow.Close
  36.    
  37. End Sub

Reply

Marsh Posté le 17-06-2006 à 09:00:54   

Reply

Marsh Posté le 17-06-2006 à 09:29:50    

bonjour,
remplacer les lignes 32 à 37 par :
 
Sheets.Add
ActiveSheet.Name = titi
'Range("A1" ).Select 'inutile pour Range("A1" )
ActiveSheet.Paste
 
A+


Message édité par galopin01 le 17-06-2006 à 09:30:37
Reply

Marsh Posté le 17-06-2006 à 09:47:04    

et bien merci et si en plus tu pouvais me dire comment faire pour garder la mise en forme de ma plage de cellule dan sle nouvel onglet ce serait géant
 
Mais en tout cas merci bcp

Reply

Marsh Posté le 17-06-2006 à 10:59:39    

bonjour,  
par défaut Paste copie également les formats
- Sauf largeur de colonne et hauteur de ligne pour lesquels il faudra que tu gères des variables en tableau ou que tu procèdes en boucle.
 
Nota : Pour les largeurs de colonne il y a un PasteSpécial :
Selection.PasteSpecial Paste:=xlPasteColumnWidths
 
curieusement il n'existe pas d'équivalent pour les hauteurs de lignes qu'il faut se coltiner à la manivelle...
 
A+

Reply

Sujets relatifs:

Leave a Replay

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