Comment copier/coller a l identique avec macro ?

anthony.unac

XLDnaute Occasionnel
Bonjour,

Le but de la manoeuvre est de copier coller a l identique une matrice sur une nouvelle feuille (insertion nouvelle feuille).
Voici un probleme qui se resout facilement a la main a l aide d un edition copier puis edition colle mais qui s avere redoutable lorsqu il s agit de l ecrire sous forme d une macro.

Pour ma part, j en suis arrive a ceci :

Code:
Sub Nouveau()

nom = Range("O4").Value
'Sheets.Add.Name = [I2]
ActiveSheet.Copy after:=Worksheets(ThisWorkbook.Worksheets.Count)

With ActiveSheet
    .Name = nom

    .Range("D6:D36").ClearContents
    .Range("E6:E36").ClearContents
    .Range("G6:G36").ClearContents
    .Range("H6:H36").ClearContents
    .Range("J6:J36").ClearContents
    .Range("K6:K36").ClearContents
    
    lig = 6
    For jour = 1 To 31
        .Range("B6:M6").Copy
        .Range("B" & lig & ":M" & lig).PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Range("B" & lig & ":M" & lig).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Range("B" & lig & ":M" & lig).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Range("B" & lig & ":M" & lig).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Range("B" & lig & ":M" & lig).PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        .Range("B" & lig).Value = jour
        
        Application.CutCopyMode = False
        
        lig = lig + 1
        
    Next jour
    
End With

    
End Sub

et la malheureusement, je perds les formules qui se trouvaient dans les cellules C6 a C36 mais egalement M6 a M36 :(

Que faire ?

Cordialement
Anthony
 

Pièces jointes

  • Les Comptes.xls
    32.5 KB · Affichages: 55
  • Les Comptes.xls
    32.5 KB · Affichages: 59
  • Les Comptes.xls
    32.5 KB · Affichages: 60

youky(BJ)

XLDnaute Barbatruc
Re : Comment copier/coller a l identique avec macro ?

Bonjour Anthony,
essai cela tout simplement pour créer une copie de l'onglet.
Tu conserves la mise en page le mieux est d'avoir un modèle vierge
En manuel Menu/Edition/Déplacer ou copier une feuille...cocher créer une copie
A+
Code:
Sheets("octobre 2009").Copy After:=Sheets(Sheets.Count)
 

anthony.unac

XLDnaute Occasionnel
Re : Comment copier/coller a l identique avec macro ?

Bonjour Anthony,
essai cela tout simplement pour créer une copie de l'onglet.
Tu conserves la mise en page le mieux est d'avoir un modèle vierge
En manuel Menu/Edition/Déplacer ou copier une feuille...cocher créer une copie
A+
Code:
Sheets("octobre 2009").Copy After:=Sheets(Sheets.Count)

Bonjour,

A la vache, c est toi qui est dans le vrai.
Toutes ces foutaises de collage speciaux m ont cree plus de problemes qu autre chose.
Je les ai tout simplement supprime pour me contenter d un simple :

Code:
Sub Nouveau()

nom = Range("O4").Value
'Sheets.Add.Name = [I2]
ActiveSheet.Copy after:=Worksheets(ThisWorkbook.Worksheets.Count)

With ActiveSheet
    .Name = nom

    .Range("D6:D36").ClearContents
    .Range("E6:E36").ClearContents
    .Range("G6:G36").ClearContents
    .Range("H6:H36").ClearContents
    .Range("J6:J36").ClearContents
    .Range("K6:K36").ClearContents
    
End With
    
End Sub

...et c est une affaire qui roule ;)
merci beaucoup donc pour ce precieux conseil

A+
Anthony
 

Discussions similaires

Réponses
5
Affichages
174

Statistiques des forums

Discussions
312 452
Messages
2 088 535
Membres
103 879
dernier inscrit
JJB2