Microsoft 365 liste d'aliments à réduire

weblista

XLDnaute Nouveau
Bonjour,
J'ai une liste d'achat où je place les aliments à chaque achat.
Afin de faire une synthèse de ces achats, j'aimerais avoir un tableau récapitulatif avec le total par aliment. Quelle serait la formule pour extraire un aliment par ligne ?
j'ai fait une explication plus détaillée dans le fichier joint.
Merci d'avance de votre aide précieuse !
 

Pièces jointes

  • exemple extract recherché.xlsx
    26.1 KB · Affichages: 20

Claudy

XLDnaute Accro
Bonjour,
si j'ai bien compris tu veux une liste sans doublon?
Tu copies ta liste dans une autre colonne et tu vas dans données...supprimer les doublons.
1573468089494.png


A+
Claudy
 

weblista

XLDnaute Nouveau
Bonjour à tous,

Utiliser le menu Données / Avancé
Regarde la pièce jointe 1045762
merci beaucoup ! @Claudy @mapomme Fonctionnalité à laquelle je n'avais pas pensé...
Ceci dit, c'était plutôt pour mettre sur une autre feuille un extract qui se tient à jour par rapport à ma liste initiale que je vais continuer à alimenter, peut-être avec de nouveaux noms...
Existe-t-il une formule que je puisse glisser sur toute ma colonne pour ne pas à avoir à faire de mises à jour ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Le plus rapide est l'utilisation de VBA.

Le code principal est dans le module de nom Module1.
  1. la procédure AlimentsSansDoublon est lancée quand on ouvre le classeur - voir module de ThisWorkbook
  2. la procédure AlimentsSansDoublon est lancée chaque fois qu'on sélectionne la feuille "Feuil1" - voir module de la feuille "Feuil1"
Code dans ThisWorkbook:
VB:
Private Sub Workbook_Open()
   AlimentsSansDoublon
End Sub

Code dans le module de la feuille de nom "Feuil1":
Code:
Private Sub Worksheet_Activate()
   AlimentsSansDoublon
End Sub

Code dans Module1:
Code:
Option Explicit
Const CelluleDestination = "d5"

Sub AlimentsSansDoublon()
Dim derCellule As Range, source As Range
   With Sheets("Feuil6")
      Set source = .Range(.Range("a1"), DerCellNonVide(.Range("a:a"))): End With
   With Sheets("Feuil1").Range(CelluleDestination)
      .EntireColumn.Clear
      source.Copy .Range("a1")
      .Resize(source.Rows.Count).RemoveDuplicates Columns:=1, Header:=xlYes
      .Value = "Extraction"
      .EntireColumn.AutoFit
   End With
End Sub

Function DerCellNonVide(xplage As Range) As Range
Dim i&, j&
   On Error Resume Next
   i = Application.Match(999 ^ 9, xplage.Columns(1), 1)
   j = Application.Match(String(255, "z"), xplage.Columns(1), 1)
   On Error GoTo 0
   If i + j <> 0 Then Set DerCellNonVide = xplage.Columns(1).Cells(IIf(i > j, i, j), 1)
End Function
 

Pièces jointes

  • weblista- extraction sans doublon- v1.xlsm
    34.1 KB · Affichages: 7

eriiic

XLDnaute Barbatruc
Je n'ai jamais compris pourquoi MS refuse une option de mise à jour automatique dans les propriétés du TCD.
Je pense que le but est de pouvoir traiter de grosses masses de données au coup par coup, sans influence sur la réactivité de l'interface.
C'est vrai qu'avec la puissance des processeurs d'aujourd'hui, il pourrait prévoir une option pour l'automatiser si moins d'une certaine quantité de données.
eric
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 937
Membres
101 844
dernier inscrit
pktla