Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Exception de Textbox dans une boucle

J-Laurie

XLDnaute Nouveau
Bonjour,

Dans mon Private Sub ListBox1_Click() , j'ai mis un code pour appliquer une mise en forme couleur sur des textbox de date, afin d'éviter les répétition j'ai fait une boucle, jusque là tout va bien, tout fonctionne. Seulement il y a certain TextBox de date (Textbox13, Textbox15, Textbox18, Textbox21, Textbox27 et Textbox40, Textbox41 et Textbox42) qui ne sont pas concernés par la mise en forme. Je cherche donc à savoir comment ajouter cette exception à mon code

Merci d'avance pour votre aide


VB:
For I = 1 To Ncol - 1

If IsDate(Me("TextBox" & I).Value) Then
If Me("TextBox" & I).Value <> "" Then

If CDate(Me("TextBox" & I).Value) <= Date Then
Me("TextBox" & I).BackColor = vbRed

Else
If Date < CDate(Me("TextBox" & I).Value) And CDate(Me("TextBox" & I).Value) < DateAdd("m", 1, Date) Then
Me("TextBox" & I).BackColor = vbYellow

Else
If DateAdd("m", 1, Date) < CDate(Me("TextBox" & I).Value) And CDate(Me("TextBox" & I).Value) < DateAdd("yyyy", 20, Date) Then
Me("TextBox" & I).BackColor = vbGreen
End If
End If
End If
End If
End If
Next I
 
Solution
Bonjour

VB:
For I = 1 To Ncol - 1
select case i
case =13,15,18,21,27,40,41,42
case else
If Me("TextBox" & I).Value <> "" Then
If IsDate(Me("TextBox" & I).Value) Then

If CDate(Me("TextBox" & I).Value) <= Date Then
Me("TextBox" & I).BackColor = vbRed

Else
If Date < CDate(Me("TextBox" & I).Value) And CDate(Me("TextBox" & I).Value) < DateAdd("m", 1, Date) Then
Me("TextBox" & I).BackColor = vbYellow

Else
If DateAdd("m", 1, Date) < CDate(Me("TextBox" & I).Value) And CDate(Me("TextBox" & I).Value) < DateAdd("yyyy", 20, Date) Then
Me("TextBox" & I).BackColor = vbGreen
End If
End If
End If
End If
End If
end select
Next I

A+ François

fanfan38

XLDnaute Barbatruc
Bonjour

VB:
For I = 1 To Ncol - 1
select case i
case =13,15,18,21,27,40,41,42
case else
If Me("TextBox" & I).Value <> "" Then
If IsDate(Me("TextBox" & I).Value) Then

If CDate(Me("TextBox" & I).Value) <= Date Then
Me("TextBox" & I).BackColor = vbRed

Else
If Date < CDate(Me("TextBox" & I).Value) And CDate(Me("TextBox" & I).Value) < DateAdd("m", 1, Date) Then
Me("TextBox" & I).BackColor = vbYellow

Else
If DateAdd("m", 1, Date) < CDate(Me("TextBox" & I).Value) And CDate(Me("TextBox" & I).Value) < DateAdd("yyyy", 20, Date) Then
Me("TextBox" & I).BackColor = vbGreen
End If
End If
End If
End If
End If
end select
Next I

A+ François
 

J-Laurie

XLDnaute Nouveau
Bonjour,

Un grand MERCI à toi François, tu as résolu mon problème... SUPER

Laurie
 

Discussions similaires

Réponses
5
Affichages
452
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…