Macro ???

Bonjour, est-ce possible de créer une macro pour mon tableau :

je veux que quand je sélectionne la cellule B5, il colorie en rouge la ligne de A5 à O5

qu’il supprime le contenu de de D5 à L5 et qu’il inscrive un X en en D5

cette macro doit fonctionner sur le tableau complet j’ai plusieurs lignes

excel2003

merci et bonne journée

Bonjour David,

Un code à placer dans l'onglet de ta feuille.

Pour cela tu fais un clic droit sur l'onglet de la feuille dans le classeur excel, et "Visualiser le code"

==> Une fenêtre blanche s'ouvre dans VBE, tu y colles le code, et tu fais des tests pour vérifier si ça te convient

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x As Byte
x = Target.Row
If Not Intersect(Target, Range("B2:B" & Range("B1").End(xlDown).Row)) Is Nothing Then
Range(Cells(x, 1), Cells(x, 15)).Interior.ColorIndex = 3
Range(Cells(x, 4), Cells(x, 12)).ClearContents
Cells(x, 4).Value = "X"
End If
End Sub

Re,

David, essaye de ne pas trop te disperser...

2 sujets + 1 message privé, c'est beaucoup trop

La bonne méthode, c'est quand tu es dans le topic, tu cliques sur le bouton "Répondre", et on continue tous au même endroit.

David a écrit :

j'ai oublié de dire que apres avoir sélectionné la cellule B5

je clique sur un bouton

il colorie en rouge la ligne de A5 à O5

qu’il supprime le contenu de de D5 à L5 et qu’il inscrive un X en en D5

c'est un tableau de presence

cet exemple n'est que la premiere position

merci

a+

Pas très clair tout ça , peut-être en joignant le fichier ?

Un essai tout de même :

Private Sub CommandButton1_Click()
If Not Intersect(ActiveCell, Range("B5:B" & Range("B1").End(xlDown).Row)) Is Nothing Then
Dim x As Byte
x = ActiveCell.Row
Range(Cells(x, 1), Cells(x, 15)).Interior.ColorIndex = 3
Range(Cells(x, 4), Cells(x, 12)).ClearContents
Cells(x, 4).Value = "X"
End If
End Sub

Si c'est ça je ne vois pas trop l'utilité du bouton...

On pourrait plutôt exécuter le code au changement de valeur en colonne B

A te relire, (sur ce topic )

je vous joins mon fichier pour plus de clartée

merci d'avance

https://www.excel-pratique.com/~files/doc/essai_spa_avec_que_macro.zip

Effectivement on comprend ainsi l'utilité du bouton...

Nouvelle proposition donc :

Sub present()
If Not Intersect(ActiveCell, Range("B5:B" & Range("A65536").End(xlUp).Row)) Is Nothing Then
Dim x As Byte
x = ActiveCell.Row
Range(Cells(x, 1), Cells(x, 15)).Interior.ColorIndex = 3
Range(Cells(x, 4), Cells(x, 12)).ClearContents
Cells(x, 4).Value = "X"
End If
End Sub

Pour la placer :

  • sous excel : Alt+F11 ==> ouvre VBE
  • sous VBE : Insertion/Module ==> coller le code dans la fenêtre blanache qui vient d'apparaître
  • sous excel : clic droit sur ton bouton "présent" ; "Affecter une macro" ; choisir la macro "present"

Attention : pour que ça marche sur tout ton tableau, les "grades" doivent être renseignés

Merci pour le code

maintenant je vais continuer avec les autres positions et des autres couleurs

merci beaucoup à tout le monde

Rechercher des sujets similaires à "macro"