!!! Repérage de date dans une liste !!!

  • Initiateur de la discussion Initiateur de la discussion fabrice
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fabrice

Guest
Rebonjour tout le monde

Voila mon nouveau probleme.

J'ai un tableau avec en colonne a des dates.
Je cherche à mettre en couleur des lignes (en fait de la cellule a à la f) si la celulle a (la date) correspondante est comprise entre des dates définies sur une autres feuille.

J'ai essayé avec des "for each"; des "do until" mais sans succes.

Pourriez vous m'aider,
merci de votre aide,
FAb

PS: si vous n'avez rien compris, je peux essayer de reformuler mon PB
 
Re

Ben oui, Zip obligatoire, lol

Nous nous sommes croisé à 3 min près, le post était ouvert, le temps d'écrire ma réponse et de zippé mon fichier. Et voila André plus rapide quoi moi, rire

Bonne journée à tous

@Christophe@
 
Bonjour tout le monde,

J'ai essayé d'améliorer le code mais sans résultat.
Je voudrai en fait que la plage ne soit pas figée, mais quelle puisse évoluer en fonction des insertions. Pour cela, je voudrai trouver automatiquement la dernière ligne de la colonne A.

Pour cela, j'ai rajouter et bidouiller le code de la manière suivante:
Option Explicit
Dim Cell As Range
Dim WSBase As Worksheet
Dim WSDate As Worksheet
Dim Plage As Range


Sub AjouteCouleur()
Set WSBase = Worksheets("liste") ' Modifie le nom de ta feulle !!!
Set WSDate = Worksheets("Feuil1") ' Modifie le nom de ta feulle !!!
Set Plage = WSBase.Range("A" & fab & ": W" & fab).Select ' Modifie la plage de ton tableau

fab = Range("A65535").End(xlUp).Row


For Each Cell In Plage
Select Case Cell
Case WSDate.Range("L2") To WSDate.Range("M2")
Range(Cell, Cell.Offset(0, 5)).Interior.ColorIndex = 3
End Select
Next Cell
End Sub

Mais le probleme c'est que ca ne fonctionne pas. J'ai l'impression qu'il ne defini pas "fab" donc, ne peux pas trouver la fin de la table!!!

Est ce que vours pourriez me redonner un coup de pate pour résoudre ce probleme???

Merci de votre réponse,
FAb
 
Bonsoir Fab,

Remplace ta macro comme suite:

Option Explicit
Dim Cell As Range
Dim WSBase As Worksheet
Dim WSDate As Worksheet
Dim Plage As Range
Dim DernL As Byte ' Maximum 255 ou remplacer par integer !!!

Sub AjouteCouleur()
DernL = Range("A65535").End(xlUp).Row

Set WSBase = Worksheets("DateCouleur") ' Modifie le nom de ta feulle !!!
Set WSDate = Worksheets("Date") ' Modifie le nom de ta feulle !!!
Set Plage = WSBase.Range("A1:A" & DernL) ' Modifie la plage de ton tableau

For Each Cell In Plage
Select Case Cell
Case WSDate.Range("A1") To WSDate.Range("B1")
Range(Cell, Cell.Offset(0, 5)).Interior.ColorIndex = 3
Case WSDate.Range("A2") To WSDate.Range("B2")
Range(Cell, Cell.Offset(0, 5)).Interior.ColorIndex = 4
Case WSDate.Range("A3") To WSDate.Range("B3")
Range(Cell, Cell.Offset(0, 5)).Interior.ColorIndex = 5
Case WSDate.Range("A4") To WSDate.Range("B4")
Range(Cell, Cell.Offset(0, 5)).Interior.ColorIndex = 6
End Select
Next Cell
End Sub

Bonne soirée

@Christophe@
 
Re: !!! Repérage de date dans une liste (Suite)!!!

Bonjour, c'est encore moi ;=)

Voila, je suis entrain d'essayer de paramétrer Interior.ColorIndex.

Pour cela, j'ai réaliser un Userform avec 2 bouttons.
Ce que je cherche à faire:
Si commandbutton1_click alors Interior.ColorIndex = 20
Si commandbutton2_click alors Interior.ColorIndex = 22

Pour cela, j'ai tapé le code suivant:

Option Explicit
Dim Cell As Range
Dim WSBase As Worksheet
Dim WSDate As Worksheet
Dim Plage As Range
Dim Dernl As Integer
Sub AjouteCouleur()
Dernl = Range("A65535").End(xlUp).Row

Set WSBase = Worksheets("Feuil1") ' Modifie le nom de ta feulle !!!
Set WSDate = Worksheets("Liste") ' Modifie le nom de ta feulle !!!
Set Plage = WSBase.Range("A1:A" & Dernl) ' Modifie la plage de ton tableau



For Each Cell In Plage
Select Case Cell
Case WSDate.Range("M2") To WSDate.Range("N2")
Range(Cell, Cell.Offset(0, 27)).Interior.ColorIndex = Selection
End Select
Next Cell
End Sub


Private Sub CommandButton2_Click()
Selection = 22
End Sub
Private Sub CommandButton1_Click()
Selection = 20
End Sub

Le probleme est qu'il me rentre 20 ou 22 dans la cellule et non la couleur correspondante au code.

Où ai-je fais une erreur???

Merci de votre aide,
FAb
 
Bonsoir,

Voila comment tu procède:

1. Dans un Module tu mets le code suivant:

Option Explicit
Dim Cell, Plage As Range
Dim WSBase, WSDate As Worksheet
Dim Dernl As Integer

Sub AjouteCouleur(Index As Byte)
Dernl = Range("A65535").End(xlUp).Row

Set WSBase = Worksheets("Feuil1")
Set WSDate = Worksheets("Liste")
Set Plage = WSBase.Range("A1:A" & Dernl)

For Each Cell In Plage
Select Case Cell
Case WSDate.Range("M2") To WSDate.Range("N2")
Range(Cell, Cell.Offset(0, 27)).Interior.ColorIndex = Index
End Select
Next Cell
End Sub

Ensuite:

2. Tu ajoutes 2 commandbutton sur ta feuille, dans le code VBA de ton commantButton1 tu mets:

Private Sub CommandButton1_Click()
AjouteCouleur 20
End Sub


3. Dans le code de ton commandbutton2 tu mets:

Private Sub CommandButton1_Click()
AjouteCouleur 22
End Sub


Voila,

Bonne soirée

@Christophe@
 
Salut Christophe

Merci de ta réponse mais ca ne marche pas.
Est ce que ca vient du fait que mes commandbuttons sont dans un Userform???

Si t'as une solution, je suis preneur. En attendant, je continu a chercher.
C'est dommage d'etre si pres du but :=(

Merci, de ton aide,
FAb
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour