Intersect Union
Fermé
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
-
8 janv. 2008 à 21:10
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 - 15 janv. 2008 à 06:31
lagodille Messages postés 99 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 6 mars 2008 - 15 janv. 2008 à 06:31
A voir également:
- Intersect Union
- Trait d'union insécable word - Guide
- L'union internationale des transports routiers - iru - Guide
- Supprimer compte western union ✓ - Forum Vos droits sur internet
- Supprimer historique western union - Forum Réseaux sociaux
- Pourquoi western union bloqué les gens ✓ - Forum Consommation & Internet
27 réponses
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
9 janv. 2008 à 17:46
9 janv. 2008 à 17:46
la transmission de pensées n'éxiste pas encore sous Windows. moi, j'ajouterais une macro pour colorié.
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
9 janv. 2008 à 18:25
9 janv. 2008 à 18:25
je travaille dans une banque c'est peut-être pour ça (sécurité et copagnie), pardon :(
phil232
Messages postés
607
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
31 janvier 2008
178
9 janv. 2008 à 18:32
9 janv. 2008 à 18:32
qq chose dont je me sers souvent c'est Tools --> Macro --> Record New Macro
peut-être tu verras qu'Excel utilise un autre range
peut-être tu verras qu'Excel utilise un autre range
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
9 janv. 2008 à 21:24
9 janv. 2008 à 21:24
merci pour ton immense aide mais editer des macros avec des conditions moi je ne sais pas faire.
De plus si je pose des questions c'est que j'ai quand meme au préalable cherché un peu.
Maintenant j'espérai que quelqu'un m'aide car je suis sur que pour un pro c'est du gateau
De plus si je pose des questions c'est que j'ai quand meme au préalable cherché un peu.
Maintenant j'espérai que quelqu'un m'aide car je suis sur que pour un pro c'est du gateau
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir lagodille
Tu changerais sans doute de couleur en modifiant quelque chose dans tes zones Mytargetmdp1 ou Mytargetmdp2, mais...
Tu as déjà fait un exit sub avant ! au niveau de la ligne If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then Exit Sub
Tu changerais sans doute de couleur en modifiant quelque chose dans tes zones Mytargetmdp1 ou Mytargetmdp2, mais...
Tu as déjà fait un exit sub avant ! au niveau de la ligne If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then Exit Sub
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
10 janv. 2008 à 00:15
10 janv. 2008 à 00:15
Je suis d'accord mais alors comment est il possible de mélanger les deux ?
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
10 janv. 2008 à 20:36
10 janv. 2008 à 20:36
bien sur que si et j'ai essayé plusieurs possibilités mais sans succès et visiblement ce n'est pas si facile que cela car personne ne m'a apporté encore la bonne solution
cordialement
cordialement
Il ne s'agit pas d'essayer plusieurs possibilités, la simple logique permet d'écrire directement la bonne. Il suffit d'un if-then-else
acuellement tu as :
dès que la condition 1 est remplie, le traitement 2 est sûr de ne jamais être exécuté
il suffit de faire
acuellement tu as :
if condition1 then exit sub traitement1 préparation traitement 2 if condition2 then traitement 2 end if
dès que la condition 1 est remplie, le traitement 2 est sûr de ne jamais être exécuté
il suffit de faire
if NOT condition1 then traitement1 else préparation traitement 2 if condition2 then traitement 2 end if endif
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
11 janv. 2008 à 07:43
11 janv. 2008 à 07:43
ca parait tellement simple pour toi !!!
bref je n'y arrive pas car je ne maitrise pas mes deux intersect
j'ai bien essaye ta soluce mais ca tourne au vinaigre, il y a toujours quelque chose qui cloche et je tourne en rond.
ca fait une semaine que je suis dessus et c'est rageant
bonne journée quand meme
bref je n'y arrive pas car je ne maitrise pas mes deux intersect
j'ai bien essaye ta soluce mais ca tourne au vinaigre, il y a toujours quelque chose qui cloche et je tourne en rond.
ca fait une semaine que je suis dessus et c'est rageant
bonne journée quand meme
Il ne s'agit pas de maîtriser les intersect ou tout ce qu'il y a dans les traitements. Ton problème n'est absolument pas à ce niveau.
Il s'agit seulement de comprendre comment le if then else endif détermine quelle partie du programme est ou n'est pas exécutée
Je viens d'essayer ma solution et elle marche.
Qu'est-ce qui selon toi cloche encore ? comment as-tu essayé de l'appliquer ? As-tu bien déterminé ce qui constituait le traitement 1, a préparation au traitement 2 et le traitement 2 ?
Il s'agit seulement de comprendre comment le if then else endif détermine quelle partie du programme est ou n'est pas exécutée
Je viens d'essayer ma solution et elle marche.
Qu'est-ce qui selon toi cloche encore ? comment as-tu essayé de l'appliquer ? As-tu bien déterminé ce qui constituait le traitement 1, a préparation au traitement 2 et le traitement 2 ?
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
11 janv. 2008 à 10:35
11 janv. 2008 à 10:35
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MytargetPart1 As Range
Dim MytargetPart2 As Range
Dim MyBigtarget As Range
Dim Mytargetmdp1 As Range
Dim Mytargetmdp2 As Range
Dim MyBigtargetmdp As Range
'If Not condition1 Then
' traitement1
'Else
' préparation traitement 2
' If condition2 Then
' traitement 2
' End If
'End If
Set MytargetPart1 = Union([I11], [I14], [I17], [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56], [I71], [I74], [I77], [I80], [I83], [I86], [I101], [I104], [I107], [I110], [I113], [I116])
Set MytargetPart2 = Union([I131], [I134], [I137], [I140], [I143], [I146], [I161], [I164], [I167], [I170], [I173], [I76], [I191], [I194], [I197], [I200], [I203], [I206])
'If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then Exit Sub
If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then 'Exit Sub
Set Mytargetmdp1 = Union([H11:H28], [H41:H58])
Set Mytargetmdp2 = Union([L11:L28], [L41:L58])
If Intersect(Target, Union(Mytargetmdp1, Mytargetmdp2)) Is Nothing Then Exit Sub
If Target.Offset(0, 0).Value <> "" Then If Target.Offset(0, 0).Value <> "" Then UserForm3.Show
Else
If Target.Offset(0, 0).Value = "X" Or Target.Offset(0, 0).Value = "x" Then Target.Offset(0, 0).Value = "X"
If Target.Offset(0, 0).Value = "X" Then
Target.Offset(0, -4).Resize(3, 4).ClearContents
Target.Offset(0, 1).Resize(3, 4).ClearContents
End If
End If
'End If
End Sub
Plus je me penche dessus moins je vois et si j''enlève le is nothing then c'est mon intersect qui ne fonctionne plus !
Dim MytargetPart1 As Range
Dim MytargetPart2 As Range
Dim MyBigtarget As Range
Dim Mytargetmdp1 As Range
Dim Mytargetmdp2 As Range
Dim MyBigtargetmdp As Range
'If Not condition1 Then
' traitement1
'Else
' préparation traitement 2
' If condition2 Then
' traitement 2
' End If
'End If
Set MytargetPart1 = Union([I11], [I14], [I17], [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56], [I71], [I74], [I77], [I80], [I83], [I86], [I101], [I104], [I107], [I110], [I113], [I116])
Set MytargetPart2 = Union([I131], [I134], [I137], [I140], [I143], [I146], [I161], [I164], [I167], [I170], [I173], [I76], [I191], [I194], [I197], [I200], [I203], [I206])
'If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then Exit Sub
If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then 'Exit Sub
Set Mytargetmdp1 = Union([H11:H28], [H41:H58])
Set Mytargetmdp2 = Union([L11:L28], [L41:L58])
If Intersect(Target, Union(Mytargetmdp1, Mytargetmdp2)) Is Nothing Then Exit Sub
If Target.Offset(0, 0).Value <> "" Then If Target.Offset(0, 0).Value <> "" Then UserForm3.Show
Else
If Target.Offset(0, 0).Value = "X" Or Target.Offset(0, 0).Value = "x" Then Target.Offset(0, 0).Value = "X"
If Target.Offset(0, 0).Value = "X" Then
Target.Offset(0, -4).Resize(3, 4).ClearContents
Target.Offset(0, 1).Resize(3, 4).ClearContents
End If
End If
'End If
End Sub
Plus je me penche dessus moins je vois et si j''enlève le is nothing then c'est mon intersect qui ne fonctionne plus !
ça a l'ai bien sauf que ...
Target.Offset(0, 0) te renvoie dans un certain nombre de cas un objet range qui fait plus d'une cellule. Dans ce cas, Target.Offset(0, 0).Value ne veut rien dire et provoqie une erreur.
Remplace systématiquement tous tes Target.Offset(0, 0).Value par Target.Cells(1, 1).Value (seulement ceux avec .value )
Remarque : Target.Offset(0, 0) veut dire la même chose que Target, ou alors explique moi la différence
Target.Offset(0, 0) te renvoie dans un certain nombre de cas un objet range qui fait plus d'une cellule. Dans ce cas, Target.Offset(0, 0).Value ne veut rien dire et provoqie une erreur.
Remplace systématiquement tous tes Target.Offset(0, 0).Value par Target.Cells(1, 1).Value (seulement ceux avec .value )
Remarque : Target.Offset(0, 0) veut dire la même chose que Target, ou alors explique moi la différence
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
11 janv. 2008 à 20:25
11 janv. 2008 à 20:25
Merci car enfin ca fonctionne . Je n'aurai jamais trouvé "Remplace systématiquement tous tes Target.Offset(0, 0).Value par Target.Cells(1, 1).Value " ne connaissant pas cette subtilité.
merci pour ton aide précieuse
j'ai une question subsidiaire :
tu as vu que j'utilisai un UserForm pour mon MDP seulement si le test MDP est mauvais, j'aimerai que le target.cells(1,1) retrouve sa valeur initiale c'est à dire "" et je ne sais pas faire
cordialement
merci pour ton aide précieuse
j'ai une question subsidiaire :
tu as vu que j'utilisai un UserForm pour mon MDP seulement si le test MDP est mauvais, j'aimerai que le target.cells(1,1) retrouve sa valeur initiale c'est à dire "" et je ne sais pas faire
cordialement
ne connaissant pas cette subtilité
Moi non plus je ne la connaissais pas. Mais quand VBA m'a dit qu'il ne voulait pas me donner la valeur (.value) d'un range, j'ai demandé dans la fenêtre debug les éléments du range, c'est à a dire target.column, target.row, target.colums.count et target.rows.count, pour vérifier sur quel range il était en train de travailler. Quand j'ai vu qu'il y avait plusieurs cellules, le reste devenait évident.
Question subsidiaire : tu parles de la ligne
If Target.Offset(0, 0).Value <> "" Then If Target.Offset(0, 0).Value <> "" Then UserForm3.Show
d'abord, tu testes 2 fois , je suppose que ça vient d'une recopie malheureuse
partons de
If Target.cells(1, 1).Value <> "" Then UserForm3.Show
pour effacer le contenu erroné, tu as juste à faire
If Target.cells(1, 1).Value <> "" Then
Target.cells(1, 1) = ""
UserForm3.Show
endif
Moi non plus je ne la connaissais pas. Mais quand VBA m'a dit qu'il ne voulait pas me donner la valeur (.value) d'un range, j'ai demandé dans la fenêtre debug les éléments du range, c'est à a dire target.column, target.row, target.colums.count et target.rows.count, pour vérifier sur quel range il était en train de travailler. Quand j'ai vu qu'il y avait plusieurs cellules, le reste devenait évident.
Question subsidiaire : tu parles de la ligne
If Target.Offset(0, 0).Value <> "" Then If Target.Offset(0, 0).Value <> "" Then UserForm3.Show
d'abord, tu testes 2 fois , je suppose que ça vient d'une recopie malheureuse
partons de
If Target.cells(1, 1).Value <> "" Then UserForm3.Show
pour effacer le contenu erroné, tu as juste à faire
If Target.cells(1, 1).Value <> "" Then
Target.cells(1, 1) = ""
UserForm3.Show
endif
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
12 janv. 2008 à 10:40
12 janv. 2008 à 10:40
Oui mais à la différence près que dans ce cas quelque soit l'issue du mot de passe bon ou mauvais il me fera un remise à "" de la cellule.
j'ai pensé :
dans le userform: si mauvais MDP alors call sub qui m'insere un 1 dans une cellule dans OP1
puis dans le code OP1 après appel du userform , si cellule = 1 alors cell . value =""
mais peut etre y a t il plus simple ?
pascal
j'ai pensé :
dans le userform: si mauvais MDP alors call sub qui m'insere un 1 dans une cellule dans OP1
puis dans le code OP1 après appel du userform , si cellule = 1 alors cell . value =""
mais peut etre y a t il plus simple ?
pascal
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
12 janv. 2008 à 11:07
12 janv. 2008 à 11:07
par rapport à mon post 18 , j'ai essayé ceci
If Target.Cells(1, 1).Value <> "" Then
UserForm3.Show
If Range("O1") = "1" Then Target.Cells(1, 1) = ""
End If
visiblement il ne retrouve pas mon target donc mauvaise soluce
If Target.Cells(1, 1).Value <> "" Then
UserForm3.Show
If Range("O1") = "1" Then Target.Cells(1, 1) = ""
End If
visiblement il ne retrouve pas mon target donc mauvaise soluce
Si Userform3 sert juste à saisir le mot de passe , tu n'en as pas besoin. Utilise la fonction inputbox
If Target.Cells(1, 1).Value <> "" Then
if inputbox("Entrez le mot de passe : ","MOT DE PASSE")<>"****" then
Target.Cells(1, 1) = ""
( ici peut-être exit sub, ça dépende de ce que tu veux faire...)
end if
End If
If Target.Cells(1, 1).Value <> "" Then
if inputbox("Entrez le mot de passe : ","MOT DE PASSE")<>"****" then
Target.Cells(1, 1) = ""
( ici peut-être exit sub, ça dépende de ce que tu veux faire...)
end if
End If
lagodille
Messages postés
99
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
6 mars 2008
4
12 janv. 2008 à 12:03
12 janv. 2008 à 12:03
merci pour l'info mais je desire garder mon userform (possibilité via un admin de modifier les accès).
mais peut etre que ce que je demande n'est pas possible avec un userform ?
mais peut etre que ce que je demande n'est pas possible avec un userform ?
Si, ça peut marcher avec un Userform, je viens de faire l'essai. Le problème n'est pas là, peut être que dans ta cellule O1 tu mets la valeur numérique 1 et non pas le texte "1". Il n'y a a priori aucune raison qu'il ne retrouve pas ton target, et s'il y en a une on doit pouvoir la comprendre. Peux-tu montrer le code intéressant de UserForm3 ?
Au passage, au lieu d'utiliser une cellule O1 (visible à l'écran) il vaut mieux utiliser une variable modifiée dans UserForm3 et testée dans Worksheet_Change.
Au passage, au lieu d'utiliser une cellule O1 (visible à l'écran) il vaut mieux utiliser une variable modifiée dans UserForm3 et testée dans Worksheet_Change.
9 janv. 2008 à 17:54
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MytargetPart1 As Range
Dim MytargetPart2 As Range
Dim MyBigtarget As Range
Dim Mytargetmdp1 As Range
Dim Mytargetmdp2 As Range
Dim MyBigtargetmdp As Range
Set MytargetPart1 = Union([I11], [I14], [I17], [I20], [I23], [I26], [I41], [I44], [I47], [I50], [I53], [I56], [I71], [I74], [I77], [I80], [I83], [I86], [I101], [I104], [I107], [I110], [I113], [I116])
Set MytargetPart2 = Union([I131], [I134], [I137], [I140], [I143], [I146], [I161], [I164], [I167], [I170], [I173], [I76], [I191], [I194], [I197], [I200], [I203], [I206])
If Intersect(Target, Union(MytargetPart1, MytargetPart2)) Is Nothing Then Exit Sub
If Target.Offset(0, 0).Value = "X" Or Target.Offset(0, 0).Value = "x" Then Target.Offset(0, 0).Value = "X"
If Target.Offset(0, 0).Value = "X" Then
Target.Offset(0, -4).Resize(3, 4).ClearContents
Target.Offset(0, 1).Resize(3, 4).ClearContents
End If
Set Mytargetmdp1 = Union([H11:H28], [H41:H58])
Set Mytargetmdp2 = Union([L11:L28], [L41:L58])
If Intersect(Target, Union(Mytargetmdp1, Mytargetmdp2)) Is Nothing Then Exit Sub
If Target.Offset(0, 0).Value <> "" Then Target.Offset(0, 0).Interior.ColorIndex = 3
End Sub
je colore bien avec "Interior.ColorIndex = 3" non ?
9 janv. 2008 à 18:08
d'abord dans ma procédure je colorie bien la case (voir le précedent post), ensuite mon problème réside surtout dans le fait que je n'arrive pas à concretiser cela :
Set Mytargetmdp1 = Union([H11:H28], [H41:H58])
Set Mytargetmdp2 = Union([L11:L28], [L41:L58])
If Intersect(Target, Union(Mytargetmdp1, Mytargetmdp2)) Is Nothing Then Exit Sub
If Target.Offset(0, 0).Value <> "" Then Target.Offset(0, 0).Interior.ColorIndex = 3
Si je l'esaye toute seule ca marche mais placé dans ma sub ca ne marche plus !
merci de m'éclairer