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 -
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...
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
-
Voici un fichier exemple avec un essai de formule infructueux.
Merci de votre retour
https://www.cjoint.com/?BFetOI9a2Rn -
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-
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 -
-
-
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.