Sélection de cellules contigues

  • Initiateur de la discussion Initiateur de la discussion Hawkeye56
  • 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 !

H

Hawkeye56

Guest
Bonjour le forum 🙂

Je suis en train de me bricoler un outil pour gérer les congés et les absences.
Il s'agit d'un calendrier qui comptabilisera les CP, RTT en fonction d'un code couleur respectif.

Pour cela j'ai d'abord besoin de faire le calendrier et de repérer les cellules samedi et dimanche et pour colorier.

J'ai réussi à faire un code pour cela mais je voudrais également que les cellules de la ligne du dessus et du dessous soient également coloriées et là je coince...

Voici mon code:

Sub SamDim()
'Colore les Sam et Dim

Range("B7:BK100").Select
For Each Cell In Selection
If Cell.Value = "Sam" Then
Cell.Interior.ColorIndex = 40
End If

If Cell.Value = "Dim" Then
Cell.Interior.ColorIndex = 40
End If
Next
End Sub


Voici en fichier joint un exemple plus parlant: En haut ce que j'obtiens avec mon code et en bas ce que je souhaiterais obtenir.

En remerciant par avance les âmes charitables qui se pencheront sur mon problème 🙂
 

Pièces jointes

Re : Sélection de cellules contigues

Merci Hasco,

L'idée est bonne mais je fais un planning prévisionnel pour l'année, l'exemple que j'ai fourni ne contient que le mois de janvier mais tous les mois figureront sur mon document.
Par contre changer automatiquement le calendrier en fonction de l'année plutôt que de le faire à la main me plait, je vais essayer de l'adapter.
 
Re : Sélection de cellules contigues

Bonjour Hawkeye56, Hasco,

Si toutes tes feuilles ont la même structure, teste ceci :

Code:
Sub SamDim()
Dim Cell As Range, Feuil As Worksheet
Application.ScreenUpdating = False
For Each Feuil In Sheets(Array("Feuil1", "Feuil2", "Feuil3"))
 With Feuil
    For Each Cell In .Range("B9:BK9")
      If Cell = "Sam" Or Cell = "Dim" Then .Range(.Cells(Cell.Offset(-1, 0).Row, Cell.Column), .Cells(Cell.Offset(91, 0).Row, Cell.Column + 1)).Interior.ColorIndex = 40
    Next
 End With
Next
Application.ScreenUpdating = True
End Sub

Là j'ai mis 3 feuilles dans le tableau (Array("Feuil1" , "Feuil2" , "Feuil3"), tu adaptes en mettant les nom de tes 12 feuilles de mois.

A+
 
Dernière édition:
Re : Sélection de cellules contigues

Bonsoir le forum,bqtr,

Ben non ça ne fonctionne pas🙁

Dans le code que tu me proposes il y a des "." qui bloquent le déroulement de la macro. Une fois corrigé le code colorie correctement le mois de janvier et ensuite colorie de manière inattendue le reste de la feuille...

Pour info les mois sont situés les uns au dessus des autres, espacés d'une ligne.
 
Re : Sélection de cellules contigues

Re Bonsoir le forum Bqtr,

J'ai corrigé , un peu modifié, et ça fonctionne avec ce code:

Sub SamDim()
Dim MyZone As Range
Set MyZone = Worksheets("Année en cours").Range("B7:BK100")
For Each Cell In MyZone

If Cell = "Sam" Or Cell = "Dim" Then Range(Cells(Cell.Offset(-1, 0).Row, Cell.Column), Cells(Cell.Offset(1, 0).Row, Cell.Column + 1)).Interior.ColorIndex = 40
Next

End Sub


Merci de ton aide btqr 🙂

Cordialement
 
Re : Sélection de cellules contigues

Re,

Ton fichier modifié : j'ai fait les 5 premiers mois.

Code:
Sub SamDim2()
Dim Cell As Range, k As Long, i As Long
Application.ScreenUpdating = False
k = 9
 With Sheets("Feuil1")
   For i = 1 To 5
      For Each Cell In .Range("B" & k & ":BK" & k)
        If Cell = "Sam" Or Cell = "Dim" Then .Range(.Cells(Cell.Offset(-1, 0).Row, Cell.Column), .Cells(Cell.Offset(20, 0).Row, Cell.Column + 1)).Interior.ColorIndex = 40
      Next
    k = k + 23
   Next
 End With
Application.ScreenUpdating = True
End Sub

- Pour les 12 mois : For i = 1 to 12
- Pour le nombre de ligne dans les tableaux : .Cells(Cell.Offset(??, 0).Row, Cell.Column + 1) ou ?? est le nombre de ligne des tableaux.
- Pour l'espace entre les tableaux : k = k + 23 remplace 23 par ce que tu veux.

Attention les tableaux doivent être identiques (nombre de ligne et de colonne).

A+
 

Pièces jointes

Re : Sélection de cellules contigues

re

Btqr, merci d'avoir replanché dessus mais ton premier code modifié fonctionne pour tous les mois. (chaque mois tient sur 3 lignes et est espacé du mois suivant par une ligne. J'ai défini le range par ("B7:BK100"), il englobe les 12 mois et j'ai le résultat souhaité. Excuse-moi, j'ai probablement mal décrit mon calendrier.
Encore merci de ton aide
 
- 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

Réponses
14
Affichages
484
Réponses
4
Affichages
523
Réponses
3
Affichages
564
Retour