Si vrai exécute une fonction
Résolu
Defcon
-
Defcon -
Defcon -
Bonjour,
Je cherche un moyen d'écrire une formule qui dirait :
SI A1>0, ALORS "Inscris la valeur de la date du jour".
Je demande la valeur de la date du jour, car je ne veux qu'elle change le lendemain.
Je cherche un moyen d'écrire une formule qui dirait :
SI A1>0, ALORS "Inscris la valeur de la date du jour".
Je demande la valeur de la date du jour, car je ne veux qu'elle change le lendemain.
A voir également:
- Si vrai exécute une fonction
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
3 réponses
Re,
Ou avec un code VBA à coller dans un module (clic droit sur l'onglet de feuille/Visualiser le code/Insertion/Module) et déclencher avec un bouton, ou directement dans les propriétés d'un contrôle ActiveX
On commence par définir les variables pour limiter la plage
Ex. "Lig" (Dim Lig) pour définir la zone de bouclage "For" de la ligne à la ligne, ici de la ligne 2 à la ligne 60.
La variable Col (Dim Col) pour limiter la macro à la colonne ici colonne A.
Ce qui donne une plage A2:A60
cette ligne conditionnelle si cellules lignes/colonnes >0 alors sur la cellule ligne/colonne2 =Date (colonne(2 est colonne définie par la variable Col qui est la A +1 cette dernière est neutralisé par l'apostrophe '
'If Cells(i, Col) > 0 Then Cells(i, 2) = Date
Pour éviter que la date soit changé par la macro j'ai rajouté une condition
And cellule ligne/colonne A+1 ="" (et ligne/colonne B = ""
If Cells(Lig, Col) > 0 And Cells(Lig, 2) = "" Then Cells(Lig, 2) = Date
Sub test()
Dim Lig As Long
Dim Col As String
Col = "A"
For Lig = 2 To 60
'If Cells(i, Col) > 0 Then Cells(i, 2) = Date
If Cells(Lig, Col) > 0 And Cells(Lig, 2) = "" Then Cells(Lig, 2) = Date
Next Lig
End Sub
Placé dans les propriétés d'un bouton créé avec la boite d'outils contrôle ça donne
Private Sub CommandButton1_Click()
Dim Lig As Long
Dim Col As String
Col = "A"
For Lig = 2 To 60
If Cells(Lig, Col) > 0 And Cells(Lig, 2) = "" Then Cells(Lig, 2) = Date
Next Lig
End Sub
Ou pour automatiser la saisie de la date dès qu'une valeur est saisie dans la plage A2:A60
Dans les propriétés de la feuille concernée (clic droit sur l'onglet de feuille/Visualiser le code cller ce code dans la partie blanche
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lig As Long
If Not Intersect([A:A], Target) Is Nothing Then
For i = 2 To 60
If Target > 0 And Target.Offset(0, 1) = "" Then Target.Offset(0, 1) = Date
Next i
End If
End Sub
Ou avec un code VBA à coller dans un module (clic droit sur l'onglet de feuille/Visualiser le code/Insertion/Module) et déclencher avec un bouton, ou directement dans les propriétés d'un contrôle ActiveX
On commence par définir les variables pour limiter la plage
Ex. "Lig" (Dim Lig) pour définir la zone de bouclage "For" de la ligne à la ligne, ici de la ligne 2 à la ligne 60.
La variable Col (Dim Col) pour limiter la macro à la colonne ici colonne A.
Ce qui donne une plage A2:A60
cette ligne conditionnelle si cellules lignes/colonnes >0 alors sur la cellule ligne/colonne2 =Date (colonne(2 est colonne définie par la variable Col qui est la A +1 cette dernière est neutralisé par l'apostrophe '
'If Cells(i, Col) > 0 Then Cells(i, 2) = Date
Pour éviter que la date soit changé par la macro j'ai rajouté une condition
And cellule ligne/colonne A+1 ="" (et ligne/colonne B = ""
If Cells(Lig, Col) > 0 And Cells(Lig, 2) = "" Then Cells(Lig, 2) = Date
Sub test()
Dim Lig As Long
Dim Col As String
Col = "A"
For Lig = 2 To 60
'If Cells(i, Col) > 0 Then Cells(i, 2) = Date
If Cells(Lig, Col) > 0 And Cells(Lig, 2) = "" Then Cells(Lig, 2) = Date
Next Lig
End Sub
Placé dans les propriétés d'un bouton créé avec la boite d'outils contrôle ça donne
Private Sub CommandButton1_Click()
Dim Lig As Long
Dim Col As String
Col = "A"
For Lig = 2 To 60
If Cells(Lig, Col) > 0 And Cells(Lig, 2) = "" Then Cells(Lig, 2) = Date
Next Lig
End Sub
Ou pour automatiser la saisie de la date dès qu'une valeur est saisie dans la plage A2:A60
Dans les propriétés de la feuille concernée (clic droit sur l'onglet de feuille/Visualiser le code cller ce code dans la partie blanche
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lig As Long
If Not Intersect([A:A], Target) Is Nothing Then
For i = 2 To 60
If Target > 0 And Target.Offset(0, 1) = "" Then Target.Offset(0, 1) = Date
Next i
End If
End Sub
Defcon
Merci pour tout