Set Target sur 2 plages différentes situées sur des onglets différents
cs_miniboo
Messages postés14Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention10 août 2010
-
18 nov. 2009 à 12:43
cs_miniboo
Messages postés14Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention10 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:
Set Target sur 2 plages différentes situées sur des onglets différents
CTAC
Messages postés133Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 8 juin 20125 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))
cs_miniboo
Messages postés14Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention10 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?
CTAC
Messages postés133Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 8 juin 20125 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