Set Target sur 2 plages différentes situées sur des onglets différents

cs_miniboo Messages postés 14 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 10 août 2010 - 18 nov. 2009 à 12:43
cs_miniboo Messages postés 14 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 10 août 2010 - 29 nov. 2009 à 15:30
Bonjour,

J'ai un problème concernant la déclaration d'une Target. En fait, j'ai un userform qui s'affiche lorsque l'on choisit "Autres" dans un menu déroulant qui existe sur deux onglets différents.
Aucun problème jusque la, que je choisisse "Autres" dans l'onglet EVENT ou dans l'onglet "OTHER DISS ACTIVITIES", le userform s'affiche bien et me permet de rentrer une nouvelle donnée qui agrémente ma liste source du menu déroulant. Je souhaiterais que la nouvelle donnée entrée dans le userform aille remplacer le "Autres" qui a été sélectionné et qui a déclenché le userform. Pour cela j'ai créé la macro suivante:


Sub remplacerautres()
Dim Target, cell As Range
Dim j, m As String
j = "Autres"
m = UserForm1.TextBox2.Value
Set Target = Sheets("EVENT").Range(Range("L:L"), Range("L65536").End(xlUp))
For Each cell In Target
If cell.Value j Then cell.Value m
Next cell
End Sub

(cette macro fait partie du code de mon userform sous "Private Sub TextBox2_AfterUpdate()")

Ca marche très bien lorsque je suis dans l'onglet EVENT, mais évidemment j'ai une erreur quand je la lance depuis l'autre onglet, car il n'est pas déclaré dans Target.
Est-il possible de déclarer une autre plage dans target avec un "And" ou alors de déclarer 2 targets différentes?

Merci d'avance beaucoup pour votre aide, j'espère que vous pourrez m'aider.

Miniboo
A voir également:

4 réponses

CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 5
18 nov. 2009 à 18:50
Bonjour,

Remplacer
Set Target = Sheets("EVENT").Range(Range("L:L"), Range("L65536").End(xlUp))
par
Set Target = ActiveSheet.Range(Range("L:L"), Range("L65536").End(xlUp))

ctac
0
cs_miniboo Messages postés 14 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 10 août 2010
18 nov. 2009 à 19:16
Bonjour ctac,

Merci pour ta réponse. Oui c'est une bonne idée! mais le problème est que la plage de référence "L:L" sur le premier onglet, n'est pas la même que sur l'autre onglet (qui fait référence à la colonne F)!

c'est pour ca que dans l'idéal le mieux serait:

Set Target = Sheets("EVENT").Range(Range("L:L"), Range("L65536").End(xlUp)) And Sheets("PRODUCT").Range(Range("F:F"), Range("F65536").End(xlUp))

mais ca le fait pas...!
ou alors je peux mettre ("F:L")...mais comment appliquer le End(xlUp) du coup?

Merci encore!
0
CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 5
19 nov. 2009 à 18:04
Bonjour,

Dim Plg As String
With ActiveSheet
Select Case .Name
Case Is = "EVENT"
Plg = "L65536"
Case Is = "PRODUCT"
Plg = "F65536"
End Select
Set target = .Range(Range(Plg).EntireColumn, Range(Plg).End(xlUp))
End With

mais je ne suis pas sur que ça fonctionne bien

Set target = .Range(Plg).EntireColumn

a le même effet

ctac
0
cs_miniboo Messages postés 14 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 10 août 2010
29 nov. 2009 à 15:30
Génial!! Merci Ctac!! Ca marche super!
Merci encore d'avoir débloqué ma situation!

Miniboo
0
Rejoignez-nous