Simplifier code pour effacer

Bonsoir,

Je cherche à simplifier ce code qui efface des cellules à partir d'un userform

Merci

Private Sub CommandButton2_Click()

Dim rep As Integer

rep = MsgBox("Voulez-vous supprimer le code analytique " & TextBox1 & " " & TextBox2, vbQuestion + vbYesNo)

If rep = vbYes Then

SdA.Cells(LI, 1).ClearContents

SdA.Cells(LI, 2).ClearContents

SdA.Cells(LI, 3).ClearContents

SdA.Cells(LI, 4).ClearContents

SdA.Cells(LI, 5).ClearContents

SdA.Cells(LI, 6).ClearContents

SdA.Cells(LI, 7).ClearContents

SdA.Cells(LI, 8).ClearContents

SdA.Cells(LI, 17).ClearContents

SdA.Cells(LI, 18).ClearContents

SdA.Cells(LI, 19).ClearContents

SdA.Cells(LI, 20).ClearContents

SdA.Cells(LI, 21).ClearContents

SdA.Cells(LI, 22).ClearContents

SdA.Cells(LI, 23).ClearContents

SdA.Cells(LI, 24).ClearContents

SdA.Cells(LI, 25).ClearContents

SdA.Cells(LI, 26).ClearContents

SdA.Cells(LI, 27).ClearContents

End If

End Sub

Bonsoir Citaro, bonsoir le forum,

Je n'ai pas bien compris si ta plage allait des colonnes 1 à 27 ou si elle se composait de deux plages, colonnes 1 à 8 puis colonnes 17 à 27...

• 1er cas, tu peux faire

SdA.Range(SdA.Cells(LI, 1), SdA(Cells(LI, 27)).ClearContents

ou

SdA.Cells(LI, 1).Resize(1, 27).ClearContents

• 2ème cas

Application.Union(SdA.Range(SdA.Cells(LI, 1), SdA(Cells(LI, 8)), SdA.Range(SdA(Cells(LI, 17), SdA(Cells(LI, 27))).ClearContents

Bonjour ThauThème,

C'est le 2ème cas le code :

Application.Union(SdA.Range(SdA.Cells(LI, 1), SdA(Cells(LI, 8)), SdA.Range(SdA(Cells(LI, 17), SdA(Cells(LI, 27))).ClearContents

provoque une erreur : Attendu séparateur de listes ou )

Donc j'ai pris le code du 1er cas 2 fois :

SdA.Cells(LI, 1).Resize(1, 7).ClearContents

SdA.Cells(LI, 1).Resize(17, 27).ClearContents

Merci

Citaro

Re,

Tu as eu aussi d'autres réponses dans un autre forum... Tu n'as que l'embarras du choix.

Oui, j'ai vu

Merci bien

Rechercher des sujets similaires à "simplifier code effacer"