Format d'une textbox suivant Période

Bonjour,

Ci-dessous le code que j'utilise pour "formater" mes textbox.

Cela fonctionne bien.

Private Sub ComboBox1_Change()

'Mettre la date dans chaque textbox
Dim ANNEE As Integer
ANNEE = Sheets("PilotageNC").Range("C2").Value

Dim Choix_Mois As String
Choix_Mois = ComboBox1.ListIndex

Dim NoJOUR As Integer

For NoJOUR = 1 To 31
Controls("TextBox" & NoJOUR + 652).Value = NoJOUR & "/" & (Choix_Mois) & "/" & ANNEE
Next

For NoJOUR = 1 To 31
If IsDate(Controls("TextBox" & NoJOUR + 652).Text) Then
Controls("TextBox" & NoJOUR + 652).Text = Format(Controls("TextBox" & NoJOUR + 652).Text, "dddd d")
Else
Controls("TextBox" & NoJOUR + 652).Text = ""
End If
Next

For NoJOUR = 1 To 31
Dim ECART As Integer
ECART = 31
Dim nbcolonne As Integer

For nbcolonne = 0 To 22

If Controls("TextBox" & NoJOUR + 652).Text = "" Or Left(Controls("TextBox" & NoJOUR + 652), 3) = "sam" Or Left(Controls("TextBox" & NoJOUR + 652), 3) = "dim" Then
Controls("TextBox" & NoJOUR + 1 + nbcolonne * ECART).BackColor = RGB(192, 160, 128)

Else
Controls("TextBox" & NoJOUR + 1).BackColor = &H80C0FF
Controls("TextBox" & NoJOUR + 32).BackColor = &H80FFFF
Controls("TextBox" & NoJOUR + 63).BackColor = &HC0C0&
Controls("TextBox" & NoJOUR + 94).BackColor = &H80FF&
Controls("TextBox" & NoJOUR + 125).BackColor = &H80FF&
Controls("TextBox" & NoJOUR + 156).BackColor = &HC000&
Controls("TextBox" & NoJOUR + 187).BackColor = &HC000&
Controls("TextBox" & NoJOUR + 218).BackColor = &HE0E0E0
Controls("TextBox" & NoJOUR + 249).BackColor = &HE0E0E0
Controls("TextBox" & NoJOUR + 280).BackColor = &HC0C000
Controls("TextBox" & NoJOUR + 311).BackColor = &HC0C000
Controls("TextBox" & NoJOUR + 342).BackColor = &HFF00FF
Controls("TextBox" & NoJOUR + 373).BackColor = &HFF00FF
Controls("TextBox" & NoJOUR + 404).BackColor = &H40C0&
Controls("TextBox" & NoJOUR + 435).BackColor = &H40C0&
Controls("TextBox" & NoJOUR + 466).BackColor = &H404040
Controls("TextBox" & NoJOUR + 497).BackColor = &H404040
Controls("TextBox" & NoJOUR + 528).BackColor = &H800080
Controls("TextBox" & NoJOUR + 559).BackColor = &H800080
Controls("TextBox" & NoJOUR + 590).BackColor = &HC0E0FF
Controls("TextBox" & NoJOUR + 621).BackColor = &HC0E0FF
Controls("TextBox" & NoJOUR + 652).BackColor = &H40&
Controls("TextBox" & NoJOUR + 683).BackColor = &HC0C0FF

End If
Next nbcolonne
Next NoJOUR

Calculrésult

End Sub

J'aimerais ajouter une condition à la ligne:

If Controls("TextBox" & NoJOUR + 652).Text = "" Or Left(Controls("TextBox" & NoJOUR + 652), 3) = "sam" Or Left(Controls("TextBox" & NoJOUR + 652), 3) = "dim" Then
Controls("TextBox" & NoJOUR + 1 + nbcolonne * ECART).BackColor = RGB(192, 160, 128)

Dans la feuille "Arret" du classeur, je mets en colonne A la date de début, dans la colonne B la date de fin (congès, arrêt maladie...)et en colonne C la personne concernée.

A chaque fois que nécessaire je rajoute donc une ligne.

Le code ci-dessus, me met la textbox d'une certaine couleur si la date correspond à un samedi ou dimanche.

Je voudrais donc que si la date de ma textbox est incluse dans une période de la feuille "Arret" (A2-B2, A3-B3, An-Bn), la textbox prenne la même couleur que pour le week end.

Il faudrait ajouter au code:

" ....... or Controls("TextBox" & NoJOUR + 652).Text =inclus dans l'une des périodes de la feuille Arret A2-B2 A3-B3, An-Bn then"

Et la je coince.

Une idée .

Cordialement

Salut,

Je pense qu'avec un fichier-exemple, tu aurais plus de réponses à ta question.

Cordialement.

Bonjour,

Ci-joint.

Il convient donc de faire en sorte que les jours fériés ou de congés soient de la même couleur que le week end.

J'ai essayé avec mon fichier d'origine le code suivant, mais cela ne fonctionne pas .

Private Sub ComboBox1_Change()

'Mettre la date dans chaque textbox
Dim ANNEE As Integer
ANNEE = Sheets("PilotageNC").Range("C2").Value

Dim Choix_Mois As String
Choix_Mois = ComboBox1.ListIndex

Dim NoJOUR As Integer

For NoJOUR = 1 To 31
Controls("TextBox" & NoJOUR + 652).Value = NoJOUR & "/" & (Choix_Mois) & "/" & ANNEE
Next

For NoJOUR = 1 To 31
If IsDate(Controls("TextBox" & NoJOUR + 652).Text) Then
Sheets("FERIES").Range("H" & NoJOUR) = Controls("TextBox" & NoJOUR + 652)
Sheets("FERIES").Range("H" & NoJOUR).Value = DateValue(Sheets("FERIES").Range("H" & NoJOUR))
Sheets("FERIES").Range("H" & NoJOUR).NumberFormat = "dd/mm/yyyy"

Controls("TextBox" & NoJOUR + 652).Text = Format(Controls("TextBox" & NoJOUR + 652).Text, "dddd dd")
Else
Controls("TextBox" & NoJOUR + 652).Text = ""
End If
Next

Dim NoLigneJour As Integer
Dim DerlignJour As Integer
DerlignJour = Worksheets("FERIES").Range("H" & Rows.Count).End(xlUp).Row
Dim NoDerlignFer As Integer
Dim DerlignFer As Integer
DerlignFer = Worksheets("FERIES").Range("A" & Rows.Count).End(xlUp).Row

For NoLigneJour = 1 To DerlignJour
For NoDerlignFer = 1 To DerlignFer
If Sheets("FERIES").Range("H" & NoLigneJour) >= Sheets("Arret").Range("A" & NoDerlignFer) And Sheets("Arret").Range("H" & NoLigneJour) <= Sheets("Arret").Range("B" & NoDerlignFer) And Sheets("Arret").Range("E" & NoDerlignFer) = "HUBERT" Then
Sheets("Arret").Range("I" & NoLigneJour) = 1
End If
Next NoDerlignFer
Next NoLigneJour

For NoJOUR = 1 To 31
Dim ECART As Integer
ECART = 31
Dim nbcolonne As Integer

For nbcolonne = 0 To 22
If Controls("TextBox" & NoJOUR + 652).Text = "" Or Left(Controls("TextBox" & NoJOUR + 652), 3) = "sam" Or Left(Controls("TextBox" & NoJOUR + 652), 3) = "dim" Or (Right(Controls("TextBox" & NoJOUR + 652), 2) = Left(Sheets("Arret").Range("I" & NoLigneJour), 2) And Sheets("Arret").Range("I" & NoJOUR) = 1) Then
Controls("TextBox" & NoJOUR + 1 + nbcolonne * ECART).BackColor = RGB(192, 160, 128)

Else
Controls("TextBox" & NoJOUR + 1).BackColor = &H80C0FF
Controls("TextBox" & NoJOUR + 32).BackColor = &H80FFFF
Controls("TextBox" & NoJOUR + 63).BackColor = &HC0C0&
Controls("TextBox" & NoJOUR + 94).BackColor = &H80FF&
Controls("TextBox" & NoJOUR + 125).BackColor = &H80FF&
Controls("TextBox" & NoJOUR + 156).BackColor = &HC000&
Controls("TextBox" & NoJOUR + 187).BackColor = &HC000&
Controls("TextBox" & NoJOUR + 218).BackColor = &HE0E0E0
Controls("TextBox" & NoJOUR + 249).BackColor = &HE0E0E0
Controls("TextBox" & NoJOUR + 280).BackColor = &HC0C000
Controls("TextBox" & NoJOUR + 311).BackColor = &HC0C000
Controls("TextBox" & NoJOUR + 342).BackColor = &HFF00FF
Controls("TextBox" & NoJOUR + 373).BackColor = &HFF00FF
Controls("TextBox" & NoJOUR + 404).BackColor = &H40C0&
Controls("TextBox" & NoJOUR + 435).BackColor = &H40C0&
Controls("TextBox" & NoJOUR + 466).BackColor = &H404040
Controls("TextBox" & NoJOUR + 497).BackColor = &H404040
Controls("TextBox" & NoJOUR + 528).BackColor = &H800080
Controls("TextBox" & NoJOUR + 559).BackColor = &H800080
Controls("TextBox" & NoJOUR + 590).BackColor = &HC0E0FF
Controls("TextBox" & NoJOUR + 621).BackColor = &HC0E0FF
Controls("TextBox" & NoJOUR + 652).BackColor = &H40&
Controls("TextBox" & NoJOUR + 683).BackColor = &HC0C0FF

End If
Next nbcolonne
Next NoJOUR

End Sub

Cordialement

23essai.xlsm (24.37 Ko)

oops dans le code concernant le fichier d'origine, il faut lire "Arret" au lieu de "FERIES" (mais cette correction ne suffit pas pour que j'obtienne le résultat souhaité)

Salut,

Je te propose une solution en annexe afin d’obtenir le résultat désiré pour les jours fériés.

Pour les jours de congé, il y a deux possibilités : ou bien tu écris tous les jours de congé les uns à la suite des autres dans la colonne B ou bien je dois chercher une autre solution.

A te relire.

19essai-v2.xlsm (27.83 Ko)

Bonjour,

Je n'avais pas pensé à écrire toutes les dates à la suite.

Cependant, en réouvrant mon fichier, bizarrement, il fonctionne , sans avoir à écrire toutes les dates (seulement début et fin).

Je ne suis pas un spécialiste, mais j'étudie ton code pour simplifier le mien.

Ci-joint le code que j'ai mis.

Cordialement

23essai-v6.xlsm (33.29 Ko)

Salut,

Ce n’est pas tes remerciements qui vont t’étouffer, toi !!

Tu n’as pas simplement ‘réouvert’ ton fichier comme tu le prétends, tu l’as modifié, probablement en piquant mon idée.

Je me demande si je vais te venir en aide la prochaine fois que tu en auras besoin

Amicalement.

Bonjour Yvouille,

Mes compétences sont loin d'être à ton niveau au regard des solutions que tu apportes au membres du forum.

En aucun, cas je ne prétendrai m'attribuer une solution qui ne m'appartient pas.

Si tu regardes le code que j'ai mis dans le message lors de l'envoi du fichier joint (= le code concernant mon fichier d'origine et non celui du fichier joint), tu verras qu'il ressemble presque au code que j'ai mis dans le fichier "résolu" = Essai_V6.

Cela montre que j'essaie de trouver une solution à mes problèmes, en suivant ma logique, en attendant des réponses à mes questions sur le forum (mon code mis dans le message du 12/4, n'est pas le même que celui mis dans le message du 11/4).

Je suis désolé du malentendu.

Cordialement.

MERCI pour ces précisions.

Bonne continuation.

Rechercher des sujets similaires à "format textbox suivant periode"