VBA - Sélection et mise en forme

Bonjour, je vous explique mon problème :

J'ai déjà réalisé une macro me permettant de faire un double clic sur une cellules et de sélectionner un ensemble de cellule.

Jusque la tout vas bien, mais ensuite je souhaiterais ajouter à ce déclencheur une analyse de chacune des cellules et dans le cas ou la cellule est vide réinitialiser la couleur de fond

Dim cellules As Range

If Not Intersect(Target, Range("a1:p100")) Is Nothing And Target.Row Mod 14 = 5 Then
If Not Intersect(Target, Range("a1:p100")) Is Nothing And Target.Column Mod 3 = 1 Then
Range(ActiveCell.Offset(10, 2), ActiveCell.Offset(0, 0)).Select
For Each cellules In Selection
    With cellules
        If IsEmpty(Selection) Then
        .Interior.ColorIndex = xlColorIndexNone
        Else
        End If
        End With
        Next cellules

    End If
    End If

Bonjour,

Comme ceci:

    Dim cellules As Range
    If Not Intersect(Target, Range("a1:p100")) Is Nothing And Target.Row Mod 14 = 5 Then
        If Not Intersect(Target, Range("a1:p100")) Is Nothing And Target.Column Mod 3 = 1 Then
            Range(Target.Address, Target.Offset(10, 2)).Select
            For Each cellules In Selection
                With cellules
                    If cellules = "" Then
                        .Interior.ColorIndex = xlColorIndexNone
                    Else

                    End If
                End With
            Next cellules
        End If
    End If

mais cela peut se réduire plus simplement:

    If Not Intersect(Target, Range("a1:p100")) Is Nothing And Target.Row Mod 14 = 5 Then
        If Not Intersect(Target, Range("a1:p100")) Is Nothing And Target.Column Mod 3 = 1 Then
            Range(Target.Address, Target.Offset(10, 2)).Interior.ColorIndex = xlNone
        End If
    End If

Cdlt

Ah oui d'accord ! C'est si facile pour toi...

Merci beaucoup en tout cas !

Par la même occasion j'ai un autre problème : J'ai crée des mises en forme conditionnel en VBA (je sais pas si on peu appeler ça de la sorte) donc lorsqu'une de mes cases devient "OK" on passe au bleu, "PAS OK" on passe au rouge. Pour l'instant tout vas bien car je fais une Target.value. et que je change la valeur d'une case par une case.

Mais lorsque je souhaite faire de même avec le cas ou If Target.value = ("") ou If IsEmpty(Target.Value) le code fonctionne si je viens dans la case en question pour supprimer la valeur. Mais lorsque je souhaite prendre 2 cases et faire SUPP (donc ma case D8 et D9) je reçois un code "erreur d'exécution 13 incompatibilité de type"

Pour information mon déclencheur est Worksheet_Change.

Merci d'avance pour ta réponse.

  If Target.Row Mod 14 = 9 Or Target.Row Mod 14 = 8 Then

  If Target.Column Mod 3 = 1 Then
  'If Target.Value = ("") Then
  If IsEmpty(Target.Value) Then

 Target.Interior.ColorIndex = xlColorIndexNone

 End If
 End If
 End If

Les MFC excel sont faites pour ça, le VBA n'est pas nécessaire, il vaut mieux travailler avec les fonctions natives d'excel plutôt que de bricoler quelque chose.

Sinon essayez ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Sortie
    Application.EnableEvents = False
    If Target.Row Mod 14 = 9 Or Target.Row Mod 14 = 8 And Target.Column Mod 3 = 1 Then
        Plage = Selection.Address
        For Each cell In Range(Plage)
            If cell <> "" Then Exit Sub
        Next cell
        Range(Plage).Interior.ColorIndex = xlNone
    End If
Sortie:
    Application.EnableEvents = True
End Sub
Cdlt

Salut, re merci pour ta réponse.

Mais je n'étais trompé de post pour cette question.

Du coup j'ai essayé modifié mon message...

Et concernant les MFC je ne mes utilises pas car mon fichier est un planning et grande majorité de mes collègues font des copiées collées partout. Ce qui ne fonctionne pas super avec les MFC...

Merci d'avance

Mon nouveau problème est le suivant sur la première macro que tu m'as corrigé j'ai bien pris note de mon erreur.

Néanmoins il y a une partie que je n'arrive pas à élucider, ma macro est composé de 2 parties la première servant à sélectionner un ensemble de case ma seconde pour analyser. Chose que j'ai oublié de mentionner c'est que mon analyse sert après suppression des cellules sélectionné.

Car la je fais mon double clic mes cases sont sélectionnées je fais SUPPR pour "nettoyer" mon ensemble de cellule, mais le problème c'est que la macro est déjà fini donc elle ne remet pas les couleurs à jour. Je suis obligé de redouble cliquer sur ma cellule pour faire le "nettoyage".

Donc j'aurais voulu savoir si il était possible de faire en sorte que dans ma macro la seconde partie ce s'exécute uniquement après l'appuie sur la touche SUPPR ?

Merci beaucoup pour ta réactivité en tout cas.

Mais, la dernière proposition fonctionne-t-elle?

Je l'ai essayé elle me supprime l'erreur mais elle me désactive aussi les Events sans les réactiver.

Donc je l'ai supprimé. Je vais simplement informer mes collègues qu'il n'est pas possible de supprimer plusieurs cellules en même temps.

Rechercher des sujets similaires à "vba selection mise forme"