Variable publique

Le
Gildo
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 ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Iznogood1
Le #15338081
On 11 juil, 11:30, Gildo
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.
Gildo
Le #16327061
Bonjour,

Merci pour vos réponses ça marche impec !

"Iznogood1" wrote:

On 11 juil, 11:30, Gildo > 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.



Publicité
Poster une réponse
Anonyme