Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Clear liste d'une cellule via VBA

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
J'ai une liste déroulante dans une cellule à 3 choix : 2 + 1 vide
J'aimerai dans ma sub vba effacer si choix effectué comme
"" vide
Espèce
chèque
donc si la cellule contient Espèce j'efface
merci
 
C

Compte Supprimé 979

Guest
Salut Herve62

Tout ou presque peut se faire en VBA

Voici le fichier avec ce que j'ai compris, dites-nous

A+
 

Pièces jointes

  • Herve62_clear.xlsm
    21.5 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour herve62, Bruno,

@BrunoM45 il y a bug sur If Target.Value = "espece" Then si entrées multiples...

Pour effacer toutes les entrées de ce mot j'utilise plutôt :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Cells.Replace "espece", ""
End Sub
A+
 
C

Compte Supprimé 979

Guest
@job75

A part le fait que mon code est plus long, il fonctionne parfaitement
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Value = "espece" Then
    Application.EnableEvents = False
    Target.ClearContents
    MsgBox "Valeur effacée", vbInformation, "C'EST FAIT..."
    Application.EnableEvents = True
  End If
End Sub

Pourquoi est-ce que je désactive les évènements, car j'ai déjà vu des plantages d'Excel avec Change

Ensuite, je n'aime pas développer par référence directe [B5] c'est pour les fainéants et un peu moins digeste pour VBE (c'est peut être plus rapide à écrire, mais aussi 3 fois plus long à traiter pour le processeur)

Donc désolé si cela te dérange, mais ça restera ma méthode
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…