Effacer le contenu de cellules d'une feuille en fonction des valeurs d'une autre feuille

Poulet

XLDnaute Nouveau
Bonjour,

Je me permets de vous écrire car je rencontre des difficultés au niveau du code vba.

J'aimerais que dans ma feuil1 lorsque un secteur (colonne A) :

- possède au moins une action non soldée (colonne B) , cela m'efface le contenu de ma feuil 2 (colonne B et C) pour le secteur concerné .

Je vous ai écris un exemple dans mon excel afin de mieux comprendre mon problème.

Je vous joins mon fichier de suite !


Merci d'avance, en éspérant que vous pourrez m'aider à nouveau en vba
 

Pièces jointes

  • Fichier excel.xlsx
    11.2 KB · Affichages: 13

Markotxe

XLDnaute Nouveau
Bonjour Poulet,
J'ai fait un petit truc, j'espère que ça te conviendra.
Bon, c'est un peu bourrin, y'a surement plus simple mais ça a l'air de marcher. (faut juste appuyer sur le bouton bleu)
P.S: J'ai du utiliser une colonne (D)
Bonne soirée
 

Pièces jointes

  • Test triage.xlsm
    19.7 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour Poulet, Markotxe,

Voici une solution très rapide sur de grands tableaux car elle utilise des tableaux VBA et le Dictionary.

Le code dans le module de la 2ème feuille du fichier joint (clic droit sur l'onglet et Visualiser le code) :
VB:
Private Sub Worksheet_Activate()
'Feuil1 et Feuil2 sont les CodeNames des feuilles, à adapter
Dim tablo, d As Object, i&
tablo = Feuil1.[A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo)
    d(tablo(i, 1)) = tablo(i, 2) Like "*non*" Or d(tablo(i, 1))
Next
With Feuil2.[A1].CurrentRegion.Resize(, 3)
    tablo = .Value 'matrice, plus rapide
    For i = 2 To UBound(tablo)
        If d(tablo(i, 1)) Then tablo(i, 2) = "": tablo(i, 3) = ""
    Next
    Application.EnableEvents = False 'désactive les évènements
    If FilterMode Then ShowAllData 'si la feuille est filtrée
    .Value = tablo
    Application.EnableEvents = True 'réactive les évènements
End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheet_Activate 'lance la macro
End Sub
Exécution quand on active la feuille ou valide/modifie une cellule quelconque.

A+
 

Pièces jointes

  • Fichier excel(1).xlsm
    24.9 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 323
Membres
102 862
dernier inscrit
Emma35400