Microsoft 365 effacer commentaire

pamela85200

XLDnaute Nouveau
Bonjour,

J'ai besoin de vos lumières, je vous mets juste un petit bout du gros classeur que je suis en train de construire,

J'ai un onglet recap ou j'ai j'inscris dans un tableau des numéros et cela va se dispatcher sur les onglets de ce numéro inscrit,

Par contre dans chaque onglet de ces numéros, je voudrais rajouter au tableau une colonne commentaire mais que le contenu de cette cellule s'efface en auto,

Je ne sais pas si je suis clair,

Voici en PJ le tableau

Merci par avance,
 

Pièces jointes

  • Classeur1.xlsx
    12.1 KB · Affichages: 13

vgendron

XLDnaute Barbatruc
Bonjour

effectivement, c'est pas très clair
Je pense que tu as mis un trop petit bout de ton classeur
tu dis que les numéros vont se dispatcher.. comment, à quel moment,, avec une macro??
c'est celle ci qu'il faudrait modifier pour effacer le commentaire au moment du dispatch..
 

vgendron

XLDnaute Barbatruc
1) dans ton fichier, je ne vois aucun filtre ni aucune formule.. c'est trop léger..
2) pour effacer le contenu d'une cellule: il n'y a que deux solutions
soit tu supprimes à la main, soit il faut un code macro pour le faire..

pardon, je n'avais pas vu les filtres dans la feuille..
désolé, je vais pas pouvoir t'aider.. je ne suis pas sur la meme version excel, et les fonctions utilisées dans ton classeur n'existent pas chez moi
 
Dernière édition:

scraper

XLDnaute Nouveau
dans RECAP
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim MyValue As Variant
  Dim r As Range
  Dim cell As Range, fd As Range
If Intersect(Range("B:B"), Target) Then
  Set r = Sheets("1").Range("B:B")
  Set fd = r.Find(Cells(Target.Row, 1).Value, LookIn:=xlValues)
  If Not fd Is Nothing Then
    Sheets("1").Cells(fd.Row, 2) = ""
    Sheets("1").Cells(fd.Row, 3) = ""
    Sheets("1").Cells(fd.Row, 4) = ""
  End If
End If
End Sub
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@pamela85200

Je te propose ce fichier

==> Voir les commentaires dans le code

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig&, NewValue, OldValue, i&
DerLig = Worksheets("Recap").Range("A" & Rows.Count).End(xlUp).Row
If Not Application.Intersect(Target, Range("B7:B" & DerLig)) Is Nothing Then
    With Target
        Application.EnableEvents = False
        NewValue = .Value
        Application.Undo
        OldValue = .Value
        .Value = NewValue
        If OldValue <> NewValue Then
            ChercheNom = Target.Offset(, -1)
            For i = 3 To 10
                If Worksheets("1").Range("B" & i).Value = ChercheNom Then
                    Worksheets("1").Range("D" & i).Value = ""
                    '******** Les 2 lignes suivantes pour sortir des que le 1er client est trouvé
                    '******** Sinon cela supprimera TOUS les commentaires du même client
                    Application.EnableEvents = True
                    Exit Sub
                    '*********
                End If
            Next i
        End If
        Application.EnableEvents = True
    End With
End If
End Sub

Merci de ton retour
 

Pièces jointes

  • Suppression avec condition V1.xlsm
    15.9 KB · Affichages: 5

job75

XLDnaute Barbatruc
Bonjour,

Ce problème n'est pas bien cohérent.

En effet en feuille "1" les valeurs en colonnes B et C sont calculées par formules et elles changent donc de place quand on modifie les valeurs en feuille RECAP.

Tandis que les commentaires en colonne D ne changent pas de place puisqu'ils sont entrés manuellement.

A+
 

job75

XLDnaute Barbatruc
Voyez tout de même le fichier joint et ce code dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Val(Sh.Name) = 0 Then Exit Sub
Dim derlig&, i&, x$, y$, j, z$
derlig = Sh.Cells.SpecialCells(xlCellTypeLastCell).Row
Application.EnableEvents = False
If Sh.Cells(3, "AB") <> "" Then
    Sh.Range("D3:D" & Sh.Rows.Count).ClearContents 'RAZ
    For i = 3 To derlig
        x = Sh.Cells(i, "B")
        If x = "" Then Exit For
        For j = 3 To derlig
            y = Sh.Cells(j, "AB")
            If y = "" Then Exit For
            If y = x And Sh.Cells(i, "D") = "" Then Sh.Cells(i, "D") = Sh.Cells(j, "AD"): Exit For
    Next j, i
End If
'---stockage---
Sh.Range("AB3:AD" & derlig) = Sh.Range("B3:D" & derlig).Value 'plage à adapter
Application.EnableEvents = True
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = False
If Val(Sh.Name) Then Sh.[AB:AD].ClearContents
Workbook_SheetActivate Sh
Application.EnableEvents = True
End Sub
Bonne nuit.
 

Pièces jointes

  • Classeur(1).xlsm
    23.4 KB · Affichages: 3

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh