Surligner la 1ere cellule en abscisse et ordo
smanu
-
smanu -
smanu -
Bonjour,
Je n'ai vraiment pas beaucoup de notion de programmation VBA mais je souhaiterais sous Excel mettre en couleur les 1ières cellules en abscisse et ordonnées
j'ai par exemple un tableau avec en abscisse les 12 mois de l'année et en ordonnée les années depuis 2000 à 2008.
En fait si rentre en janvier 2007, une valeur, j'aimerais que la cellule janvier et la cellule 2007, change de couleur, pour repérer plus facilement ou je suis, et éviter les erreurs...
Pouvez vous m'aider ?
On a essayé avec un collègue pour surligner la ligne en couleur la ou se trouve le curseur, cela marche bien sauf que lorsque l'on sauvegarde le document, les couleurs restent... C'est donc un peu ce que j'aimerais faire mais avec juste la 1er cellule de la ligne mais aussi celle de la colonne.
voici le code employé pour la ligne complète sur 16 cellules :
Dim couleur(16) As Long
Dim i As Long
Dim lig As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If i = 0 Then
For i = 1 To 16
lig = ActiveCell.Row
couleur(i) = Cells(lig, i).Interior.Color
Cells(lig, i).Interior.Color = 300000
Next i
Else
For i = 1 To 16
Cells(lig, i).Interior.Color = couleur(i)
Next i
i = 0
For i = 1 To 16
lig = ActiveCell.Row
couleur(i) = Cells(lig, i).Interior.Color
Cells(lig, i).Interior.Color = 300000
Next i
End If
End Sub
Merci beaucoup
Je n'ai vraiment pas beaucoup de notion de programmation VBA mais je souhaiterais sous Excel mettre en couleur les 1ières cellules en abscisse et ordonnées
j'ai par exemple un tableau avec en abscisse les 12 mois de l'année et en ordonnée les années depuis 2000 à 2008.
En fait si rentre en janvier 2007, une valeur, j'aimerais que la cellule janvier et la cellule 2007, change de couleur, pour repérer plus facilement ou je suis, et éviter les erreurs...
Pouvez vous m'aider ?
On a essayé avec un collègue pour surligner la ligne en couleur la ou se trouve le curseur, cela marche bien sauf que lorsque l'on sauvegarde le document, les couleurs restent... C'est donc un peu ce que j'aimerais faire mais avec juste la 1er cellule de la ligne mais aussi celle de la colonne.
voici le code employé pour la ligne complète sur 16 cellules :
Dim couleur(16) As Long
Dim i As Long
Dim lig As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If i = 0 Then
For i = 1 To 16
lig = ActiveCell.Row
couleur(i) = Cells(lig, i).Interior.Color
Cells(lig, i).Interior.Color = 300000
Next i
Else
For i = 1 To 16
Cells(lig, i).Interior.Color = couleur(i)
Next i
i = 0
For i = 1 To 16
lig = ActiveCell.Row
couleur(i) = Cells(lig, i).Interior.Color
Cells(lig, i).Interior.Color = 300000
Next i
End If
End Sub
Merci beaucoup
A voir également:
- Surligner la 1ere cellule en abscisse et ordo
- Proteger cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Réinitialiser chromecast 1ere génération - Guide
- Diviser une cellule excel en deux horizontalement ✓ - Forum Excel
- Abscisse et ordonnée - Forum Excel
9 réponses
Hello!
Avec ton tableau en A1:I13 (colonne A : mois de l'année, ligne 13 : de 2000 à 2007
Dim lig, col As Long
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
lig = ActiveCell.Row
col = ActiveCell.Column
Dim isect
If Selection.Count > 1 Then Exit Sub 'si selectionmultiple
Set isect = Application.Intersect(zz, ActiveSheet.Range("b1:i12"))
If isect Is Nothing Then
ActiveSheet.Range("a1:a12").Interior.Color = 40000
ActiveSheet.Range("b13:i13").Interior.Color = 40000
Else
ActiveSheet.Range("a1:a12").Interior.Color = 40000
ActiveSheet.Range("b13:i13").Interior.Color = 40000
Cells(13, col).Interior.Color = 2000
Cells(lig, 1).Interior.Color = 2000
End If
End Sub
Si tu cliques DANS le tableau, tes abscisses et ordonnées sont colorées, si tu cliques en dehors, tu remtes les abscisses et ordonnées à leur couleur d'origine... Et si tu sélectionnes plusieurs colonnes par erreur dans le tableau, il ne se passe rien...
Dis-moi si ça gaze!! (j'ai XL 2003, mais ça devrait marcher sur tout...
@+,
JF
Avec ton tableau en A1:I13 (colonne A : mois de l'année, ligne 13 : de 2000 à 2007
Dim lig, col As Long
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
lig = ActiveCell.Row
col = ActiveCell.Column
Dim isect
If Selection.Count > 1 Then Exit Sub 'si selectionmultiple
Set isect = Application.Intersect(zz, ActiveSheet.Range("b1:i12"))
If isect Is Nothing Then
ActiveSheet.Range("a1:a12").Interior.Color = 40000
ActiveSheet.Range("b13:i13").Interior.Color = 40000
Else
ActiveSheet.Range("a1:a12").Interior.Color = 40000
ActiveSheet.Range("b13:i13").Interior.Color = 40000
Cells(13, col).Interior.Color = 2000
Cells(lig, 1).Interior.Color = 2000
End If
End Sub
Si tu cliques DANS le tableau, tes abscisses et ordonnées sont colorées, si tu cliques en dehors, tu remtes les abscisses et ordonnées à leur couleur d'origine... Et si tu sélectionnes plusieurs colonnes par erreur dans le tableau, il ne se passe rien...
Dis-moi si ça gaze!! (j'ai XL 2003, mais ça devrait marcher sur tout...
@+,
JF
Utilise plutot ça (avec les ColorIndex au lieu de Color...)
Dim lig, col As Long
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
lig = ActiveCell.Row
col = ActiveCell.Column
Dim isect
If Selection.Count > 1 Then Exit Sub 'si selectionmultiple
Set isect = Application.Intersect(zz, ActiveSheet.Range("b1:i12"))
If isect Is Nothing Then
ActiveSheet.Range("a1:a12").Interior.ColorIndex = 2
ActiveSheet.Range("b13:i13").Interior.ColorIndex = 2
Else
ActiveSheet.Range("a1:a12").Interior.ColorIndex = 2
ActiveSheet.Range("b13:i13").Interior.ColorIndex = 2
Cells(13, col).Interior.Color = 2000
Cells(lig, 1).Interior.Color = 2000
End If
End Sub
Dim lig, col As Long
Private Sub Worksheet_SelectionChange(ByVal zz As Range)
lig = ActiveCell.Row
col = ActiveCell.Column
Dim isect
If Selection.Count > 1 Then Exit Sub 'si selectionmultiple
Set isect = Application.Intersect(zz, ActiveSheet.Range("b1:i12"))
If isect Is Nothing Then
ActiveSheet.Range("a1:a12").Interior.ColorIndex = 2
ActiveSheet.Range("b13:i13").Interior.ColorIndex = 2
Else
ActiveSheet.Range("a1:a12").Interior.ColorIndex = 2
ActiveSheet.Range("b13:i13").Interior.ColorIndex = 2
Cells(13, col).Interior.Color = 2000
Cells(lig, 1).Interior.Color = 2000
End If
End Sub
hello
Donc effectivement c'est super lorsque je clique en dehors de la plage, je n'ai plus de couleur... Idem si sélection de plus d'1 cellule ! Impec
par contre si la cellule du début de la ligne (la 1ere en partant de la gauche) est effectivement bien en couleur, pour la colonne c'est la cellule tout en bas mais pas la 1ère en partant du haut
donc si je clique sur la cellule E5, la cellule A5 est en rouge mais ce n'est pas la cellule E1 mais la cellule E13 qui est en rouge
Tu m'as déjà bien mâché le travail, je vais essayer de modifier pour l'adapter
Merci encore
Donc effectivement c'est super lorsque je clique en dehors de la plage, je n'ai plus de couleur... Idem si sélection de plus d'1 cellule ! Impec
par contre si la cellule du début de la ligne (la 1ere en partant de la gauche) est effectivement bien en couleur, pour la colonne c'est la cellule tout en bas mais pas la 1ère en partant du haut
donc si je clique sur la cellule E5, la cellule A5 est en rouge mais ce n'est pas la cellule E1 mais la cellule E13 qui est en rouge
Tu m'as déjà bien mâché le travail, je vais essayer de modifier pour l'adapter
Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nickel je venais de m'en apercevoir et je revenais pour en parler... je suis un peu long à la détente
Merci encore
c'est résolu
Merci encore
c'est résolu
ah zut dernier truc, il me laisse sélectionné la première cellule de chaque colonne une fois que je passe à une autre..
Il faut aussi que tu modifies les lignes
Activesheet.range("b13:i13") en remplaçant 13 par 1 (attention, 2 lignes à modifier...
Le principe du code est le suivant :
Si tu cliques en dehors (if isect is nothing), alors tu mets ta ligne et ta colonne de titre en blanc... Si tu cliques dedans, tu remets les mêmes lignes et colonnes en blanc, puis tu colories juste les cellules qui vont bien...
Dis-nous si ça marche... :-)
Activesheet.range("b13:i13") en remplaçant 13 par 1 (attention, 2 lignes à modifier...
Le principe du code est le suivant :
Si tu cliques en dehors (if isect is nothing), alors tu mets ta ligne et ta colonne de titre en blanc... Si tu cliques dedans, tu remets les mêmes lignes et colonnes en blanc, puis tu colories juste les cellules qui vont bien...
Dis-nous si ça marche... :-)