Remplace date sous condition

undo74

XLDnaute Nouveau
Bonjour à tous,
le code ci-dessous ne fonction pas correctement pouvez-vous svp m'aider à résoudre mon problème ?:confused:
J'ai une colonne B avec des dates je veux remplacer seulement les dates qui sont inférieur au 31/12/2014 et supérieure ou égal au 01/01/2016.
condition :
si inférieur au 31/12/2014 je remplace par 01/01/2015
si supérieure ou égal au 01/01/2016 je remplace par 31/12/2015
sinon je conserve la valeur actuel.

résultat:
Je dois avoir que des dates en 2015 dans la colonne B


voici le code:
Code:
        If Cells(i, 2).Value < 31 / 12 / 2014 Then
        Cells(i, col).Value = 1 / 1 / 2015
          
        ElseIf Cells(i, 2).Value >= 1 / 1 / 2016 Then
        Cells(i, col).Value = 31 / 12 / 2015
          
          
            
      Else
          Cells(i, col).Value = Cells(i, 2).Value

merci par avance.
 

Pièces jointes

  • Exemple.xlsm
    52 KB · Affichages: 36
  • Exemple.xlsm
    52 KB · Affichages: 43
  • Exemple.xlsm
    52 KB · Affichages: 43

JCGL

XLDnaute Barbatruc
Re : Remplace date sous condition

Bonjour à tous,

Peux-tu essayer :

VB:
Sub UpdateMonth(ByVal col As Integer)
'Initialisation de la boucle
    Dim i As Integer
    i = 2
    'Boucle sur la liste de cellule
    Do While (Cells(i, 2).Value <> "")
        If Cells(i, 2).Value < DateSerial(2014, 12, 31) Then
            Cells(i, 2).Value = DateSerial(2015, 1, 1)
        ElseIf Cells(i, 2).Value >= DateSerial(2016, 1, 1) Then
            Cells(i, 2).Value = DateSerial(2015, 12, 31)
        Else
            Cells(i, 2).Value = Cells(i, 2).Value
        End If
        i = i + 1
    Loop
End Sub

A+ à tous
 

FROLLINDE

XLDnaute Occasionnel
Re : Remplace date sous condition

Bonsoir..

Ou ...

Sub UpdateMonth(ByVal col As Integer)

'Initialisation de la boucle
Dim i As Integer
i = 2
'Boucle sur la liste de cellule
Do While (Cells(i, 2).Value <> "")
If Cells(i, 2).Value < #12/31/2014# Then
Cells(i, col).Value = #1/1/2015#
ElseIf Cells(i, 2).Value >= #1/1/2016# Then
Cells(i, col).Value = #12/31/2015#
Else
Cells(i, col).Value = Cells(i, 2).Value
End If
i = i + 1
Loop
End Sub
 

undo

XLDnaute Junior
Re : Remplace date sous condition

Bonjour JCGL, FROLLINDE, Staple1600;
C'est nickel ! vos deux solutions marche très bien :D
Staple1600;
Je n'ai pas trop compris ta remarque ? : confuses:
Merci infiniment pour votre aide.
À bientôt j'espère pour d'autres aventures;)
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal