Problème de sélection de cellule en VBA

  • Initiateur de la discussion Initiateur de la discussion Bud.boundy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
bonjour bud.boundy,

regarde la macro suivante :

--------------------------------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("D13😀17, D24😀30, 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
 
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😀16, D18😀26, 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😀16, D18😀26, H8:H16, H18:H26")) Is Nothing Then
Définir (Target)
End If
End If
End Sub

MERCI POUR VOTRE AIDE

Amicalement,
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
650
Retour