Sub Vers_Aujourdhui()
If Year(Date) = [Année] Then
ligne = (Month(Date) * 4) + [début].Row - 2
colonne = Day(Date) + [début].Column - 1
Application.Goto sh_Planning.Cells(ligne, colonne)
Else
Application.Goto [Année]
End If
End Sub
Bonjour clausen et le forum
Il faut lire
Et nottament
1.3 – Lorsqu’on rentre sur un fil, comme dans la vie de tous les jours, on est poli en disant « Bonjour ».
A+ jc
Sub SelectionnerCelluleSousDateDuJour()
Dim ws As Worksheet
Dim dateTrouvee As Boolean
Dim cell As Range
Dim i As Long
' Définir la feuille de calcul
Set ws = ThisWorkbook.Sheets("Feuil1")
dateTrouvee = False
' Boucle à travers les lignes 5, 10, 15, etc.
For i = 5 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Step 5
For Each cell In ws.Rows(i).Cells
If cell.Value = Date Then
' Sélectionner la cellule juste en dessous de la date du jour trouvée
ws.Cells(cell.Row + 1, cell.Column).Select
dateTrouvee = True
Exit For
End If
Next cell
If dateTrouvee Then Exit For
Next i
' Si la date du jour n'est pas trouvée
If Not dateTrouvee Then
MsgBox "La date du jour n'a pas été trouvée dans le tableau."
End If
End Sub
Il y a un probléme des cellules se mettent en couleur n'importe ou quand je les remplis.Bonjour,
Pour faire suite à votre demande:
Les lignes avec les dates sont masquées.
En cliquant sur le bouton date du jour, cela active la cellule du jour sur la même ligne ou il y a la mise en forme conditionnelle pour les samedi et dimanche.
VB:Sub SelectionnerCelluleSousDateDuJour() Dim ws As Worksheet Dim dateTrouvee As Boolean Dim cell As Range Dim i As Long ' Définir la feuille de calcul Set ws = ThisWorkbook.Sheets("Feuil1") dateTrouvee = False ' Boucle à travers les lignes 5, 10, 15, etc. For i = 5 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row Step 5 For Each cell In ws.Rows(i).Cells If cell.Value = Date Then ' Sélectionner la cellule juste en dessous de la date du jour trouvée ws.Cells(cell.Row + 1, cell.Column).Select dateTrouvee = True Exit For End If Next cell If dateTrouvee Then Exit For Next i ' Si la date du jour n'est pas trouvée If Not dateTrouvee Then MsgBox "La date du jour n'a pas été trouvée dans le tableau." End If End Sub
Sub Vers_Aujourdhui()
If Year(Date) = [Année] Then
ligne = (Month(Date) * 4) + [début].Row - 2
colonne = Day(Date) + [début].Column - 1
Application.Goto sh_Planning.Cells(ligne, colonne)
Else
Application.Goto [Année]
End If
End Sub
Private Sub Workbook_Open()
Vers_Aujourdhui
End Sub
Private Sub Worksheet_Activate()
Vers_Ajourdhui
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = [Année].Address Then
Vers_Aujourdhui
End If
End Sub
Merci mille fois . Pour le moment tout fonctionne comme je voulais. Je n'arrive pas à supprimer la case "Aujourd'hui" En AL/3bonsoir à toutes & à tous, bonsoir @clausen , @piga25
Voici une proposition sans aucune formule (même cachée), uniquement gérée par 3 formats conditionnels (sur la totalité du planning).
Code d'accès à la cellule du jour :
Ce code est exécuté à l'ouverture du classeur, en cas de modification de l'année, à l'activation de la feuille planning, en cas de clic sur le bouton Aujourd'hui.VB:Sub Vers_Aujourdhui() If Year(Date) = [Année] Then ligne = (Month(Date) * 4) + [début].Row - 2 colonne = Day(Date) + [début].Column - 1 Application.Goto sh_Planning.Cells(ligne, colonne) Else Application.Goto [Année] End If End Sub
Code à l'ouverture du classeur
VB:Private Sub Workbook_Open() Vers_Aujourdhui End Sub
Code de la feuille planning
VB:Private Sub Worksheet_Activate() Vers_Ajourdhui End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = [Année].Address Then Vers_Aujourdhui End If End Sub
EDIT : Nota il y a 3 noms définis
"Début" la cellule qui contient le mot JANVIER,
"Année" la cellule qui contient l'année soit AI3)
"Mois" une formule qui déduit le mois en cours en fonction de la ligne courante
Voir pièce jointe
A bientôt