Problème vba excel
Résolu/Fermé
LANGAZOU
Messages postés
95
Date d'inscription
vendredi 16 janvier 2015
Statut
Membre
Dernière intervention
8 novembre 2015
-
2 févr. 2015 à 21:03
LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015 - 3 févr. 2015 à 14:42
LANGAZOU Messages postés 95 Date d'inscription vendredi 16 janvier 2015 Statut Membre Dernière intervention 8 novembre 2015 - 3 févr. 2015 à 14:42
A voir également:
- Problème vba excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
Modifié par eriiic le 2/02/2015 à 23:39
Modifié par eriiic le 2/02/2015 à 23:39
Bonjour,
à tester, je trouve beaucoup de rouges :
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
à tester, je trouve beaucoup de rouges :
Sub grille2() Dim taux, datas Dim lig1 As Long, lig2 As Long With Sheets("Feuil1") taux = .[A1:E1].Resize(.Cells(Rows.Count, 1).End(xlUp).Row).Value End With Application.ScreenUpdating = False With Sheets("BC") datas = .[E:L].Resize(.Cells(Rows.Count, 1).End(xlUp).Row) For lig1 = 2 To UBound(datas) .Cells(lig1, "H").Interior.ColorIndex = xlNone For lig2 = 2 To UBound(taux) If datas(lig1, 1) >= taux(lig2, 3) And datas(lig1, 1) <= taux(lig2, 4) Then If datas(lig1, 8) >= taux(lig2, 1) And datas(lig1, 8) <= taux(lig2, 2) Then If datas(lig1, 4) <> taux(lig2, 5) Then .Cells(lig1, "H").Interior.ColorIndex = 3 Exit For End If End If End If Next lig2 Next lig1 End With End Sub
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
LANGAZOU
Messages postés
95
Date d'inscription
vendredi 16 janvier 2015
Statut
Membre
Dernière intervention
8 novembre 2015
Modifié par LANGAZOU le 3/02/2015 à 08:29
Modifié par LANGAZOU le 3/02/2015 à 08:29
Bonjour Mr Eric,
je vous remercie énormément pour votre réponse.
Après verification du résultat, votre code colore les taux inférieurs ainsi que supérieurs à la grille ! Avant de colorer les taux il faut que je verifie l'appartenance du montant et du nombre de jours à la ligne adéquate de la grille, après il y aura coloration des Taux qui sont lui sont supérieurs.
je suis débutant en VBA alors je suis bloqué :(
Merci.
je vous remercie énormément pour votre réponse.
Après verification du résultat, votre code colore les taux inférieurs ainsi que supérieurs à la grille ! Avant de colorer les taux il faut que je verifie l'appartenance du montant et du nombre de jours à la ligne adéquate de la grille, après il y aura coloration des Taux qui sont lui sont supérieurs.
je suis débutant en VBA alors je suis bloqué :(
Merci.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
3 févr. 2015 à 10:37
3 févr. 2015 à 10:37
Bonjour,
Tu avais dit : colorer les taux hors grille de taux...
remplace :
par :
eric
Tu avais dit : colorer les taux hors grille de taux...
remplace :
If datas(lig1, 4) <> taux(lig2, 5) Then
par :
If datas(lig1, 4) > taux(lig2, 5) Then
eric
LANGAZOU
Messages postés
95
Date d'inscription
vendredi 16 janvier 2015
Statut
Membre
Dernière intervention
8 novembre 2015
Modifié par LANGAZOU le 3/02/2015 à 12:40
Modifié par LANGAZOU le 3/02/2015 à 12:40
re bonjour,
Je vous remercie énormément Mr Eric.
juste un petit souci que je le trouve pas de solution:
- sur la première ligne, il me colore le taux 1.60 pourtant il n'a pas dépassé la grille. lorsque je retape le taux 1.60 avec le clavier et j'active mon macro la coloration disparaisse.j'ai verifié le format des cellules mais toujours pas de solution ( même problème pour la ligne 17) :/
ci-joint mon fichier rectifié:https://www.cjoint.com/?3BdmYHEygW3
Merci d'avance
Je vous remercie énormément Mr Eric.
juste un petit souci que je le trouve pas de solution:
- sur la première ligne, il me colore le taux 1.60 pourtant il n'a pas dépassé la grille. lorsque je retape le taux 1.60 avec le clavier et j'active mon macro la coloration disparaisse.j'ai verifié le format des cellules mais toujours pas de solution ( même problème pour la ligne 17) :/
ci-joint mon fichier rectifié:https://www.cjoint.com/?3BdmYHEygW3
Merci d'avance
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
Modifié par eriiic le 3/02/2015 à 13:05
Modifié par eriiic le 3/02/2015 à 13:05
en M4 saisis : =H2-1.6-0
(le -0 est important même si apparemment il ne sert à rien)
Tu trouves = 4.44089E-16, ça suffit pour que vba dise que c'est supérieur.
C'est dû aux erreurs de conversion décimal binaire
Remplace par :
eric
(le -0 est important même si apparemment il ne sert à rien)
Tu trouves = 4.44089E-16, ça suffit pour que vba dise que c'est supérieur.
C'est dû aux erreurs de conversion décimal binaire
Remplace par :
If Round(datas(lig1, 4), 10) > taux(lig2, 5) Then
eric
LANGAZOU
Messages postés
95
Date d'inscription
vendredi 16 janvier 2015
Statut
Membre
Dernière intervention
8 novembre 2015
3 févr. 2015 à 14:42
3 févr. 2015 à 14:42
Merci Merciii beaucoup :)) j'ai ajouté cette fonction Round sur mon code initiale aussi et ca marche très bien :)
je vous remercie encore une fois chèr Eric et à très bientôt.
Sub GRILLE()
Dim TheRow As ListRow
For i = 2 To 1000
For Each TheRow In Feuil2.ListObjects("Tab_Taux").ListRows
'On recherche la ligne qui correspond à critère Montant et Nbr de jour
If Sheets("BC").Cells(i, 5) <> "" And Sheets("BC").Cells(i, 12) <> "" And Sheets("BC").Cells(i, 8) <> "" Then
If Sheets("BC").Cells(i, 12) >= TheRow.Range(1, 1).Value And Sheets("BC").Cells(i, 12) <= TheRow.Range(1, 2).Value And Sheets("BC").Cells(i, 5) >= TheRow.Range(1, 3).Value And Sheets("BC").Cells(i, 5) <= TheRow.Range(1, 4).Value Then
'On controle le taux
If Round(Sheets("BC").Cells(i, 8), 10) > TheRow.Range(1, 5) Then
Sheets("BC").Cells(i, 8).Font.Color = RGB(255, 0, 0)
Else
Sheets("BC").Cells(i, 8).Font.Color = RGB(0, 0, 0)
'On quitte la boucle
Exit For
End If
End If
End If
Next
Next
End Sub
je vous remercie encore une fois chèr Eric et à très bientôt.