Problème de sélection de cellule en VBA

B

Bud.boundy

Guest
Bonjour,

J'ai adapté un fichier dans laquelle une macro s'applique pour le moment dans la colonne 4 et dans toutes les cellules après la ligne 13...
Le code est pour l'instant celui-ci :

If ActiveCell.Column = 4 And ActiveCell.Row > 12 Then...

J'aimerais simplement (pour des questions de commodités) que cela s'applique dans les colonnes 4 et 8 (soit colonne D et H) puis au niveau des lignes 13 à 17 et 25 à 30...

J'ai beau retourner ça dans tous les sens, je n'y arrive décidemment pas... Comment faire

Merci à vous
 
O

OnErrorResumeNext

Guest
bonjour bud.boundy,

regarde la macro suivante :

--------------------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("D13:D17, D24:D30, H13:H17, H24:H30")) Is Nothing Then
MsgBox "la cellule est OUT": Exit Sub
End If

' ta macro .....

End Sub
---------------------------------------------------------------------------

Cela te convient-il ?

amicalement
 
B

Bud.boundy

Guest
Rebonjour,

Cela ne marche toujours pas mais sans doute à cause de mon incompétence à utiliser votre code : voici l'ancien...

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
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

ET VOICI LE CHANGEMENT QUE J'AI ESSAYE D'EFFECTUER:

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 Then
If Intersect(Target, Range("D8:D16, D18:D26, H8:H16, H18:H26")) Is Nothing Then
LST = "Travaux"
Définir (LST)
End If
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 = 4 Then
If Intersect(Target, Range("D8:D16, D18:D26, H8:H16, H18:H26")) Is Nothing Then
Définir (Target)
End If
End If
End Sub

MERCI POUR VOTRE AIDE

Amicalement,
 
O

OnErrorResumeNext

Guest
Bud.Boundy,

j'ai un peu de mal à comprendre les conditions que tu veux réunir, essaye de me donner les plages qui seraient valides pour ta macro. Dans les codes que tu nous donnes, certaines conditions sont contradictoires (colonne 4 et H8:H16 ....)

amicalement
 
B

Bud.boundy

Guest
Re bonsoir,

Oui ca doit être cela. Je vais essayer. Merci
En fait, j'aurais préferer garder la colonne 4 et 8 (et non mettre C et D) puis garder les lignes données précédemment. Nommer la colonne n'est en fait pas très pratique
Désolé pour ce petit désagrement.

Merci

Bonsoir
 

Discussions similaires

Réponses
9
Affichages
244

Statistiques des forums

Discussions
312 839
Messages
2 092 700
Membres
105 511
dernier inscrit
karimdauphins