macro sur date suivante

xpxpplus

XLDnaute Junior
bonsoir a vous tous,

sur ma feuille 1 en c2, j'ai une cellule avec une date,
avec une macro, j'aimerais lors d'un clic bouton, que la date se place en b2
mais que si la date de c2 est un lundi 3 janvier elle passe en b2 à mardi 4 janvier, etc..
mais lorsque celle-ci est vendredi, elle passe à lundi et non à samedi et dimanche .

une semaine de 5 jours sans le samedi et dimanche

Pouvez-vous m'aider a résoudre cette petite demande

en vous remerciant tous :cool:

Marcmarc
 

klin89

XLDnaute Accro
Bonsoir à tous,
Bonsoir xpxpplus,

D'après un exemple de Bebere trouvé sur le forum :

VB:
Sub Liste_Ss_Samedis_Dimanches()
' liste des dates dans une colonne sans les samedis ni dimanches
' choix de la cellule de départ par l'utilisateur
' choix des dates de début et fin 
Dim deb#, fin#, NbJours&, i As Date
Dim Cell As Range, Li&, Col%
  
  On Error Resume Next
  deb = CDate(InputBox("Première date de la liste :"))
  fin = CDate(InputBox("Dernière date de la liste :"))
  If Err <> 0 Then Exit Sub
  Set Cell = Application.InputBox _
    ("Sélectionnez la cellule où commence la liste", Type:=8)
  If Err <> 0 Then Exit Sub
  Li = Cell.Row: Col = Cell.Column
  For i = deb To fin
    If Weekday(i, vbMonday) < 6 Then
      With Cells(Li, Col)
        .Value2 = i
        .NumberFormatLocal = "jjj jj mmm aa"
        .Font.Name = "verdana"
        .Font.Size = 10
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
      End With
      Li = Li + 1
    End If
  Next i
End Sub

Si j'ai bien compris :rolleyes:

Klin89
 
Dernière édition:

KenDev

XLDnaute Impliqué
Re : Re: macro sur date suivante

Bonsoir xpxpplus, klin89,

Une autre possibilité

VB:
Sub dt()
Dim d  As Date
    d = Worksheets("Feuil1").Cells(2, 3)
    Select Case Weekday(d)
        Case 1 To 5
            Worksheets("Feuil1").Cells(2, 2) = d + 1
        Case 6
            Worksheets("Feuil1").Cells(2, 2) = d + 3
        Case 7
            Worksheets("Feuil1").Cells(2, 2) = d + 2
    End Select
End Sub

Cordialement

KD
 

ROGER2327

XLDnaute Barbatruc
Re : macro sur date suivante

Bonjour à tous
Une autre :
VB:
Sub toto()
  If IsDate(Range("C2")) Then Range("B2").Value = IIf(Weekday(Range("C2").Value, vbMonday) > 4, 8 - Weekday(Range("C2").Value, vbMonday), 1) + Range("C2").Value
End Sub
ROGER2327
#5051


Samedi 14 Pédale 138 (Sabbat, V)
18 Ventôse An CCXIX
2011-W10-2T00:15:14Z
 

Discussions similaires

Réponses
3
Affichages
432

Statistiques des forums

Discussions
312 413
Messages
2 088 200
Membres
103 762
dernier inscrit
rouazali