![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
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 |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
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 |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
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 |
| ANNONCES | |
| Liens sociaux |
| Outils de la discussion | |
|
|