Soustraction de date en vba

tprlechef

XLDnaute Nouveau
Bonjour à tous !

Petit soucis de date en vba…

Dans une feuille excel j’ai mes opérations en cours et dans une deuxième feuille j’ai mes opérations à venir.

Je voudrais que 8 jours avant la data d’application de mes opérations à venir celles-ci soit couper/coller dans mes opérations en cours…

J’ai commencé mon code, mais j’ai des soucis sur la soustraction de date..

Quelqu’un peut-il m’aider ?!

Merci d’avance !
 

Pièces jointes

  • Classeur1.xlsm
    15.4 KB · Affichages: 85
  • Classeur1.xlsm
    15.4 KB · Affichages: 86
  • Classeur1.xlsm
    15.4 KB · Affichages: 104

CHALET53

XLDnaute Barbatruc
Re : Soustraction de date en vba

bonsoir,

Quelques corrections (le nom de feuille n'est pas "futur" mais "Avenir" , Date à la place de today)

Il te faut écrire le code nécessaire à ce que tu veux faire à la place de Msgbox ....

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long
Dim cell As Range
j = 2

Do Until ActiveWorkbook.Sheets("Avenir").Cells(j, 1) & "" = ""


For Each cell In Sheets("Avenir").Cells(j, 1)
a = cell.Value - 8
If cell.Value - 8 > Date Then

MsgBox "ok"
End If
j = j + 1

Next cell
Loop

End Sub
 

tprlechef

XLDnaute Nouveau
Re : Soustraction de date en vba

Bonsoir CHALET53 et merci pour ton aide :)

Ton code marche impec (cependant c'était inferieur au lieu de superieur, un detail :p)

J'ai des difficultes pour mon copier/coller (qui remplace mon msgbox)

Si la date dans Avenir est < à aujourd'hui, je souhaite couper cette ligne et la coller à la fin de Encours.

J'ai un souci dans ma boucle je pense... une idée?

merci de ton aide !


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Long
Dim cell As Range
j = 2

Do Until ActiveWorkbook.Sheets("Avenir").Cells(j, 1) & "" = ""


For Each cell In Sheets("Avenir").Cells(j, 1)
a = cell.Value - 8
If cell.Value - 8 > Date Then

Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy

With Sheets("Encours")

Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
End With
End If
j = j + 1

Next cell
Loop

End Sub
 

DoubleZero

XLDnaute Barbatruc
Re : Soustraction de date en vba

Bonjour, tprlechef, CHALET53, le Forum,

Une autre suggestion, à placer dans l'onglet "Encours" :

Code:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Dim c As Range
With Sheets("Avenir")
    For i = .Range("a65536").End(xlUp).Row To 2 Step -1
        If .Range("a" & i).Value <> "" And .Range("a" & i).Value <= Date + 8 Then
            With .Range("a" & i)
            .Offset(, 0).Resize(, 3).Cut Destination:=Sheets("Encours").Range("a65536").End(xlUp).Offset(1, 0)
            End With
        .Columns("a:a").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
        End If
    Next
End With
Application.ScreenUpdating = True
End Sub

A bientôt :)
 

Discussions similaires

Réponses
17
Affichages
669

Statistiques des forums

Discussions
312 307
Messages
2 087 095
Membres
103 467
dernier inscrit
Pandiska