chripatoche
XLDnaute Nouveau
Bonjour à tous,
OK désolé, je suis vos conseils et j'ouvre une nouvelle discussion.
Je suis sur le planning d'une équipe avec des horaires décalés sur semaines glissantes. Il y a plusieurs types de semaine et chacune d'elle porte un nom. La cellule sous le NOM de l'employé est "configurée" avec une liste de données de validation comprenant les noms de chaque semaine.
Lorsque je choisi une semaine, la cellule active se colorise et les horaires de début (cellules en dessous) se remplissent automatiquement pour chaque jour de la semaine en cours.
Voici l'extrait du code (du débutant que je suis)
Je n'ai pas fini, le cycle est sur 10 semaines différentes.
Ça marche uniquement quand la case active se situe dans une colonne précise. Si elle est plus éloignée ça ne fonctionne plus. C'est normal puisque j'écris : If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2)
En fait je ne trouve pas comment remplacer columnOffset:=-2 par le nom de la colonne dans laquelle je fais la recherche.
Pour info, je veux écrire automatiquement dans des cellules des informations différentes, suivant que le jour est différent. Les jours se situent dans la colonne C
Ce que je n'arrive pas non plus à faire avec " Case Else" c'est d'effacer les heures de début de journée lorsque j'efface le nom de la semaine.
Connaitriez-vous les bonnes syntaxes ?
Ci-joint le fichier Matrice Planning essai2.xls
Merci
Chripatoche
OK désolé, je suis vos conseils et j'ouvre une nouvelle discussion.
Je suis sur le planning d'une équipe avec des horaires décalés sur semaines glissantes. Il y a plusieurs types de semaine et chacune d'elle porte un nom. La cellule sous le NOM de l'employé est "configurée" avec une liste de données de validation comprenant les noms de chaque semaine.
Lorsque je choisi une semaine, la cellule active se colorise et les horaires de début (cellules en dessous) se remplissent automatiquement pour chaque jour de la semaine en cours.
Voici l'extrait du code (du débutant que je suis)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Counter As Integer
If Not Intersect(Target, [C12:CG61]) Is Nothing And Target.Count = 1 Then
Select Case UCase(Target.Value)
Case "SEM WE JOURNEE"
Target.Interior.Color = RGB(51, 204, 255)
Target.Font.Color = RGB(0, 0, 0)
For Counter = 1 To 8
If ActiveCell.Offset(Counter, -2).Value = "LUNDI" Or ActiveCell.Offset(Counter, -2).Value = "MARDI" Then
ActiveCell.Offset(Counter).Value = "8:15"
End If
If ActiveCell.Offset(Counter, -2).Value = "MERCREDI" Then
ActiveCell.Offset(Counter).Value = "JSV"
End If
If ActiveCell.Offset(Counter, -2).Value = "JEUDI" Then
ActiveCell.Offset(Counter).Value = "8:15"
End If
If ActiveCell.Offset(Counter, -2).Value = "VENDREDI" Then
ActiveCell.Offset(Counter).Value = "JSV"
End If
If ActiveCell.Offset(Counter, -2).Value = "SAMEDI" Or ActiveCell.Offset(Counter, -2).Value = "DIMANCHE" Then
ActiveCell.Offset(Counter).Value = "8:15"
End If
Next Counter
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End If
End Sub
Je n'ai pas fini, le cycle est sur 10 semaines différentes.
Ça marche uniquement quand la case active se situe dans une colonne précise. Si elle est plus éloignée ça ne fonctionne plus. C'est normal puisque j'écris : If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2)
En fait je ne trouve pas comment remplacer columnOffset:=-2 par le nom de la colonne dans laquelle je fais la recherche.
Pour info, je veux écrire automatiquement dans des cellules des informations différentes, suivant que le jour est différent. Les jours se situent dans la colonne C
Ce que je n'arrive pas non plus à faire avec " Case Else" c'est d'effacer les heures de début de journée lorsque j'efface le nom de la semaine.
Connaitriez-vous les bonnes syntaxes ?
Ci-joint le fichier Matrice Planning essai2.xls
Merci
Chripatoche