Date en Fonction du N° semaine

  • Initiateur de la discussion Initiateur de la discussion maval
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

maval

XLDnaute Barbatruc
Bonjour,

Voila j'ai un problème que je n'arrive pas a résoudre. J'ai sur la même ligne "3" la date en "C2" et les N° de semaine de "K3:AP3". J'aimerais que la date prenne en compte le dernier N° de la semaine de la ligne"3" soit en formule ou en passant par macro.
La formule de la date que j'ai mis en C2 est en fonction du N° de la semaine qui se trouve en "K3:AP3":


Code:
=(INDEX($K$13:$AP$13;1;NBVAL($K$13:$AP$13))-1)*7+DATE(ANNEE(AUJOURDHUI());1;1)+2

Le problème est que les cellules "K3:AP3" ont des formules

Je joint mon exemple qui seras certainement plus parlant.

Bien Cordialement

Max
 

Pièces jointes

Re : Date en Fonction du N° semaine

Re,

Désolé, je n'ai pas fait gaffe sur qu'elle colonne ton tableau commençait

Donc, il faut :
1) ne pas supprimer ta colonne K
2) mettre en J3 un texte quelconque ">" par exemple
3) remplacer le code du bouton valider par celui-ci
VB:
Private Sub CdB_Valider_Click()  Dim NCol As Integer ' Prochaine colonne vide
  If Not IsDate(Me.TB_Date) Then
    MsgBox "Merci de saisir une date au format [jj/mm/aaaa]", vbCritical, "ATTENTION ..."
    Exit Sub
  End If
  
  With Sheets("Feuil1")
    NCol = .Cells(3, Columns.Count).End(xlToLeft).Offset(0, 1).Column
    ' Inscrire la date saisie
    .Cells(3, NCol).Value = CDate(Me.TB_Date)
    ' Vérifier si nous sommes > à la première colonne de jeu K
    If NCol > 11 Then
      ' Auquel cas on recopie des formules
      Range(Cells(2, NCol - 1), Cells(2, NCol)).FillRight
      Range(Cells(4, NCol - 1), Cells(4, NCol)).FillRight
    End If
  End With
  ' Fermer l'USF
  Unload Me
End Sub

Voilà 😉
 
Re : Date en Fonction du N° semaine

Re,

1) Couper / coller la ligne 3 en ligne 1

2) suppression de la ligne 3 (vide)

3) modification du code : Cells(Ligne, Colonne)
VB:
Private Sub CdB_Valider_Click()  Dim NCol As Integer ' Prochaine colonne vide If Not IsDate(Me.TB_Date) Then
    MsgBox "Merci de saisir une date au format [jj/mm/aaaa]", vbCritical, "ATTENTION ..."
    Exit Sub
  End If
  
  With Sheets("Feuil1")
    NCol = .Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1).Column
    ' Inscrire la date saisie
   .Cells(1, NCol).Value = CDate(Me.TB_Date)
    ' Vérifier si nous sommes > à la première colonne de jeu K
   If NCol > 11 Then
      ' Auquel cas on recopie des formules
     Range(Cells(2, NCol - 1), Cells(2, NCol)).FillRight
      Range(Cells(3, NCol - 1), Cells(3, NCol)).FillRight
    End If
  End With
  ' Fermer l'USF
 Unload Me
End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour