Méthode Intersect

Salut tout le monde,

J'ai utilisé une astuce proposée par Myta sur le forum pour faire apparaitre un userfom quand on clique dans une colonne.

Voici le code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
'quand selection d'une cellule située entre E2 et E65536 alors ouvrir le userform1
    If Not Application.Intersect(Target, Range("E2:E65536")) Is Nothing Then
        Load UserForm1
            UserForm1.Show
    End If

End Sub

Cependant, comme cette application ne sera pas pour moi, il me faut une gestion de l'erreur suivante:

Quand on sélectionne plusieurs cellules comprises dans la zone E2:E65536, l'usf apparait mais impossible de valider les choix, cela plante la macro....

quelle instruction faudrait il insérer:

soit pour que l'usf ne s'ouvre pas quand plusieurs cellules sont selectionnées

soit pour que les options choisies par l'opérateur s'appliquent à toutes les cellules?

Si vous n'avez pas réussi à me répondre d'ici là sans fichier, je vous en enverrai ce soir, mon ordi plante avec la page joindre un fichier... je sais pas pourquoi....

A+

Souri84

Bonjour Souri84,

Essayes avec

If Target.Cells.Count = 1 And Not Application....

Salut Sylvain,

Merci pour ta réponse qui m'a mis sur la piste...

En fait quand je faisais ce que tu m'as préconisé, cela me changeait la ligne en

If target.cells.count is nothing then....... et c tout.... donc j'ai un petit peu adapté....

Voici le code final qui permet de ne pas ouvrir l'usf quand plusieurs cellules sont selectionnées

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
'quand selection d'une cellule située entre E2 et E65536 alors ouvrir le userform1
    If Target.Cells.Count = 1 Then
    If Not Application.Intersect(Target, Range("E2:E65536")) Is Nothing Then
        Load UserForm1
            UserForm1.Show
    End If
    Else
    Exit Sub
    End If
End Sub

Si vous trouvez plus court, je suis naturellement preneur....

Souri84

Ben pour moi celle là doit marcher :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
'quand selection d'une cellule située entre E2 et E65536 alors ouvrir le userform1
    If Target.Cells.Count = 1 And Not Application.Intersect(Target, Range("E2:E65536")) Is Nothing Then
        Load UserForm1
            UserForm1.Show
    End If
End Sub

tu as raison, elle fonctionne... j'ai du faire plusieurs fois la même mauvaise manipulation..... merci encore....

Rechercher des sujets similaires à "methode intersect"