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

  • Initiateur de la discussion Initiateur de la discussion débutantplus
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

débutantplus

Guest
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
 
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
847
Réponses
4
Affichages
692
Réponses
4
Affichages
733
Réponses
15
Affichages
662
Réponses
10
Affichages
634
Retour