XL 2013 VBA Sélection d'une feuille selon un critère

angie19

XLDnaute Nouveau
Bonjour,

J'aimerais créer une macro me permettant de récupérer les données d'une feuille excel qui est la plus récente dans mon classeur.
Dans ce classeur, chaque feuille est identique mise à part les données qui la composent et chaque feuille a une date entrée manuellement en B3.
Dans ma macro, j'aimerais pouvoir sélectionner la feuille telle que la date en B3 (toutes feuilles du classeur confondues) est la plus récente et j'aimerais savoir si c'est possible ?

J'espère avoir été claire sur mon problème et vous remercie par avance :)

Angie
 
Solution
Bonjour angie19, le forum

Voici une macro qui devrait faire cela !

Bien cordialement, @+
VB:
Sub Trouver_Date_Max()
Dim Wsht As Worksheet, WshtF As Worksheet, DateMax As Date
For Each Wsht In ActiveWorkbook.Worksheets 'pour chaque feuille de travail du classeur actif
    If IsDate(Wsht.Range("B3").Value) Then 'si B3 est une date
        If Wsht.Range("B3").Value > DateMax Then 'si B3 est supérieur à date max
            DateMax = Wsht.Range("B3").Value 'date max = B3
            Set WshtF = Wsht ' feuille finale=feuille en cours
        End If
    End If
Next Wsht
If WshtF Is Nothing Then 'si feuille finale n'existe pas
    MsgBox "Feuille introuvable", vbOKOnly + vbInformation
Else
    WshtF.Select 'feuille finale sélectionnée si...

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour angie19, le forum

Voici une macro qui devrait faire cela !

Bien cordialement, @+
VB:
Sub Trouver_Date_Max()
Dim Wsht As Worksheet, WshtF As Worksheet, DateMax As Date
For Each Wsht In ActiveWorkbook.Worksheets 'pour chaque feuille de travail du classeur actif
    If IsDate(Wsht.Range("B3").Value) Then 'si B3 est une date
        If Wsht.Range("B3").Value > DateMax Then 'si B3 est supérieur à date max
            DateMax = Wsht.Range("B3").Value 'date max = B3
            Set WshtF = Wsht ' feuille finale=feuille en cours
        End If
    End If
Next Wsht
If WshtF Is Nothing Then 'si feuille finale n'existe pas
    MsgBox "Feuille introuvable", vbOKOnly + vbInformation
Else
    WshtF.Select 'feuille finale sélectionnée si existe
    Range("B3").Select 'date sélectionnée
    MsgBox "Feuille " & WshtF.Name & " sélectionnée", vbOKOnly + vbInformation
End If
End Sub
 
Dernière édition:

Discussions similaires

Réponses
10
Affichages
1 K

Statistiques des forums

Discussions
314 663
Messages
2 111 652
Membres
111 246
dernier inscrit
Jeanluis87