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

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é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
 
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

Discussions similaires

Réponses
4
Affichages
332
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
481
Réponses
15
Affichages
662
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
3
Affichages
569
Retour