Si vrai exécute une fonction
Résolu/Fermé
A voir également:
- Si vrai exécute une fonction
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule ✓ - Forum Excel
3 réponses
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
12 nov. 2010 à 22:38
12 nov. 2010 à 22:38
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
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
12 nov. 2010 à 18:23
12 nov. 2010 à 18:23
Salut,
=si(A1>0;AUJOURDHUI();"")
Et tu formates la cellule au format date
=si(A1>0;AUJOURDHUI();"")
Et tu formates la cellule au format date
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
12 nov. 2010 à 18:53
12 nov. 2010 à 18:53
Re,
Pourquoi ne pas faire simple, clic dans la cellule à renseigner et clic sur la touche Ctrl et la touche point virgule (Ctrl et ;)
Pourquoi ne pas faire simple, clic dans la cellule à renseigner et clic sur la touche Ctrl et la touche point virgule (Ctrl et ;)
13 nov. 2010 à 03:35