Bonjour,
J’ai cet excellent code venant du site qui me permet de contrôler des
cellules.
Function CompteCouleurFond2(champ As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In [champ]
If c >= 39590.5 And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1
Next c
CompteCouleurFond2 = temp
End Function
La valeur 39590.5 est une date de batch. J’essaie désespérément d’en faire
une variable
J’ai essayé ça !
'Sub ThisWorkbook_Open()
' Dim toto As String
' Sheets("histo").Select
' toto = Range("c1").Text
'
'End Sub
Puis je mets toto à la place du nombre dans ma fonction
Mais cela me retourne un résultat incongru ! Même si je mets en texte 39590.5
L’idéal pour moi serait d’écrire en C1 la date en clair ex : 22/05/2008
12:00 et qu’elle soit prise en variable toto dans mon code en 39590.5
Est-ce possible, ou je lève les doigts du clavier ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Iznogood1
On 11 juil, 11:30, Gildo wrote:
Bonjour, Jai cet excellent code venant du site qui me permet de contrôler des cellules.
Function CompteCouleurFond2(champ As Range) Application.Volatile Dim c, temp temp = 0 For Each c In [champ] If c >= 39590.5 And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 Next c CompteCouleurFond2 = temp End Function
La valeur 39590.5 est une date de batch. Jessaie désespérément d en faire une variable Jai essayé ça ! 'Sub ThisWorkbook_Open() ' Dim toto As String ' Sheets("histo").Select ' toto = Range("c1").Text ' 'End Sub Puis je mets toto à la place du nombre dans ma fonction Mais cela me retourne un résultat incongru ! Même si je mets en texte 39590.5 Lidéal pour moi serait décrire en C1 la date en clair ex : 22/ 05/2008 12:00 et quelle soit prise en variable toto dans mon code en 39590.5 Est-ce possible, ou je lève les doigts du clavier ?
Remplace la ligne qui contient la date en dur par If c.value >= [C1].value And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 et applique le format "Date" à la cellule c1.
On 11 juil, 11:30, Gildo <Gi...@discussions.microsoft.com> wrote:
Bonjour,
Jai cet excellent code venant du site qui me permet de contrôler des
cellules.
Function CompteCouleurFond2(champ As Range)
Application.Volatile
Dim c, temp
temp = 0
For Each c In [champ]
If c >= 39590.5 And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1
Next c
CompteCouleurFond2 = temp
End Function
La valeur 39590.5 est une date de batch. Jessaie désespérément d en faire
une variable
Jai essayé ça !
'Sub ThisWorkbook_Open()
' Dim toto As String
' Sheets("histo").Select
' toto = Range("c1").Text
'
'End Sub
Puis je mets toto à la place du nombre dans ma fonction
Mais cela me retourne un résultat incongru ! Même si je mets en texte 39590.5
Lidéal pour moi serait décrire en C1 la date en clair ex : 22/ 05/2008
12:00 et quelle soit prise en variable toto dans mon code en 39590.5
Est-ce possible, ou je lève les doigts du clavier ?
Remplace la ligne qui contient la date en dur par
If c.value >= [C1].value And UCase(Range("H" & c.Row)) = "OK" Then
temp = temp + 1
et applique le format "Date" à la cellule c1.
Bonjour, Jai cet excellent code venant du site qui me permet de contrôler des cellules.
Function CompteCouleurFond2(champ As Range) Application.Volatile Dim c, temp temp = 0 For Each c In [champ] If c >= 39590.5 And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 Next c CompteCouleurFond2 = temp End Function
La valeur 39590.5 est une date de batch. Jessaie désespérément d en faire une variable Jai essayé ça ! 'Sub ThisWorkbook_Open() ' Dim toto As String ' Sheets("histo").Select ' toto = Range("c1").Text ' 'End Sub Puis je mets toto à la place du nombre dans ma fonction Mais cela me retourne un résultat incongru ! Même si je mets en texte 39590.5 Lidéal pour moi serait décrire en C1 la date en clair ex : 22/ 05/2008 12:00 et quelle soit prise en variable toto dans mon code en 39590.5 Est-ce possible, ou je lève les doigts du clavier ?
Remplace la ligne qui contient la date en dur par If c.value >= [C1].value And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 et applique le format "Date" à la cellule c1.
Gildo
Bonjour,
Merci pour vos réponses ça marche impec !
"Iznogood1" wrote:
On 11 juil, 11:30, Gildo wrote: > Bonjour, > J’ai cet excellent code venant du site qui me permet de contrôler des > cellules. > > Function CompteCouleurFond2(champ As Range) > Application.Volatile > Dim c, temp > temp = 0 > For Each c In [champ] > If c >= 39590.5 And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 > Next c > CompteCouleurFond2 = temp > End Function > > La valeur 39590.5 est une date de batch. J’essaie désespérément d’en faire > une variable > J’ai essayé ça ! > 'Sub ThisWorkbook_Open() > ' Dim toto As String > ' Sheets("histo").Select > ' toto = Range("c1").Text > ' > 'End Sub > Puis je mets toto à la place du nombre dans ma fonction > Mais cela me retourne un résultat incongru ! Même si je mets en texte 39590.5 > L’idéal pour moi serait d’écrire en C1 la date en clair ex : 22/05/2008 > 12:00 et qu’elle soit prise en variable toto dans mon code en 39590.5 > Est-ce possible, ou je lève les doigts du clavier ?
Remplace la ligne qui contient la date en dur par If c.value >= [C1].value And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 et applique le format "Date" à la cellule c1.
Bonjour,
Merci pour vos réponses ça marche impec !
"Iznogood1" wrote:
On 11 juil, 11:30, Gildo <Gi...@discussions.microsoft.com> wrote:
> Bonjour,
> J’ai cet excellent code venant du site qui me permet de contrôler des
> cellules.
>
> Function CompteCouleurFond2(champ As Range)
> Application.Volatile
> Dim c, temp
> temp = 0
> For Each c In [champ]
> If c >= 39590.5 And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1
> Next c
> CompteCouleurFond2 = temp
> End Function
>
> La valeur 39590.5 est une date de batch. J’essaie désespérément d’en faire
> une variable
> J’ai essayé ça !
> 'Sub ThisWorkbook_Open()
> ' Dim toto As String
> ' Sheets("histo").Select
> ' toto = Range("c1").Text
> '
> 'End Sub
> Puis je mets toto à la place du nombre dans ma fonction
> Mais cela me retourne un résultat incongru ! Même si je mets en texte 39590.5
> L’idéal pour moi serait d’écrire en C1 la date en clair ex : 22/05/2008
> 12:00 et qu’elle soit prise en variable toto dans mon code en 39590.5
> Est-ce possible, ou je lève les doigts du clavier ?
Remplace la ligne qui contient la date en dur par
If c.value >= [C1].value And UCase(Range("H" & c.Row)) = "OK" Then
temp = temp + 1
et applique le format "Date" à la cellule c1.
On 11 juil, 11:30, Gildo wrote: > Bonjour, > J’ai cet excellent code venant du site qui me permet de contrôler des > cellules. > > Function CompteCouleurFond2(champ As Range) > Application.Volatile > Dim c, temp > temp = 0 > For Each c In [champ] > If c >= 39590.5 And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 > Next c > CompteCouleurFond2 = temp > End Function > > La valeur 39590.5 est une date de batch. J’essaie désespérément d’en faire > une variable > J’ai essayé ça ! > 'Sub ThisWorkbook_Open() > ' Dim toto As String > ' Sheets("histo").Select > ' toto = Range("c1").Text > ' > 'End Sub > Puis je mets toto à la place du nombre dans ma fonction > Mais cela me retourne un résultat incongru ! Même si je mets en texte 39590.5 > L’idéal pour moi serait d’écrire en C1 la date en clair ex : 22/05/2008 > 12:00 et qu’elle soit prise en variable toto dans mon code en 39590.5 > Est-ce possible, ou je lève les doigts du clavier ?
Remplace la ligne qui contient la date en dur par If c.value >= [C1].value And UCase(Range("H" & c.Row)) = "OK" Then temp = temp + 1 et applique le format "Date" à la cellule c1.