Quel jour de la semaine ?

Paulle

XLDnaute Occasionnel
Bonjour,
Dans une discussion précédente pour laquelle vous m’avez apporté la solution, je n’avais pas bien cerné mon besoin.
Voilà ce dont j’ai besoin :
Je voudrai que le jour de la semaine s’affiche en A1 en cliquant sur une cellule comprise entre B3 et AF……. qui s’ajuste suivant le nombre de date dans la colonne A.
Colonne A = mois et année.
Ligne 2 = jour du mois.
J’ai tenté de mettre à jour le vba sans succès.
Merci.
 

Pièces jointes

  • Fichier02.xlsm
    15.8 KB · Affichages: 10

vgendron

XLDnaute Barbatruc
Hello

un essai avec ce code
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([B3:AF27], Target) Is Nothing And Target.Count = 1 Then
    jour = Cells(2, Target.Column)
    mois = Month(Range("A" & Target.Row))
    annee = Year(Range("A" & Target.Row))
    JourReconstruit = DateSerial(annee, mois, jour)
    If JourReconstruit >= DateSerial(annee, mois + 1, 1) Then
        Range("A1") = "Jour Inexistant"
    Else
        Range("a1") = JourReconstruit 
    End If
End If
End Sub
 

Modeste geedee

XLDnaute Barbatruc
Bonjour,
Dans une discussion précédente pour laquelle vous m’avez apporté la solution, je n’avais pas bien cerné mon besoin.
Voilà ce dont j’ai besoin :
Je voudrai que le jour de la semaine s’affiche en A1 en cliquant sur une cellule comprise entre B3 et AF……. qui s’ajuste suivant le nombre de date dans la colonne A.
Colonne A = mois et année.
Ligne 2 = jour du mois.
J’ai tenté de mettre à jour le vba sans succès.
Merci.
voir aussi
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Not Intersect([B3:AF27], Target) Is Nothing And Target.Count = 1 Then
    Range("a1") = DateValue(Target.Column - 1 & "/" & Cells(Target.Row, 1).Text)
 End If
End Sub
 

Efgé

XLDnaute Barbatruc
Bonjour à tous
And Target.Count = 1
Si on sélectionne toutes les cellules (la case à l'intersection des lignes et des colonnes) on a une erreur :
1026196


il faut utiliser :
VB:
And Target.CountLarge = 1

Cordialement
 

Paulle

XLDnaute Occasionnel
J'ai essayé vos 2 réponses.
Pour les 2, c'est la cellule de la colonne A correspondante à la ligne ou la cellule est active qui s'affiche dans A1.
Et j'aurai voulu que la zone B3:AF27 s'ajuste si je rajoute des dates.
Merci.
 

Pièces jointes

  • Fichier02a.xlsm
    16.4 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour à tous,
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim an%, mois As Byte, jour As Byte
If Intersect(Range("B3:AF" & Rows.Count), ActiveCell) Is Nothing Or Not IsDate(Cells(ActiveCell.Row, 1)) Then Exit Sub
an = Year(Cells(ActiveCell.Row, 1))
mois = Month(Cells(ActiveCell.Row, 1))
jour = Cells(2, ActiveCell.Column)
[A1].NumberFormat = "dd/mm/yyyy"
[A1] = Application.Min(DateSerial(an, mois, jour), DateSerial(an, mois + 1, 0))
End Sub
A+
 

Paulle

XLDnaute Occasionnel
Dans la proposition de job75, j'ai remplacé
[A1].NumberFormat = "dd/mm/yyyy"
par :
[A1].NumberFormat = "dddd"
et cela fonctionne.

Si j'osai, je vous demanderai une combinaison de la proposition de vgendron "Jour Inexistant" quand je clique sur un jour hors calendrier.
et celle de job75 pour l'ajustement de B3:AF en fonction des dates ajoutées.

Merci encore.
 

job75

XLDnaute Barbatruc
J'ai toujours du mal à comprendre pourquoi les gens multiplient les messages en prenant l'utilisateur pour un débile mais bof :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim an%, mois As Byte, jour As Byte
If Intersect(Range("B3:AF" & Rows.Count), ActiveCell) Is Nothing Then Exit Sub
On Error Resume Next
an = Year(Cells(ActiveCell.Row, 1))
mois = Month(Cells(ActiveCell.Row, 1))
jour = Cells(2, ActiveCell.Column)
[A1] = ""
[A1].NumberFormat = "dddd"
[A1] = CDate(jour & "/" & mois & "/" & an)
If [A1] = "" Then MsgBox "Jour inexistant..."
End Sub
 

Discussions similaires

Réponses
10
Affichages
320

Statistiques des forums

Discussions
312 098
Messages
2 085 267
Membres
102 845
dernier inscrit
Baticle.geo