Problème de sélection de cellules

B

Bud.boundy

Guest
Bonjour,

Après avoir déjà posé le problème hier, je suis toujours dans l'impasse sans doute à cause de mon incompétence à retranscrire les informations qui ont été transmises. DONC JE RECOMMENCE DEPUIS LE DEBUT :

Avec les 2 formules ci-dessous, ma macro s'appilque dans la colonne 4 et dans toutes les cellules suivant la ligne 13.
COMMENT FAIRE POUR QUE CETTE MACRO S'APPLIQUE DANS LES COLONNES 4, 8 et 12 PUIS AU NIVEAU DES LIGNES 12 à 16 puis 20 à 24 et enfin sur les lignes 30 à 34 ? MERCI

Voici le code existant que je n'arrive pas à transformer :

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Activé au changement de sélection de cellule seulement en colonne 1 et 2 et en dessous de la ligne 13
Dim LST As String
If ActiveCell.Column = 4 And ActiveCell.Row > 13 Then
LST = "Travaux"
Définir (LST)
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
' Activé au changement de sélection dans la liste déroulante en colonne 2 et en dessous de le ligne 13
If ActiveCell.Column = 2 And ActiveCell.Row > 13 Then Définir (Target)
End Sub
 
Z

Zon

Guest
Salut,

Un select case devrait faire l'affaire :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Activé au changement de sélection de cellule seulement en colonne 1 et 2 et en dessous de la ligne 13
with target
if .cells.count >1 then exit sub 'plusieurs cellules selectionnées
select case .column
case 4,8,12
select case .row
case 12 to 16,20 to 24,30 to 34 :definir("travaux")
end select
end select
end with
End Sub

A+++

ps: il vaut mieux eviter les accents dans le nom de procédures
 
J

jyM

Guest
salut bud,

je propose
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' Activé au changement de sélection de cellule seulement en colonne 1 et 2 et en dessous de la ligne 13
>Dim LST As String
>If ActiveCell.Column = 4 And ActiveCell.Row > 13 Then
>LST = "Travaux"
>Définir (LST)
elseif ActiveCell.Column = 8 And ActiveCell.Row > 13 Then
gnagna
elseif ActiveCell.Column = 12 And ActiveCell.Row > 13 Then
gnagna
>End If
>End Sub

sinon peut-être avec "select case"
sur le couple de valeur Colonne Ligne ...

j'espère t'avoir dépanné

jyM
 

Statistiques des forums

Discussions
314 656
Messages
2 111 610
Membres
111 224
dernier inscrit
Test66