Formule excel s'ajustant date du jour (ou vba

Résolu/Fermé
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - Modifié par Co_nexion le 4/06/2012 à 19:32
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015 - 11 juin 2012 à 12:05
Bonjour,

Voici une question dont je n'arrive pas à imaginer la réponse

J'ai en colonne G : une date appellé date de départ
J'ai en colonne H : un chiffre appellé temps de voyage
J'ai en colonne I : une date appellé date d'arrivée
Et sur la cellule N1 la date du jour par la formule aujourdhui()

Les bases étant fixé, je vous expose mon problème avec un exemple.

G = 04/06/2012 ; H = 27 ; I = 01/07/2012

Mais je voudrais que si I deviens inférieur à N1 (c'est à dire si I devient inférieur à la date du jour) alors G = I +1 soit 02/07/2012, H ne change pas et I devient 29/07/2012 et ainsi de suite.

Et je ne vois pas trop comment m'y prendre en fait...
A voir également:

3 réponses

Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
4 juin 2012 à 19:41
Voici un fichier exemple avec un essai de formule infructueux.

Merci de votre retour

https://www.cjoint.com/?BFetOI9a2Rn
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
5 juin 2012 à 15:37
Pouvez vous m'indiquer svp , si cela est impossible ou incompréhensible ?
Cela serait bien pour savoir si je dois m'orienter vers autre chose

Merci d'avance
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
5 juin 2012 à 16:50
Bonjour,

En VBA

Code a mettre dans la feuille

'Principe, ajoutez la boucle pour toutes les lignes
Private Sub xWorksheet_SelectionChange(ByVal Target As Range)
  If Range("I1") < Range("N1") Then
    Range("G1") = Range("I1") + 1
    Range("I1") = Range("G1") + Range("H1")
  End If
End Sub


Bonne suite
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
11 juin 2012 à 10:51
Bonjour,

Je ne suis toujours pas au point au niveau des boucles...

J'ai essayer de faire cela mais il me semble que c'est du grand n'importe quoi...

Private Sub xWorksheet_SelectionChange(ByVal Target As Range)
  
  Dim Derlig As Long, i As Long,
    Derlig = Range("G" & Rows.Count).End(xlUp).Row
        With Sheets("HS")

    'If Range("I2") < Range("M1") Then
    For i = 2 To Derlig
    If .Cells(i, 9) < .Cells(1, 13) Then
            'Range("G2") = Range("I2") + 1
            .Cells(i, 7) = .Cells(i, 9) + 1
            'Range("I2") = Range("G2") + Range("H2")
            .Cells(i, 9) = .Cells(i, 7) + Cells(i, 8)

    End If
Next i
  
End Sub
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
Modifié par f894009 le 11/06/2012 à 11:26
Bonjour,

Je regarde ce qui ne va pas. Par contre il fallait enlever le x devant Worksheet_.......
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
11 juin 2012 à 11:36
Re,

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  
  Dim Derlig As Long, i As Long
    
    With Sheets("HS")
      Derlig = .Range("G" & Rows.Count).End(xlUp).Row
      For i = 2 To Derlig
        'If .Range("I" & i) < .Range("M" & i) Then
        ' ou
        If .Cells(i, 9) < .Cells(1, 13) Then
          .Range("G" & i) = .Range("I" & i) + 1
          ' ou
          '.Cells(i, 7) = .Cells(i, 9) + 1
          .Range("I" & i) = .Range("G" & i) + .Range("H" & i)
          ' ou
          '.Cells(i, 9) = .Cells(i, 7) + .Cells(i, 8)
        End If
      Next i
    End With
End Sub


Cela devrait aller.
0
Co_nexion Messages postés 328 Date d'inscription lundi 5 mars 2012 Statut Membre Dernière intervention 15 juillet 2015
11 juin 2012 à 12:05
Merci bien
Cela marche nickel !

J'ai simplement du déplacer le code dans sur l'évènement click du button dans le userform en question car cela m'affichait un probleme avec le code dans la feuille.

Cordialement
0