Comment tester en vba la valeur d'une cellule Excel issue d'une formule
Résolu
jean-paul
-
jean-paul -
jean-paul -
Bonjour,
je souhaite faire une macro en vba afin de modifier la hauteur de lignes du tableau Excel en fonction du résultat.
je m'explique
si la formule de la cellule B3 a pour résultat 0 alors la hauteur de la ligne 3 sera 0
si la formule de la cellule B3 a un résultat >0 alors la hauteur de la ligne 3 sera 15
L'idée étant de cacher les lignes ayant pour résultat 0
J'utilise la macro suivante
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Nb As Integer
For i = 3 To 66
If Target.Row = i Then
Nb = Cells(i, 2).Value
If Nb = 0 Then
Target.Rows.RowHeight = 15
ElseIf Nb > 0 Then
Target.Rows.RowHeight = 30
End If
End If
Next i
End Sub
Cette macro fonctionne avec des chiffres dans les cellules B3 à B66 mais dès que je remplace les chiffres par des formules ca ne fonctionne plus.
Merci par avance pour votre aide
je souhaite faire une macro en vba afin de modifier la hauteur de lignes du tableau Excel en fonction du résultat.
je m'explique
si la formule de la cellule B3 a pour résultat 0 alors la hauteur de la ligne 3 sera 0
si la formule de la cellule B3 a un résultat >0 alors la hauteur de la ligne 3 sera 15
L'idée étant de cacher les lignes ayant pour résultat 0
J'utilise la macro suivante
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Nb As Integer
For i = 3 To 66
If Target.Row = i Then
Nb = Cells(i, 2).Value
If Nb = 0 Then
Target.Rows.RowHeight = 15
ElseIf Nb > 0 Then
Target.Rows.RowHeight = 30
End If
End If
Next i
End Sub
Cette macro fonctionne avec des chiffres dans les cellules B3 à B66 mais dès que je remplace les chiffres par des formules ca ne fonctionne plus.
Merci par avance pour votre aide
A voir également:
- Vba valeur d'une cellule
- Excel compter cellule couleur sans vba - Guide
- Excel cellule couleur si condition texte - Guide
- Bloquer une cellule excel - Guide
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum Excel
- Aller à la ligne dans une cellule excel - Guide
3 réponses
Bonjour,
ta formule doit retourner 0 (nombre) et non "0" (chaine)
Et si tu lis 0 le contenu réel peut être 0.00000000000001 <>0. Dans ce cas utiliser un arrondi
eric
ta formule doit retourner 0 (nombre) et non "0" (chaine)
Et si tu lis 0 le contenu réel peut être 0.00000000000001 <>0. Dans ce cas utiliser un arrondi
eric
Merci à vous deux pour vos réponses qui m'ont permis de vérifier que ma macro est correct.
La formule que j'utilise dans mes cellules me sert à compter le nombre de chaque lettres et chiffres utilisés dans des chaines de caractères.
=SOMMEPROD(NBCAR($B$1:$B$2)-NBCAR(SUBSTITUE($B$1:$B$2;A4;"")))
C'était un problème de rafraichissement que j'ai résolu en créant une macro qui copie une cellule vide et la colle dans une cellule vide de chaque lignes .
Je sais ce n'est pas très académique mais c'est la solution que j'ai trouvé qui fonctionne
Cordialement
J-P
La formule que j'utilise dans mes cellules me sert à compter le nombre de chaque lettres et chiffres utilisés dans des chaines de caractères.
=SOMMEPROD(NBCAR($B$1:$B$2)-NBCAR(SUBSTITUE($B$1:$B$2;A4;"")))
C'était un problème de rafraichissement que j'ai résolu en créant une macro qui copie une cellule vide et la colle dans une cellule vide de chaque lignes .
Je sais ce n'est pas très académique mais c'est la solution que j'ai trouvé qui fonctionne
Cordialement
J-P