Calcul de nombre de jours dans un USF

aubelix

XLDnaute Impliqué
Bonjour à tous les amis du Forum.

Une question de syntaxe pour calculer le nombre de jours
entre la date du jour et des dates d'échéances dans un userform.
Et une couleur de police en fonction du nombre de jours restants.
Voir le fichier joint.

Par avance merci pour votre aide.
Cordialement.
 

Pièces jointes

  • CALCULS_JOURS_ECHEANCES.xls
    48 KB · Affichages: 95
  • CALCULS_JOURS_ECHEANCES.xls
    48 KB · Affichages: 95
  • CALCULS_JOURS_ECHEANCES.xls
    48 KB · Affichages: 97

aubelix

XLDnaute Impliqué
Re : Calcul de nombre de jours dans un USF

Re Catrice. :)

Tout fonctionne bien dans l'exemple que tu as fait évoluer.
J'ai essayé de l'adapter à mon projet et j'obtiens un message
d'erreur : Erreur d'éxécution..... objet introuvable.
La macro s'arrête sur la ligne en rouge.

Sub Feux(Arg1)
With Controls("WebBrowser" & Right(Arg1.Name, 1))
.Navigate "about:<html><body scroll='no' BottomMargin=0 LeftMargin=0 TopMargin=0 RigthMargin=0>" & _
"<img src='C:\temp\" & IIf(Arg1 >= 45, "feux020.gif", "feux019.gif") & "'width='33' height='33'></img></body></html>"
.Visible = True
End With
End Sub


Voir fichier fichier joint.
Merci pour ton aide.

Cordialement.
 

Pièces jointes

  • CALCULS_JOURS_ECHEANCES.xls
    63.5 KB · Affichages: 40
  • CALCULS_JOURS_ECHEANCES.xls
    63.5 KB · Affichages: 31
  • CALCULS_JOURS_ECHEANCES.xls
    63.5 KB · Affichages: 32

Catrice

XLDnaute Barbatruc
Re : Calcul de nombre de jours dans un USF

Bonsoir,

Avec le fichier que tu as posté, je n'ai pas de message d'erreur ...
Tu as bien posté le fichier qui pose probleme ?

Dans ton fichier, tu as bien 3 objets WebBrowser ?
WebBrowser1, WebBrowser2 et WebBrowser3

et 3 objets TxtBxECH ?
TxtBxECH1, TxtBxECH2 et TxtBxECH3
 
Dernière édition:

aubelix

XLDnaute Impliqué
Re : Calcul de nombre de jours dans un USF

Bonjour Catrice. :)

Le fichier qui popse problème est mon application.
Elle comporte plus de 10 WebBrowser
Y'a-til une incidence ?
Je pense avoir appliqué ton code à mon application.

Cordialement.
 

aubelix

XLDnaute Impliqué
Re : Calcul de nombre de jours dans un USF

Bonjour Catrice.

Mon code est le suivant

Private Sub ComboBox1_Change()
Dim Cell As Range
Dim cherch As String, derlign As Long
derlign = Sheets("DATA").Range("A65536").End(xlUp).Row
cherch = ComboBox1
Set Cell = Sheets("DATA").Range("A2:A" & derlign).Find(cherch, LookAt:=xlWhole)
If Not Cell Is Nothing Then

TextBox2.Value = Cell.Offset(0, 1)
TextBox3.Value = Cell.Offset(0, 2)
TextBox4.Value = Cell.Offset(0, 3)
TextBox5.Value = Cell.Offset(0, 4)
TextBox6.Value = Cell.Offset(0, 5)
TextBox7.Value = Cell.Offset(0, 6)
TextBox8.Value = Cell.Offset(0, 7)
TextBox9.Value = Cell.Offset(0, 8)
TextBox10.Value = Cell.Offset(0, 9)
TextBox11.Value = Cell.Offset(0, 10)
TextBox12.Value = Cell.Offset(0, 11)
TextBox13.Value = Cell.Offset(0, 12)
TextBox14.Value = Cell.Offset(0, 13)
TextBox15.Value = Cell.Offset(0, 14)

WebBrowser9.Visible = False
WebBrowser10.Visible = False
WebBrowser11.Visible = False
WebBrowser13.Visible = False
WebBrowser15.Visible = False
WebBrowser52.Visible = False
WebBrowser50.Visible = False
WebBrowser51.Visible = False
WebBrowser7.Visible = False
WebBrowser30.Visible = False

TextBox3.SetFocus
If TextBox2.Value = "OUI" Then
TextBox2.ForeColor = &H4000&
TextBox2.BackColor = &HFFFF&

Else
TextBox2.ForeColor = &H80&
TextBox2.BackColor = &HFFFFFF
' Label14.Visible = False
End If

If TextBox15.Value <> "" Then
TextBox15.BackColor = &HFF&
Else
TextBox15.BackColor = &HFFFFFF
End If

If TextBox5 <> "" Then
TxtBxB2 = Round(CDate(TextBox5) - Now)
Couleur TxtBxB2
Feux TxtBxB2
Else
TxtBxB2 = ""
WebBrowser9.Visible = False
End If

If TextBox6 <> "" Then
TxtBxAPRS = Round(CDate(TextBox6) - Now)
Couleur TxtBxAPRS
Feux TxtBxAPRS
Else
TxtBxAPRS = ""
WebBrowser10.Visible = False
End If

If TextBox7 <> "" Then
TxtBxVM = Round(CDate(TextBox7) - Now)
Couleur TxtBxVM
Feux TxtBxVM
WebBrowser11.Visible = False
Else
TxtBxVM = ""
End If


If TextBox8 <> "" Then
TxtBxYMAINS = Round(CDate(TextBox8) - Now)
Couleur TxtBxYMAINS
Feux TxtBxYMAINS
Else
TxtBxYMAINS = ""
WebBrowser30.Visible = False
End If

If TextBox9 <> "" Then
TxtBxGPOST = Round(CDate(TextBox9) - Now)
Couleur TxtBxGPOST
Feux TxtBxGPOST
Else
TxtBxGPOST = ""
WebBrowser13.Visible = False
End If

If TextBox10 <> "" Then
TxtBxEXCT = Round(CDate(TextBox10) - Now)
Couleur TxtBxEXCT
Feux TxtBxEXCT
Else
TxtBxEXCT = ""
WebBrowser50.Visible = False
End If

If TextBox11 <> "" Then
TxtBxRCHIM = Round(CDate(TextBox11) - Now)
Couleur TxtBxRCHIM
Feux TxtBxRCHIM
Else
TxtBxRCHIM = ""
WebBrowser15.Visible = False
End If

If TextBox12 <> "" Then
TxtBxL_SOUD = Round(CDate(TextBox12) - Now)
Couleur TxtBxL_SOUD
Feux TxtBxL_SOUD
Else
TxtBxL_SOUD = ""
WebBrowser7.Visible = False
End If

If TextBox13 <> "" Then
TxtBxELING = Round(CDate(TextBox13) - Now)
Couleur TxtBxELING
Feux TxtBxELING
Else
TxtBxELING = ""
WebBrowser52.Visible = False
End If

If TextBox14 <> "" Then
TxtBxFAC_HUM = Round(CDate(TextBox14) - Now)
Couleur TxtBxFAC_HUM
Feux TxtBxFAC_HUM
Else
TxtBxFAC_HUM = ""
WebBrowser51.Visible = False
End If

End If
On Error Resume Next
On Error GoTo 0
End Sub

Ou se situe le problème ?

Par avance merci de ton aide.
Cordialement.
 

Catrice

XLDnaute Barbatruc
Re : Calcul de nombre de jours dans un USF

Bonjour,

Ce qui se passe est normal.

Dans mon code, je "synchronise" les "WebBrowser" et les "TxtBxB".

A WebBrowser1 doit correspondre TxtBxB1
A WebBrowser10 doit correspondre TxtBxB10
A WebBrowser1A doit correspondre TxtBxB1A

C'est ce code qui fait ça :
With Controls("WebBrowser" & Right(Arg1.Name, 1))
Ca recupere l'indice du control pour gerer le control associé.

Il faut que tes controles soient "accordés".
Soit tu les nommes :
WebBrowser1, WebBrowser2, WebBrowserA, WebBrowserB..
et
TxtBxB1, TxtBxB2 .... TxtBxBA, TxtBxBB..

Soit tu les nommes :
WebBrowser01, WebBrowser02, WebBrowser0A, WebBrowserB..
et
TxtBxB01, TxtBxB02 .... TxtBxB10, TxtBxB11B...
Et tu modifies le code :
With Controls("WebBrowser" & Right(Arg1.Name, 2))

Soit tu mets les noms que tu veux mais tu geres alors une table de correspondances.
 

aubelix

XLDnaute Impliqué
Re : Calcul de nombre de jours dans un USF

Re Bonjour Catrice. :)

J'ai adapté ton code. Ca fonctionne bien sauf sauf l'affichage des Webrowsers :
Ils ne s'affichent pas plein cadre.

Peux-tu en t'inspirant du code de PierreJean, adapter ton code.

'Chemin des gifs animés
fvert = "c:\Temp\feux020.gif"
frouge = "c:\Temp\feux019.gif"

Call Raffraichir

'Code pour l'affichage des WebBrowser plein cadre
WebBrowser10.Navigate _
"about:<html><body scroll='no' BottomMargin=0 LeftMargin=0 TopMargin=0 RigthMargin=0>" & _
"<img src='" & fvert & "' width='100%' height='100%'></img></body></html>"


Merci pour ton aide.
Cordialement
 

aubelix

XLDnaute Impliqué
Re : Calcul de nombre de jours dans un USF

Re Bonjour Catrice ci-dessous le code de mon application.
Tous les Gifs ne s'affichent pas.

Private Sub ComboBox1_Change()
Dim Cell As Range
Dim cherch As String, derlign As Long
derlign = Sheets("DATA").Range("A65536").End(xlUp).Row
cherch = ComboBox1
Set Cell = Sheets("DATA").Range("A2:A" & derlign).Find(cherch, LookAt:=xlWhole)
If Not Cell Is Nothing Then

TextBox2.Value = Cell.Offset(0, 1)
TextBox3.Value = Cell.Offset(0, 2)
TextBox4.Value = Cell.Offset(0, 3)
TextBox01.Value = Cell.Offset(0, 4)
TextBox02.Value = Cell.Offset(0, 5)
TextBox03.Value = Cell.Offset(0, 6)
TextBox04.Value = Cell.Offset(0, 7)
TextBox05.Value = Cell.Offset(0, 8)
TextBox06.Value = Cell.Offset(0, 9)
TextBox07.Value = Cell.Offset(0, 10)
TextBox08.Value = Cell.Offset(0, 11)
TextBox09.Value = Cell.Offset(0, 12)
TextBox10.Value = Cell.Offset(0, 13)
TextBox15.Value = Cell.Offset(0, 14)

WebBrowser01.Visible = False
WebBrowser02.Visible = False
WebBrowser03.Visible = False
WebBrowser04.Visible = False
WebBrowser05.Visible = False
WebBrowser06.Visible = False
WebBrowser07.Visible = False
WebBrowser08.Visible = False
WebBrowser09.Visible = False
WebBrowser10.Visible = False
'Focus sur le numéro de matricule
TextBox3.SetFocus
'Si employé contrôleur ("OUI") alors...
If TextBox2.Value = "OUI" Then
TextBox2.ForeColor = &H4000&
TextBox2.BackColor = &HFFFF&
'Si employé contrôleur ("NON") alors...
Else
TextBox2.ForeColor = &H80&
TextBox2.BackColor = &HFFFFFF

End If

'Couleurs Observations : Police blanche sur Fond rouge
If TextBox15.Value <> "" Then
TextBox15.BackColor = &HFF&
Else
TextBox15.BackColor = &HFFFFFF
End If

'B2
If TextBox01 <> "" Then
TxtBx01 = Round(CDate(TextBox01) - Now)
Couleur TxtBx01
Feux TxtBx01
Else
TxtBx01 = ""
WebBrowser01.Visible = False
End If


If TextBox02 <> "" Then
TxtBx02 = Round(CDate(TextBox02) - Now)
Couleur TxtBx02
Feux TxtBx02
Else
TxtBx02 = ""
WebBrowser02.Visible = False
End If


If TextBox03 <> "" Then
TxtBx03 = Round(CDate(TextBox03) - Now)
Couleur TxtBx03
Feux TxtBx03
Else
TxtBx03 = ""
WebBrowser03.Visible = False
End If


If TextBox04 <> "" Then
TxtBx04 = Round(CDate(TextBox04) - Now)
Couleur TxtBx04
Feux TxtBx04
Else
TxtBx04 = ""
WebBrowser04.Visible = False
End If


If TextBox05 <> "" Then
TxtBx05 = Round(CDate(TextBox05) - Now)
Couleur TxtBx05
Feux TxtBx05
Else
TxtBx05 = ""
WebBrowser05.Visible = False
End If


If TextBox06 <> "" Then
TxtBx06 = Round(CDate(TextBox06) - Now)
Couleur TxtBx06
Feux TxtBx06
Else
TxtBx06 = ""
WebBrowser06.Visible = False
End If


If TextBox07 <> "" Then
TxtBx07 = Round(CDate(TextBox07) - Now)
Couleur TxtBx07
Feux TxtBx07
Else
TxtBx07 = ""
WebBrowser07.Visible = False
End If


If TextBox08 <> "" Then
TxtBx08 = Round(CDate(TextBox08) - Now)
Couleur TxtBx08
Feux TxtBx08
Else
TxtBx08 = ""
WebBrowser08.Visible = False
End If


If TextBox09 <> "" Then
TxtBx09 = Round(CDate(TextBox09) - Now)
Couleur TxtBx09
Feux TxtBx09
Else
TxtBx09 = ""
WebBrowser09.Visible = False
End If


If TextBox10 <> "" Then
TxtBx10 = Round(CDate(TextBox10) - Now)
Couleur TxtBx10
Feux TxtBx10
Else
TxtBx10 = ""
WebBrowser10.Visible = False
End If


End If
On Error Resume Next
On Error GoTo 0
End Sub
'Couleurs des jours en fonction de la durée
Sub Couleur(Arg1)
Select Case Arg1
Case Is < 0: Arg1.ForeColor = &HFF&
Case 0 To 30: Arg1.ForeColor = &HFF0000
Case Is > 30: Arg1.ForeColor = &HFF00&
End Select
End Sub

Sub Feux(Arg1)
With Controls("WebBrowser" & Right(Arg1.Name, 2))

.Navigate "about:<html><body scroll='no' BottomMargin=0 LeftMargin=0 TopMargin=0 RigthMargin=0>" & _
"<img src='C:\temp\" & IIf(Arg1 >= 45, "feux020.gif", "feux019.gif") & "'width='33' height='33'></img></body></html>"


.Visible = True
End With
End Sub


Merci pour ton aide.
Cordialement.
 
Dernière édition:

Catrice

XLDnaute Barbatruc
Re : Calcul de nombre de jours dans un USF

Re,

Mon code s'applique plein cadre chez moi !?
Comme je l'ai expliqué precedement, j'ai modifié les Width et Height pour que ça fonctionne.

C'est quoi Call Raffraichir ?

Dans un autre post (https://www.excel-downloads.com/threads/affichage-sous-conditions.113527/) j'ai vu le probleme mais à priori pas resolu.

Dans le Post actuel je propose une solution sans probleme de "plein cadre" ...
Je ne comprends pas tres bien ton attente ...
Peux tu préciser ?
 

Catrice

XLDnaute Barbatruc
Re : Calcul de nombre de jours dans un USF

Re,

Pour répondre au post précédents (nos reponses se sont croisées).
Tous les gifs ne s'affichent pas => c'est à dire :
- aucun ne s'affiche
- certains s'affichent ?

NB - il faudrait que tu mettes ton code dans un TXT (que tu Zip) ou un XLS.
 

aubelix

XLDnaute Impliqué
Re : Calcul de nombre de jours dans un USF

Re,

NB - il faudrait que tu mettes ton code dans un TXT (que tu Zip) ou un XLS.


Qu'entends-tu par mettre le texte dans un TXT ou XLS, que je zippe. ?
Pour en revenir aux Webrowser, je n'ai que le Webrowser09 qui s'affiche
et les autres se sont des cadres avex des crois rouges.

A quoi cele est-il du ?

Merci pour ton aide
Cordialement.
 

aubelix

XLDnaute Impliqué
Re : Calcul de nombre de jours dans un USF

Re Bonjour Catrice. :)

Désolé, l'absence d'affichage est du au nom du Gif Animé.
Tout est rentré dans l'ordre. Je suis confus :(

Par contre je suis obligé d'agrandir mes webrowsers pour les afficher plein cadre. Ils ne sont pas proportiennels aux cadre :
Si le Height =20 et Width = 20 , ils ne s'affichent pas complètement.
Je suis au obligé de les ramener à 26 x 26 pour les voir en entier.

C'est pour ça que je t'ai demandé d'essayer d'adapter ton code à celui de
PierreJean. L'affichage est proportionnel.

Merci pour ton aide.
Cordialement.
 

Catrice

XLDnaute Barbatruc
Re : Calcul de nombre de jours dans un USF

Re,

Concernant le pb de cadrage, la solution que j'ai trouvé est de "fixer" le Width et le Height (dans mon exemple 33).
Les pourcentages posant probleme.

Il faut ensuite jourer sur la taille du controle.

Il faut également à la base, dans un outils de traitement d'image redimensionner les GIFs.
J'ai vu que les tiens font 25x25 pixels, qu'en dimensionnant le controle (dans les proprietes de l'objet WebBrowser) à 28 et en parametrant les Width et Height à 33 ça fontionnait.
C'est de la cuisine, on peut peut etre faire mieux ...
Mais une fois que tu as trouvé la proportion, c'est bon, il n'y a qu'une ligne de code à modifier.

Les Width et Height à 100% ne sont pas concluants chez moi.

Qqun a peut etre une meilleure solution ?...
 
Dernière édition:

Discussions similaires

Réponses
14
Affichages
540

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia