Formule excel s'ajustant date du jour (ou vba

Résolu
Co_nexion Messages postés 333 Statut Membre -  
Co_nexion Messages postés 333 Statut Membre -
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...

3 réponses

  1. Co_nexion Messages postés 333 Statut Membre
     
    Voici un fichier exemple avec un essai de formule infructueux.

    Merci de votre retour

    https://www.cjoint.com/?BFetOI9a2Rn
    0
    1. Co_nexion Messages postés 333 Statut Membre
       
      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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Co_nexion Messages postés 333 Statut Membre
       
      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
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Je regarde ce qui ne va pas. Par contre il fallait enlever le x devant Worksheet_.......
      0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. Co_nexion Messages postés 333 Statut Membre
       
      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