Microsoft 365 afficher la date du dernier RdV pris

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Me re-voilà avec un nouveau besoin que je ne sais pas résoudre.
J'ai bien tenté, testé mais c'est hors de ma portée :mad:

Je fais donc à nouveau appel à votre expertise.
Voici mon besoin :
- Dans la feuille "RendezVous", j'ai tous les RdVs pris pour nos Clients avec les dates d'appels,
- Dans la feuille "Derniers_RdVs", je voudrais que s'affiche en face de chaque Client concerné les dates des :
- 3 derniers RdVs pris (si y'a au moins 3),
- 2 derniers RdVs pris (si y'a pas 3),
- dernier RdV pris (si y'a pas 2),

Auriez-vous la solution formule ou macro ?

Je joins le fichier test,
Avec mes remerciement,
Je vous souhaite, à toutes et à tous, une belle journée :)
Ammicalement,
lionel,
 

Pièces jointes

  • RdVs_dernier.xlsm
    84.5 KB · Affichages: 18
Solution
Re, salut Bruno,

Oui nous allons bien mais nous sommes prudents et nous nous confinons en Normandie.

De mon coté j'ai élaboré ces 4 macros affectées aux 4 boutons :
VB:
Sub tri_RdV()
With ThisWorkbook.Sheets("RendezVous")
    .Visible = xlSheetVisible 'si la feuille est masquée
    Application.Goto .[A1], True
    .Rows.Hidden = False
    .Rows("2:" & Application.CountA([A:A])).Sort .[A1], xlAscending, Header:=xlYes 'tri sur le numéro de RdV
End With
End Sub

Sub tri_Clts()
With ThisWorkbook.Sheets("RendezVous")
    .Visible = xlSheetVisible 'si la feuille est masquée
    Application.Goto .[A1], True
    .Rows.Hidden = False
    .Rows("2:" & Application.CountA([A:A])).Sort .[F1], xlAscending, Header:=xlYes 'tri sur le numéro de clienr
End...

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour,

Je teste et re-teste.
j'ai un souci car si des lignes ou les lignes d'un Client sont supprimées , j'ai une erreur dans les cases.
J'ai tenté de recopier la formule mais ça ne fonctionne plus.
Sans titre.jpg

Je cherche comment faire.
lionel,
 

GALOUGALOU

XLDnaute Accro
bonsoir usine à gaz bonsoir jha bonsoir le forum

Si le client est supprimé dans l'onglet rendez vous, il n'y a rien à présenter dans l'onglet dernier rdv, donc la formule renvoie une erreur. Normal.

Pour ne pas avoir de code erreur utiliser la fonction sierreur
VB:
=SIERREUR(GRANDE.VALEUR(SI(RendezVous!$F$3:$F$999=Derniers_RdVs!$D32;RendezVous!$L$3:$L$999);1);"")
validation matricielle
cordialement
galougalou
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite un bon WE :)
Ne souhaitant pas utiliser de formules matricielles, j'ai revu ma copie lol.
Et réduit ma demande à la recherche du dernier RdV fait au lieu des 3 derniers.

J'ai fait cette formule qui fonctionne mais qui ne me semble pas bien faite :

"=SI(MAX(SI(RendezVous!$F$3:$F$1000=Derniers_RdVs!$D3;RendezVous!$L$3:$L$1000);0)=0;"Priorité";MAX(SI(RendezVous!$F$3:$F$1000=Derniers_RdVs!$D3;RendezVous!$L$3:$L$1000);0))"

Pourriez-vous me corriger ?
Avec mes remerciements,
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour BrunoM45,
Effectivement, je suis d'accord car ce n'est pas dans mes habitudes.
Mais j'avais posé la question sur Excel-pratique il y a quelques temps et le fil a disparu ... c'est pour cela que je l'ai posté ici :)
Merci à toi de m'avoir apporté une fonction personnalisée qui fonctionne super bien :)
J'allais en informer le forum en mettant le lien :

Bonjour Gérard, merci pour ta réponse mais en automatisant, cela me fait gagner du temps :)
lionel,
 

job75

XLDnaute Barbatruc
Re, salut Bruno,

Oui nous allons bien mais nous sommes prudents et nous nous confinons en Normandie.

De mon coté j'ai élaboré ces 4 macros affectées aux 4 boutons :
VB:
Sub tri_RdV()
With ThisWorkbook.Sheets("RendezVous")
    .Visible = xlSheetVisible 'si la feuille est masquée
    Application.Goto .[A1], True
    .Rows.Hidden = False
    .Rows("2:" & Application.CountA([A:A])).Sort .[A1], xlAscending, Header:=xlYes 'tri sur le numéro de RdV
End With
End Sub

Sub tri_Clts()
With ThisWorkbook.Sheets("RendezVous")
    .Visible = xlSheetVisible 'si la feuille est masquée
    Application.Goto .[A1], True
    .Rows.Hidden = False
    .Rows("2:" & Application.CountA([A:A])).Sort .[F1], xlAscending, Header:=xlYes 'tri sur le numéro de clienr
End With
End Sub

Sub tri_dates()
With ThisWorkbook.Sheets("RendezVous")
    .Visible = xlSheetVisible 'si la feuille est masquée
    Application.Goto .[A1], True
    .Rows.Hidden = False
    .Rows("2:" & Application.CountA([A:A])).Sort .[L1], xlDescending, Header:=xlYes 'tri sur les dates, les plus récentes en haut
End With
End Sub

Sub Filtre()
Dim num, R As Range
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("RendezVous")
    .Visible = xlSheetVisible 'si la feuille est masquée
    .Activate
    num = .Cells(ActiveCell.Row, 6) 'numéro de client sélectionné
    .Rows.Hidden = False
    With .Rows("2:" & Application.CountA([A:A]))
        .Sort .Columns(6), xlAscending, , .Columns(12), xlDescending, Header:=xlYes 'tri sur 2 colonnes
        .AutoFilter 6, num
        Set R = .SpecialCells(xlCellTypeVisible).EntireRow
        .AutoFilter 'filtre automatique
        .Hidden = True
        R.Hidden = False
    End With
    Application.Goto .[A1], True
End With
End Sub
Le bouton Filtre fait le travail demandé sur ce fil.

A+
 

Pièces jointes

  • RdVs_dernier(1).xlsm
    81.8 KB · Affichages: 7

Discussions similaires

Réponses
22
Affichages
1 K

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign