Action en fonction de l'emplacement dans la feuille

Résolu/Fermé
Farceur01 Messages postés 17 Date d'inscription vendredi 2 février 2018 Statut Membre Dernière intervention 28 novembre 2022 - 27 nov. 2022 à 17:39
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 - 28 nov. 2022 à 12:09

Bonjour,

Dans une feuille je veux lors d'un événement "changement de sélection" colorier la cellule activée et mette son contenu dans une autre cellule (A1) et seulement si la cellule est comprise dans la plage MaPlage1 (A4:C36) et effectuer un autre traitement si elle est dans la plage MaPlage2 (E4:G36)

En algorithme on pourrait écrire :

Si la cellule sélectionnée est dans la plage MaPlage1

       Faire : colorier la cellule sélectionnée et écrire son contenu dans A1

Si la cellule sélectionnée est dans la plage MaPlage2

       Faire "autre traitement"

Facile à écrire mais en VBA je n'y arrive pas ; j'arrive sans problème à effectuer des actions lors des changements dans ma feuille mais pas ceux-là !!!!

Merci d'avance

0
Windows / Firefox 107.0

A voir également:

3 réponses

yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
27 nov. 2022 à 18:23

bonjour,

Sur quoi butes-tu? Qu'as-tu essayé? Un exemple:

Private Sub Worksheet_SelectionChange(ByVal CelSel As Range) 
If not Application.Intersect(CelSel, Range("MaPlage1")) Is Nothing Then
    ' ...
elseif not Application.Intersect(CelSel, Range("MaPlage2")) Is Nothing Then
    ' ...
end if
End Sub
0
Farceur01 Messages postés 17 Date d'inscription vendredi 2 février 2018 Statut Membre Dernière intervention 28 novembre 2022 19
28 nov. 2022 à 09:56

Merci j'ai réglé mon problème : je découvre VBA et je ne connaissais pas la méthode Intersect,

C'est grâce à l'aide de personnes comme toi sur les forums que progresse doucement

Merci

0
Farceur01 Messages postés 17 Date d'inscription vendredi 2 février 2018 Statut Membre Dernière intervention 28 novembre 2022 19
28 nov. 2022 à 10:13

J'ai maintenant un autre problème : lorsque je click dans la zone tout se passe bien, les couleurs changent les traitements complémentaires fonctionnent, mais si par erreur au lieu de sélectionner une cellule j'en sélectionne plusieurs j'aimerais faire un traitement d'erreur en créant une boîte de dialogue : pour l'instant mon programme attend une seule valeur et part en débogage si je sélectionne plusieurs cellules

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
Modifié le 28 nov. 2022 à 12:09

par exemple 

Private Sub Worksheet_SelectionChange(ByVal CelSel As Range) 
if CelSel.count = 1 then
    If not Application.Intersect(CelSel, Range("MaPlage1")) Is Nothing Then
        ' ...
    elseif not Application.Intersect(CelSel, Range("MaPlage2")) Is Nothing Then
        ' ...
    end if
end if
End Sub
0