[VBA] Méthode If Not Application.Intersect

Bonjour le forum

Je but sur cette méthode.

j'ai parcouru sur le forum et web sans trouvé de réponse a mon problème.

j'utilise ce code dans thisWorkbook , car j'ai plusieurs feuilles avec des plages de cellule différentes, mais toujours depuis la même colonne ("G2")

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("G2:G10")) Is Nothing Then
Cancel = True
Frm_DcripIncid.Show
End If
End Sub

Le problème est que si la dernière cellule et ("G50"), cela ne fonctionne pas

j'ai regardé la méthode avec L'instruction: set plage , mais je pense que cela n'est pas possible, enfin je n'ai pas réussi à la mettre en place.

Avez-vous une solution ?

Merci de votre aide et

Bonne journée à tous

Bonjour LedZep

Si tout se passe dans la colonne G pour moi, il suffit de faire

If Not Intersect(Target, Range("G:G")) Is Nothing Then

A+

Re le forum

J'ai trouvé , oui en validant ma demande , j'ai eu une idée que j'ai essayé .

'PROCEDURE OUVERTURE Frm_MainCur & Frm_DcripIncid

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

' on vérifie que la modification de la valeur est bien dans la sixiéme colonne du premier tableau structuré de la feuille Sh
    If Not Intersect(Target, Sh.ListObjects(1).DataBodyRange.Columns(6)) Is Nothing And Sh.Index > 2 Then
        Frm_MainCur.Show
        Cancel = True
    End If

' on vérifie que la modification de la valeur est bien dans la quatrième colonne du premier tableau structuré de la feuille Sh
    If Not Intersect(Target, Sh.ListObjects(1).DataBodyRange.Columns(4)) Is Nothing And Sh.Index > 2 Then
        Frm_DcripIncid.Show
        Cancel = True
    End If

End Sub

J'ai utilisé une partie d'un code de LouReed .

Cela fonctionne , mais j'aimerais que les 2 premières feuille ne soit pas concernées en fait feuille "DATA" et "AMINISTRATEUR"

Pourtant

 If Not Intersect(Target, Sh.ListObjects(1).DataBodyRange.Columns(6)) Is Nothing And Sh.Index > 2 Then

sh.Index>2 est bien le but ?

Merci de votre aide

Bonne journée à tous

Re le forum

Bonjour BrunoM45

Oui j'avais essayé cette méthode, je l'ai trouvé sur le forum avec plusieurs exemples traitants de la façon de la mettre en œuvre.

Mais cela n'a pas fonctionné dans le ThisWorkbook, par contre dans la feuille oui.

Merci de m'avoir répondu

Bonne journée

Bonjour,

Tu n'as pas le droit de changer les intitulés des macros prédéfinies à ta guise : Tu dois utiliser ceux que tu trouves dans le combo de droite de ThisWorkbook

Si tu utilises ce code dans ThisWorkbook l'en-tête doit être :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

ou

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

après le problème est de définirsi tu est dans une feuille valide (oupa !)

Une première approche serait de faire un premier test d'exclusion :

If Not (Sh.Name = "DATA" or Sh.Name ="ADMIN") Then

Ne pas utiliser index qui est source d'erreurs...

Si le test est vrai alors tu peux tester Intersect...

A+

EDIT: Après je ne vois pas ce que viens faire G50 dans ta salade... et sans fichier...

Bonjour le forum ,galopin01

J'ai pris note de tes remarques, merci cela va me permettre de progresser.

EDIT: Après je ne vois pas ce que viens faire G50 dans ta salade... et sans fichier...

C'est difficile d'être juste dans la rédaction d'un post, désolé

Pour le fichier, voici le lien, car j'avais posté une autre demande.

Je vais essayer de mettre en place tes recommandations sur mon projet

Bonne journée à tous

Bonsoir,

La colonne G n'est pas la sixième colonne mais la septième !

Heu.. bon, j'ai pas fouillé plus loin car je ne sais pas vraiment de quoi il est question.

A+

re galopin

Si j'ai bien compris

 If Not Intersect(Target, Sh.ListObjects(1).DataBodyRange.Columns(6)) Is Nothing Then

Avec ce code je dirais que oui puisque

Sh.ListObjects(1).DataBodyRange

Je vérifie le reste ce week-end.

Bonne fin de journée

T'es sur une autre planète ou quoi ?

Je viens de te dire que la colonne G est la colonne 7 et tu me ressort de la

.Columns(6)

Qu'est-ce que tu fumes ?

mdr3
Rechercher des sujets similaires à "vba methode application intersect"