Excel VBA atteindre une cellule qui contient un mois
NICK337 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un tableau A5:J5000. La colonne F est dédiée aux dates (JJ/MM/AA). Je rentre en F1 une date pour obtenir un total facturé sur cette date. Jusqu'ici pas de problème, j'ai bien mon total. La date en F1 se présente également en JJ/MM/AA.
Je cherche une formule vba qui me permettrait d'atteindre, dans mon tableau A5:J5000, la première ligne qui dans la colonne F contient le mois de la cellule F1.
Cela me permettrait d'aller plus vite aux lignes qui concernent le mois que je cherche, sans à perdre du temps avec l'ascenseur...
Auriez-vous une idée ? Je ne trouve pas ! Merci
Windows / Firefox 119.0
- Excel VBA atteindre une cellule qui contient un mois
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Proteger cellule excel - Guide
- Déplacer une colonne excel - Guide
2 réponses
Bonjour Azerty,
Pourquoi ne pas utiliser quelque chose de natif sur Excel... le Filtre !?
Sinon, voici un code qui pourrait convenir, je pense.
Private Sub Worksheet_Change(ByVal Target As Range) Dim dLig As Long, Lig As Long If Target.Address = "$F$1" Then If Target.Value = "" Then Exit Sub dLig = Range("F" & Rows.Count).End(xlUp).Row For Lig = 5 To dLig If Range("F" & Lig) <> "" Then If Month(Range("F" & Lig)) = Month(Range("F1")) Then Range("F" & Lig).Select: Exit For End If End If Next Lig End If End Sub
A+
Bonjour. Je peux vous aider à créer une macro VBA pour cela. Voici un exemple de code qui pourrait fonctionner pour votre situation :
Sub TrouverDate()
Dim ws As Worksheet
Dim rng As Range
Dim celluleDate As Range
Dim premiereLigne As Range
' Définir la feuille de calcul
Set ws = ThisWorkbook.Sheets("Nom_de_votre_feuille")
' Définir la plage de recherche
Set rng = ws.Range("F5:F5000")
' Définir la cellule contenant la date
Set celluleDate = ws.Range("F1")
' Chercher la première ligne du mois
For Each cell In rng
If Month(cell.Value) = Month(celluleDate.Value) And Year(cell.Value) = Year(celluleDate.Value) Then
Set premiereLigne = cell
Exit For
End If
Next cell
' Si une ligne correspondante est trouvée, sélectionnez-la
If Not premiereLigne Is Nothing Then
premiereLigne.Select
Else
MsgBox "Aucune ligne trouvée pour le mois de " & Format(celluleDate.Value, "mmmm yyyy")
End If
End Sub
N’oubliez pas de remplacer"Nom_de_votre_feuille"
par le nom de votre feuille de calcul. Cette macro parcourt chaque cellule dans la plage F5:F5000 et compare le mois et l’année de la cellule avec le mois et l’année de la date en F1. Lorsqu’elle trouve une correspondance, elle sélectionne cette cellule et arrête la recherche. Si aucune correspondance n’est trouvée, elle affiche un message indiquant qu’aucune ligne n’a été trouvée pour ce mois.
Veuillez noter que cette macro ne prend pas en compte les dates vides ou non valides dans la plage de recherche. Vous devrez peut-être ajouter une gestion d’erreur supplémentaire en fonction de vos données. Cordialement