Microsoft 365 Sélection dans une variable tableau

Pouet26

XLDnaute Nouveau
Bonsoir tout le monde,

Je dispose d'une variable tableau Tbl_Source triée aléatoirement contenant un historique de prix d'articles sous cette forme :
1656106846668.png


Je voudrais boucler sur cette variable et ne garder, pour chaque article, que la ligne avec la date la plus récente.

Auriez vous une idée de la façon de procéder ?

Je vous remercie par avance pour votre précieuse aide.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pouet,
C'est faisable en VBA simplement.
Mais un petit fichier test serait le bienvenu, personne se retapera les données de votre image pour tester.

Une autre possibilité est de le faire à la main :
1- Copier coller votre tableau dans une nouvelle page.
2- Le sélectionner
3- Données/Trier avec Référence de A à Z puis Date Du plus récent au plus ancien.
4- Données/Supprimer doublons sur colonne Référence.

Une possibilité en VBA serait de faire la même chose en automatique.
En PJ un exemple uniquement fait par l'enregistreur de macro, simple but didactique.
 

Pièces jointes

  • ExTriDatesRecentes.xlsm
    17.7 KB · Affichages: 3
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
Bonjour sylvanu,

personne se retapera les données de votre image pour tester.

c'est vrai, mais d'un autre côté, dans un de tes liens sur l'IA, j'ai lu qu'on pouvait récupérer les données en utilisant un smartphone : en prenant une simple photo ! l'IA se charge de tout ! :)

c'est ICI. (lire le paragraphe sur fond violet) ; comme l'article est du 24 septembre 2018, ça doit être disponible actuellement ! 😉

soan
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Soan,
Cela revient à demander au contributeur de construire le fichier test.
En plus il faut XL sur Android, ce qui n'est pas mon cas.
Alors quand je vois une feuille XL sous forme de JPG, je pense que le demandeur pourrait faire l'effort.
Sauf que généralement il s'agit du "vrai" fichier, secret défense évidemment, et qu'il n'a pas envie de faire un fichier test représentatif et anonyme.
Ceci étant dit, je vous laisse traiter le pb de Pouet, moi je n'en n'ai ni l'envie, ni le courage, ni les compétences. :)
NB: D'autant que je donne la solution et un fichier test en VBA avec résultat en automatique.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Pouet26, sylvanu, Hasco,

juste un essai ; regarde d'abord le tableau :
c'est comme les données de ton post #1.

fais Ctrl e, puis vérifie les résultats.

si c'est ok, lis le code VBA.



VB:
Option Explicit

Sub Essai()
  Dim dlg&: dlg = Cells(Rows.Count, 1).End(3).Row: If dlg < 862 Then Exit Sub
  Dim lig&: Application.ScreenUpdating = 0
  Range("A861:G" & dlg).Sort [B861], 1, [C861], , 1, [D861], 1
  For lig = dlg To 862 Step -1
    If Cells(lig, 3) = Cells(lig - 1, 3) Then Rows(lig).Delete
  Next lig
End Sub

soan
 

Pièces jointes

  • Exo Pouet26.xlsm
    20.5 KB · Affichages: 1

Discussions similaires

Réponses
16
Affichages
468

Statistiques des forums

Discussions
312 163
Messages
2 085 860
Membres
103 006
dernier inscrit
blkevin