Workbook_SheetChange et Target.Row

Résolu
tedtheOrs
Messages postés
37
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
27 janvier 2010
- 15 juil. 2008 à 15:26
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
- 15 juil. 2008 à 18:55
Bonjour,


J'utilise Workbook_SheetChange pour detecter les changements de cellule pour la colonne K (11ème colonne), selon:

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :
PrivateSub Workbook_SheetChange(ByVal Sh AsObject, ByVal Target As Range)
 
If Target.Row > 3And Target.Row < 1500And Target.Column = 11Then
SelectCase(Sh.Name)
Case"PCL": PCLDate Target
EndSelect
EndIf

<!-- END TEMPLATE: bbcode_code -->Comment récupérer la ligne de la cellule modifié (qui correspond à Target.Row) afin de s'en reservir dans PCLDate!

J'ai essayer de définir une variable pour y copier la valeur de Target.Row, mais rien n'y fait!


D'avance merci


@+


ted

7 réponses

mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
15 juil. 2008 à 15:32
salut,

tu peux essayer un truc comme ceci :
Select CaseSh.Name
Case "PCL"
Sheets("PCLDate").Range("A" & Target.Row).Value = "blabla"
End Select

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
tedtheOrs
Messages postés
37
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
27 janvier 2010

15 juil. 2008 à 15:35
Ok merci..
mais euh y a quoi à la place du "blabla"?
3
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
15 juil. 2008 à 15:38
bah je sais pas, c'est ton dev
C'est à toi de voir ce que tu veux mettre dans tes cellules

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
tedtheOrs
Messages postés
37
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
27 janvier 2010

15 juil. 2008 à 15:55
Ah ok, je crois que j'ai compris...:D
Ton code fait que si la ligne 8 est modifié, alors on valorise A8 avec blabla
Moi c'est pas du tout ce que je veux...Je veux juste récuperer le "8", pour m'en servir dans une procédure (PCLDate) appellée (via une variable)!
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
15 juil. 2008 à 16:12
Alors dans les délcarations (au dessus de toutes tes procédures et évènements), place un
Public MaLigne As Integer

Puis, dans le code de tout à l'heure :

Select CaseSh.Name
Case "PCL"
MaLigne = Target.Row
End Select

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
tedtheOrs
Messages postés
37
Date d'inscription
samedi 12 avril 2008
Statut
Membre
Dernière intervention
27 janvier 2010

15 juil. 2008 à 16:26
Yes! Merci Mortalino

En fait, j'ai fait:
If Target.Row > 3 And Target.Row < 1500 And Target.Column = 11 Then
    PCLLigne = Target.Row
    Select Case (Sh.Name)
        Case "PCL de chaines": PCLDate Target
    End Select
End If

Et ca marche du tonnerre de zeus!
Donc si j'ai bien compris, les variables déclarés en "Public" seront repris à travers toute les procédures (Sub[...]End-Sub) du projet?
3
mortalino
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
15 juil. 2008 à 18:55
re,

oui, c'est bien ça, si c'est Public, la variable sera accessible dans toutes les procédures de tous tes modules (modules de feuilles, Userform, Module / module de classe.
En Private (et toujours dans les déclarations), elle sera accessible par toutes les procédures, mais seulement au niveau module

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0