XL 2013 ASTUCE VBA supprimer contenu cellule sans mise en forme ni formule

débutantplus

XLDnaute Junior
Bonjour,
J'ai une macro qui me permet d'envoyer des données sur une autre feuille mais malheureusement j'arrive pas à trouver l'astuce pour que la macro ne me supprime pas la mise e forme ni les formules contenu dans certaines cellules :

Sub enreg_broyage()
Dim lig As Long, i As Integer
With Sheets("Suivi broyage")
lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
For i = 2 To 9
.Cells(lig, i - 1).Value = Cells(5, i).Value
Next
.Range("I" & lig).Value = Range("C8").Value
.Range("J" & lig).Value = Range("D8").Value
.Range("K" & lig).Value = Range("E8").Value
.Range("L" & lig).Value = Range("F8").Value
.Range("M" & lig).Value = Range("G8").Value
End With
Range("c5:I5").ClearContents
Range("c8:G8").ClearContents
End Sub

Sub enreg_filage()
Dim lig As Long, i As Integer
With Sheets("Suivi filage")
lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
For i = 2 To 9
.Cells(lig, i - 1).Value = Cells(15, i).Value
Next
.Range("I" & lig).Value = Range("C18").Value
End With
Range("c15:I15").ClearContents
Range("c18").ClearContents
End Sub

Sub enreg_dechets()
Dim lig As Long, i As Integer, j As Integer
With Sheets("Suivi déchets")
For j = 25 To 31
lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
If Cells(j, 4).Value = "" Then Exit For
For i = 2 To 8
.Cells(lig, i - 1).Value = Cells(j, i).Value
Next
End With
Range("D25:H31").ClearContents
End Sub

Sub enreg_fritage()
Dim lig As Long, i As Integer
With Sheets("Suivi fritage")
lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
For i = 1 To 9
.Cells(lig, i).Value = Cells(5, i + 10).Value
Next
.Range("J" & lig).Value = Range("L8").Value
.Range("K" & lig).Value = Range("M8").Value
.Range("L" & lig).Value = Range("N8").Value
End With
Range("L5:S5").ClearContents
Range("L8:N8").ClearContents
End Sub

Sub enreg_arrets()
Dim lig As Long, i As Integer
With Sheets("Suivi Arrêts")
lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
For i = 1 To 9
.Cells(lig, i).Value = Cells(15, i + 10).Value
Next
End With
Range("L15:S15").ClearContents
End Sub
Si vous avez une astuce de pro je suis preneur à 200%
Merci pour votre aide
 

job75

XLDnaute Barbatruc
Bonjour débutantplus,

Pour ne pas modifier les formats il suffit de copier uniquement les valeurs comme fait votre 1ère macro.

Et pour ignorer les cellules contenant des formules il suffit de tester leur propriété .HasFormula.

A+
 

débutantplus

XLDnaute Junior
Bonjour job75,
Merci pour votre réponse mais je suis incapable de l'intégrer dans la macro...
Est-il possible d'avoir un exemple ?
Cordialement
Sub enreg_broyage()
Dim lig As Long, i As Integer
With Sheets("Suivi broyage")
lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
For i = 2 To 9
.Cells(lig, i - 1).Value = Cells(5, i).Value
Next
.Range("I" & lig).Value = Range("C8").Value
.Range("J" & lig).Value = Range("D8").Value
.Range("K" & lig).Value = Range("E8").Value
.Range("L" & lig).Value = Range("F8").Value
.Range("M" & lig).Value = Range("G8").Value
End With
Range("c5:I5").ClearContents
Range("c8:G8").ClearContents
End Sub
Les formules sont dans les cellules G5:C8:G8
Merci encore pour votre aide
 

Statistiques des forums

Discussions
314 698
Messages
2 112 019
Membres
111 400
dernier inscrit
mandaille