Rechercher : dans
Par :

Pbavec Worksheet_change(ByVal Target As range

Dernière réponse le 10 aoû 2007 à 22:32:20 Vins, le 10 aoû 2007 à 15:58:29 
 Signaler ce message aux modérateurs

Bonjour à tous,

Voilà ce que j'aimerais faire mais je bloque pour traduire le texte en gras en VBA....

Sub Worksheet_change(ByVal Target As range)

If Activecell appartient à une plage de cellules fixes Then MsgBox vbOKOnly

End Sub

Dans un second temps : est-il possible d'avoir une plage mobile du type (ligneI, colonneJ : ligneI2, colonneJ2)?

Merci d'avance

Meilleures réponses pour « Pbavec Worksheet_change(ByVal Target As range » dans :
[VBA] Détection de modification de cellule Voir Exemple pour une MFC avec plus de 3 conditions. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cel As Range For Each Cel In Target 'Adapter la/les plages. If Not Intersect(Cel, Range("B1:B30,D1:D30")) Is Nothing...

1

Lupin.A, le 10 aoû 2007 à 16:31:38

Bonjour,

Exemple :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Intersection As Range, Plage As Range

    Set Plage = Range("B5:C8")

    Set Intersection = Application.Intersect(Target, Plage)
    If Intersection Is Nothing Then
        MsgBox "La cellule visée n'est pas dans la plage !"
    Else
        MsgBox "La cellule visée est dans la plage !"
    End If

    Set Plage = Nothing
    Set Intersection = Nothing

End Sub
'

Lupin

Répondre à Lupin.A

2

Vins, le 10 aoû 2007 à 16:57:08

Merci ça avance, seulement ceci fonctionne quand je clique sur la cellule et non quand je modifie la valeur de celle-ci (c'est vrai je ne l'avais pas précisé avant, dsl).

Autrement dit, il faudrait que ce programme recalcule automatiquement et enregistre les anciennes valeurs (ce code sera mis après le then à la place de la msgbox) que lorsque je modifie une valeur de la plage de cellule. Alors qu'avec ce programme il agit quand je clique sur la cellule.

Vins

Répondre à Vins

3

Lupin.A, le 10 aoû 2007 à 17:23:12

Re :

Il s'agit simplement de changer d'évènement.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    
    Dim Intersection As Range, Plage As Range

    Set Plage = Range("B5:C8")

    Set Intersection = Application.Intersect(Target, Plage)
    If Intersection Is Nothing Then
        MsgBox "La cellule visée n'est pas dans la plage !"
    Else
        MsgBox "La cellule visée est dans la plage !"
    End If

End Sub
'

Lupin

Répondre à Lupin.A

4

 Vins, le 10 aoû 2007 à 22:32:20

Je ne connaissais pas cette histoire d'évennement.....! Encore beaucoup à apprendre!

Merci pour ton aide rapide et précise! Je pense pouvoir y arriver seul pour la suite.

Vins

Répondre à Vins
Collection CommentÇaMarche.net