Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Effacer avant enregistrement

2 réponses
Avatar
Clémentine
Bonjour =E0 tous,

J'ai un petit bout de code qui met un "X" en An si la=20
ligne est modifi=E9e.

Je souhaite, avant l'enregistrement du fichier, permettre=20
=E0 l'utilisateur=20
de supprimer ou non le contenu de cette colonne.

J'ai essay=E9 (apr=E8s maintes lectures google) :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As=20
Boolean, Cancel As Boolean)
Message =3D MsgBox("Souhaitez-vous effacer la colonne A ?",=20
vbYesNo)
Select Case Message
Case Is =3D vbNo
Cancel =3D True
ActiveWorkbook.Save
Case Else
Cancel =3D False
Columns("A:A").Select
Selection.ClearContents
End Select
End Sub

mais =E7a ne fonctionne pas bien, si je r=E9ponds non il ne=20
me propose pas d'enregistrer le fichier et si je r=E9ponds=20
oui c'est mieux, mais la celulle A1 n'est pas effac=E9e.

A vous qui avez le privil=E8ge de lire mon tout premier=20
code VBA (sans enregistreur), mille remerciements pour=20
votre aide.

Cl=E9mentine

2 réponses

Avatar
dcdc2
ce qui se passe est normal,
déjà puisque tu veux enregistrer dans tous les cas, tu n'as pas à jouer sur
cancel,
laisse les choses se faire normalement. Tu dois juste décider de quoi
faire avant l'enregistrement.

Ensuite pour définir une colonne, tu dois la définir convenablement:
columns("A"), columns(1) ou range("A:A")

essaye quelque chose de ce genre:

Message = MsgBox("Souhaitez-vous effacer la colonne A ?", vbYesNo)
if Message = vbYes then
range("A:A").ClearContents
end if

d'ailleurs, puisque tu peux avoir plusieurs feuilles en cours ou plusieurs
classeurs en même temps, je mettrais une sécurité du genre:
Feuil1.range("A:A").clearContents
Avatar
Clémentine
Merci beaucoup dcdc2,

Mais saurais-tu me dire pourquoi il est impossible
d'effacer le contenu de la celulle A1 ?

Clémentine