1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Sub CopierLigneEntreeAvecCreationDeFeuille()
Dim wksSource As Worksheet
Dim wkb As Workbook
Dim rng As Range
Dim c As Range
' prendre en note la feuille source car elle ne sera plus la feuille active
' apres la création d'une nouvelle feuille
Set wksSource = ActiveSheet
With wksSource
' Creer une nouvelle feuille dans le classeur
On Error Resume Next
Set wkb = .Parent
wkb.Worksheets.Add After:=wkb.Worksheets(wkb.Worksheets.Count)
' S,il y a une erreur lors de la création de la feuille, terminer le processus
If Err.Number <> 0 Then
Err.Clear
Exit Sub
End If
On Error GoTo 0
' Copier la première ligne de la feuille source
.Cells(1, 1).Resize(1, .UsedRange.Columns.Count).Copy
' prendre en note la plage/ligne de destination
Set rng = .Cells(.UsedRange.Rows.Count + 1, 1).Resize(1, .UsedRange.Columns.Count)
' coller sur la^première ligne libre de la feuille source...
rng.Cells(1).PasteSpecial
' ... et sur la première ligne de la nouvelle feuille
ActiveSheet.Cells(1).PasteSpecial
End With
' Effacer le contenu de toutes les cellule ne contenant pas de formule
For Each c In rng
If Not Left(c.Formula, 1) = "=" Then
c.Clear ' Effacer le contenu de celles qui ne commencent pas par "="
End If
Next c
' réactiver la feuille source
wksSource.Activate
End Sub |
Partager