Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Suppression sur autre feuil par repere

18 réponses
Avatar
Manu
Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en colonne A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde si sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1 et si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu

8 réponses

1 2
Avatar
MichD
Ta demande initiale était à l'effet que la ligne devait disparaître à la suite
d'une modification de la valeur d'une cellule dans la colonne J:J , par conséquent
la cellule active était une cellule de la colonne J:J qui venait de subir une modification.
Si ta sélection n'est pas une cellule de la colonne J:J , rien ne se passe. La vérification de
la suppression de la ligne se fait à partir de la ligne de la cellule active de la feuil2. Ceci était
tes exigences. La macro liée au bouton de commande respecte ces mêmes exigences...

Tu dois d'abord choisir les cellules de la colonne J:J dont tu veux que la macro vérifie
la présence de la valeur de la colonne A de la feuil2 avec la présence de cette même valeur
dans la colonne A de la feuil1.


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : 4e19d708$0$18817$

En faîte, c'est tres bizarre Mich, apres plusieurs essais, il s'avere que ca
fonctionne parfois, je crois savoir pourquoi, il faut lorsque je rempli la
case d'une cellule de la col J, il faut que je reclic dans cette case pour
que ca fonctionne, si je clic ailleurs, case ou pas case remplie, ca ne
fonctionne pas. Peux tu verifier si c'est bien cela.

Merci

Manu


"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range) Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu











Avatar
MichD
Pour que la case à cocher n'aie pas de texte, tu modifies cette ligne de code de la procédure

.Caption = Rg.Value

Par

.Caption = ""

Ce code est dans le module de la feuille où l'action se déroule.
'--------------------------------
Sub Ajout_Checkbox(Rg As Range)
On Error Resume Next
With Worksheets(Rg.Parent.Name)
If Rg <> "" Then
With .CheckBoxes.Add(Rg.Offset(, -1).Left, _
Rg.Offset(, -1).Top, Rg.Offset(, -1).Width, _
Rg.Offset(, -1).Height)
.LinkedCell = Rg.Offset(, -2).Address
.Caption = ""
.Name = "CB" & Rg.Address(0, 0)
End With
Else
Nom = "CB" & Rg.Address(0, 0)
Me.Shapes("CB" & Rg.Address(0, 0)).Delete
End If
End With

End Sub

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range

Set Rg = Intersect(Target, Range("C3,C5,C8"))
If Not Rg Is Nothing Then
For Each C In Rg
Ajout_Checkbox C
Next
End If
End Sub
'--------------------------------


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : 4e19d41c$0$30777$

Merci Mich, c'est nickel pour les formulaires, sans abuser, j'aurais preferé
sans texte dans la case à cocher.
En revanche, ca ne fonctionne toujours pas pour la suppression de ligne, est
ce parce que je suis sur 2007 ?

Merci

Manu

"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range) Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu











Avatar
Manu
Tu as raison, mais ma demande initiale n'a pas changé. Je me suis mal fais
comprendre, je saisi bien dans la colonne J, je te donne un exemple, si je
tape en J1 quelque chose et qu'apres je fasse entrée, j'arrive donc en J2 et
lorsque je clic sur le bouton, il me supprime la ref en face de J2 et non de
J1 où j'avais initialement tapé.
En faite, il ne tiens pas compte de ma frappe, mais dans quelle cellules je
suis. Suis je plus clair ?

Merci

Manu

"MichD" a écrit dans le message de news:
ivcm0d$vli$
Ta demande initiale était à l'effet que la ligne devait disparaître à la
suite
d'une modification de la valeur d'une cellule dans la colonne J:J , par
conséquent
la cellule active était une cellule de la colonne J:J qui venait de subir
une modification.
Si ta sélection n'est pas une cellule de la colonne J:J , rien ne se
passe. La vérification de
la suppression de la ligne se fait à partir de la ligne de la cellule
active de la feuil2. Ceci était
tes exigences. La macro liée au bouton de commande respecte ces mêmes
exigences...

Tu dois d'abord choisir les cellules de la colonne J:J dont tu veux que la
macro vérifie
la présence de la valeur de la colonne A de la feuil2 avec la présence de
cette même valeur
dans la colonne A de la feuil1.


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19d708$0$18817$

En faîte, c'est tres bizarre Mich, apres plusieurs essais, il s'avere que
ca
fonctionne parfois, je crois savoir pourquoi, il faut lorsque je rempli la
case d'une cellule de la col J, il faut que je reclic dans cette case pour
que ca fonctionne, si je clic ailleurs, case ou pas case remplie, ca ne
fonctionne pas. Peux tu verifier si c'est bien cela.

Merci

Manu


"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range)
Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes
à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu














Avatar
Manu
Super, merci


"MichD" a écrit dans le message de news:
ivcma1$r3$
Pour que la case à cocher n'aie pas de texte, tu modifies cette ligne de
code de la procédure

.Caption = Rg.Value

Par

.Caption = ""

Ce code est dans le module de la feuille où l'action se déroule.
'--------------------------------
Sub Ajout_Checkbox(Rg As Range)
On Error Resume Next
With Worksheets(Rg.Parent.Name)
If Rg <> "" Then
With .CheckBoxes.Add(Rg.Offset(, -1).Left, _
Rg.Offset(, -1).Top, Rg.Offset(, -1).Width, _
Rg.Offset(, -1).Height)
.LinkedCell = Rg.Offset(, -2).Address
.Caption = ""
.Name = "CB" & Rg.Address(0, 0)
End With
Else
Nom = "CB" & Rg.Address(0, 0)
Me.Shapes("CB" & Rg.Address(0, 0)).Delete
End If
End With

End Sub

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range

Set Rg = Intersect(Target, Range("C3,C5,C8"))
If Not Rg Is Nothing Then
For Each C In Rg
Ajout_Checkbox C
Next
End If
End Sub
'--------------------------------


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19d41c$0$30777$

Merci Mich, c'est nickel pour les formulaires, sans abuser, j'aurais
preferé
sans texte dans la case à cocher.
En revanche, ca ne fonctionne toujours pas pour la suppression de ligne,
est
ce parce que je suis sur 2007 ?

Merci

Manu

"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range)
Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes
à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu














Avatar
MichD
Ma première réponse faisait exactement ce que tu demandais automatiquement, et ce sans bouton...
quoi demander de plus ?

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------







MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : 4e19e17b$0$18780$


Tu as raison, mais ma demande initiale n'a pas changé. Je me suis mal fais
comprendre, je saisi bien dans la colonne J, je te donne un exemple, si je
tape en J1 quelque chose et qu'apres je fasse entrée, j'arrive donc en J2 et
lorsque je clic sur le bouton, il me supprime la ref en face de J2 et non de
J1 où j'avais initialement tapé.
En faite, il ne tiens pas compte de ma frappe, mais dans quelle cellules je
suis. Suis je plus clair ?

Merci

Manu

"MichD" a écrit dans le message de news:
ivcm0d$vli$
Ta demande initiale était à l'effet que la ligne devait disparaître à la
suite
d'une modification de la valeur d'une cellule dans la colonne J:J , par
conséquent
la cellule active était une cellule de la colonne J:J qui venait de subir
une modification.
Si ta sélection n'est pas une cellule de la colonne J:J , rien ne se
passe. La vérification de
la suppression de la ligne se fait à partir de la ligne de la cellule
active de la feuil2. Ceci était
tes exigences. La macro liée au bouton de commande respecte ces mêmes
exigences...

Tu dois d'abord choisir les cellules de la colonne J:J dont tu veux que la
macro vérifie
la présence de la valeur de la colonne A de la feuil2 avec la présence de
cette même valeur
dans la colonne A de la feuil1.


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19d708$0$18817$

En faîte, c'est tres bizarre Mich, apres plusieurs essais, il s'avere que
ca
fonctionne parfois, je crois savoir pourquoi, il faut lorsque je rempli la
case d'une cellule de la col J, il faut que je reclic dans cette case pour
que ca fonctionne, si je clic ailleurs, case ou pas case remplie, ca ne
fonctionne pas. Peux tu verifier si c'est bien cela.

Merci

Manu


"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range)
Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes
à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu














Avatar
Manu
Exact, sans le bouton, ca fonctionne nickel, c'est parce que je voulais
reproduire ce code avec un bouton, et je n'y arraivais pas du tout ! mais
c'est deja nickel ainsi !

Merci encore Mich.

Manu

"MichD" a écrit dans le message de news:
ivd0qm$tsu$
Ma première réponse faisait exactement ce que tu demandais
automatiquement, et ce sans bouton...
quoi demander de plus ?

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------







MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19e17b$0$18780$


Tu as raison, mais ma demande initiale n'a pas changé. Je me suis mal fais
comprendre, je saisi bien dans la colonne J, je te donne un exemple, si je
tape en J1 quelque chose et qu'apres je fasse entrée, j'arrive donc en J2
et
lorsque je clic sur le bouton, il me supprime la ref en face de J2 et non
de
J1 où j'avais initialement tapé.
En faite, il ne tiens pas compte de ma frappe, mais dans quelle cellules
je
suis. Suis je plus clair ?

Merci

Manu

"MichD" a écrit dans le message de news:
ivcm0d$vli$
Ta demande initiale était à l'effet que la ligne devait disparaître à la
suite
d'une modification de la valeur d'une cellule dans la colonne J:J , par
conséquent
la cellule active était une cellule de la colonne J:J qui venait de subir
une modification.
Si ta sélection n'est pas une cellule de la colonne J:J , rien ne se
passe. La vérification de
la suppression de la ligne se fait à partir de la ligne de la cellule
active de la feuil2. Ceci était
tes exigences. La macro liée au bouton de commande respecte ces mêmes
exigences...

Tu dois d'abord choisir les cellules de la colonne J:J dont tu veux que
la
macro vérifie
la présence de la valeur de la colonne A de la feuil2 avec la présence de
cette même valeur
dans la colonne A de la feuil1.


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19d708$0$18817$

En faîte, c'est tres bizarre Mich, apres plusieurs essais, il s'avere que
ca
fonctionne parfois, je crois savoir pourquoi, il faut lorsque je rempli
la
case d'une cellule de la col J, il faut que je reclic dans cette case
pour
que ca fonctionne, si je clic ailleurs, case ou pas case remplie, ca ne
fonctionne pas. Peux tu verifier si c'est bien cela.

Merci

Manu


"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range)
Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde
si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes
à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu

















Avatar
MichD
Si tu tiens à lancer la macro "test" par un bouton, voici le code à mettre dans le module de la feuil2

La suppression de la ligne est possible seulement après avoir effectué une modification
d'une ou de plusieurs cellules dans la colonne J:J. La suppression est possible même si
tu as supprimé tout le contenu de la cellule en colonne J:J.

'Déclaration de la variable dans le haut du module.
Dim Rg As Range
'--------------------------------------
Sub test()
Dim C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If Rg Is Nothing Then Set Rg = ActiveCell
Set Rg = Intersect(Rg, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Set Rg = Nothing
Application.EnableEvents = True
End If
End Sub
'--------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Rg Is Nothing Then
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
End If
Else
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
End If
End If
End Sub
'--------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion : 4e1a1ba8$0$18784$

Exact, sans le bouton, ca fonctionne nickel, c'est parce que je voulais
reproduire ce code avec un bouton, et je n'y arraivais pas du tout ! mais
c'est deja nickel ainsi !

Merci encore Mich.

Manu

"MichD" a écrit dans le message de news:
ivd0qm$tsu$
Ma première réponse faisait exactement ce que tu demandais
automatiquement, et ce sans bouton...
quoi demander de plus ?

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------







MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19e17b$0$18780$


Tu as raison, mais ma demande initiale n'a pas changé. Je me suis mal fais
comprendre, je saisi bien dans la colonne J, je te donne un exemple, si je
tape en J1 quelque chose et qu'apres je fasse entrée, j'arrive donc en J2
et
lorsque je clic sur le bouton, il me supprime la ref en face de J2 et non
de
J1 où j'avais initialement tapé.
En faite, il ne tiens pas compte de ma frappe, mais dans quelle cellules
je
suis. Suis je plus clair ?

Merci

Manu

"MichD" a écrit dans le message de news:
ivcm0d$vli$
Ta demande initiale était à l'effet que la ligne devait disparaître à la
suite
d'une modification de la valeur d'une cellule dans la colonne J:J , par
conséquent
la cellule active était une cellule de la colonne J:J qui venait de subir
une modification.
Si ta sélection n'est pas une cellule de la colonne J:J , rien ne se
passe. La vérification de
la suppression de la ligne se fait à partir de la ligne de la cellule
active de la feuil2. Ceci était
tes exigences. La macro liée au bouton de commande respecte ces mêmes
exigences...

Tu dois d'abord choisir les cellules de la colonne J:J dont tu veux que
la
macro vérifie
la présence de la valeur de la colonne A de la feuil2 avec la présence de
cette même valeur
dans la colonne A de la feuil1.


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19d708$0$18817$

En faîte, c'est tres bizarre Mich, apres plusieurs essais, il s'avere que
ca
fonctionne parfois, je crois savoir pourquoi, il faut lorsque je rempli
la
case d'une cellule de la col J, il faut que je reclic dans cette case
pour
que ca fonctionne, si je clic ailleurs, case ou pas case remplie, ca ne
fonctionne pas. Peux tu verifier si c'est bien cela.

Merci

Manu


"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range)
Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde
si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les lignes
à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu

















Avatar
Manu
Bonjour,

Ok, encore Merci Mich

Manu

"MichD" a écrit dans le message de news:
ivdg59$4u3$
Si tu tiens à lancer la macro "test" par un bouton, voici le code à mettre
dans le module de la feuil2

La suppression de la ligne est possible seulement après avoir effectué
une modification
d'une ou de plusieurs cellules dans la colonne J:J. La suppression est
possible même si
tu as supprimé tout le contenu de la cellule en colonne J:J.

'Déclaration de la variable dans le haut du module.
Dim Rg As Range
'--------------------------------------
Sub test()
Dim C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If Rg Is Nothing Then Set Rg = ActiveCell
Set Rg = Intersect(Rg, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Set Rg = Nothing
Application.EnableEvents = True
End If
End Sub
'--------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Rg Is Nothing Then
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
End If
Else
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
End If
End If
End Sub
'--------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1a1ba8$0$18784$

Exact, sans le bouton, ca fonctionne nickel, c'est parce que je voulais
reproduire ce code avec un bouton, et je n'y arraivais pas du tout ! mais
c'est deja nickel ainsi !

Merci encore Mich.

Manu

"MichD" a écrit dans le message de news:
ivd0qm$tsu$
Ma première réponse faisait exactement ce que tu demandais
automatiquement, et ce sans bouton...
quoi demander de plus ?

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------







MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19e17b$0$18780$


Tu as raison, mais ma demande initiale n'a pas changé. Je me suis mal
fais
comprendre, je saisi bien dans la colonne J, je te donne un exemple, si
je
tape en J1 quelque chose et qu'apres je fasse entrée, j'arrive donc en J2
et
lorsque je clic sur le bouton, il me supprime la ref en face de J2 et non
de
J1 où j'avais initialement tapé.
En faite, il ne tiens pas compte de ma frappe, mais dans quelle cellules
je
suis. Suis je plus clair ?

Merci

Manu

"MichD" a écrit dans le message de news:
ivcm0d$vli$
Ta demande initiale était à l'effet que la ligne devait disparaître à la
suite
d'une modification de la valeur d'une cellule dans la colonne J:J , par
conséquent
la cellule active était une cellule de la colonne J:J qui venait de
subir
une modification.
Si ta sélection n'est pas une cellule de la colonne J:J , rien ne se
passe. La vérification de
la suppression de la ligne se fait à partir de la ligne de la cellule
active de la feuil2. Ceci était
tes exigences. La macro liée au bouton de commande respecte ces mêmes
exigences...

Tu dois d'abord choisir les cellules de la colonne J:J dont tu veux que
la
macro vérifie
la présence de la valeur de la colonne A de la feuil2 avec la présence
de
cette même valeur
dans la colonne A de la feuil1.


MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e19d708$0$18817$

En faîte, c'est tres bizarre Mich, apres plusieurs essais, il s'avere
que
ca
fonctionne parfois, je crois savoir pourquoi, il faut lorsque je rempli
la
case d'une cellule de la col J, il faut que je reclic dans cette case
pour
que ca fonctionne, si je clic ailleurs, case ou pas case remplie, ca ne
fonctionne pas. Peux tu verifier si c'est bien cela.

Merci

Manu


"MichD" a écrit dans le message de news:
ivc8mv$v8s$
Un fichier exemple :
http://www.cijoint.fr/cjlink.php?file=cj201107/cijRoTQ7KP.xls

En Feuil4, je réponds à ta question suivante sur les checkbox



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e196995$1$30764$

Désolé, en faîte, il ne se passe rien du tout, j'ai mis le bouton de la
barre d'outils formulaire, j'ai bien affecté la macro et rien. comme si
que
je ne cliquais pas sur le bouton.

Manu

"MichD" a écrit dans le message de news:
iva4h8$7a7$
Il faut faire un petit effort : " ca ne fonctionne pas"

Qu'est-ce qui se passe que tu ne désires pas où tu voudrais qu'il se
passe
à la place ?
Sois plus explicite dans ton commentaire!



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e1882c9$0$18816$

Bonjour,

Bizarre, autant ca fonctionnait avec Private Sub
Worksheet_Change(ByVal
Target As Range) alors qu'avec le bouton, ca ne fonctionne pas.

Manu

"MichD" a écrit dans le message de news:
iv6ogm$ari$
Tu places cette macro dans le module feuille où l'action doit se
dérouler
(Feuil2)
et tu peux l'activer par un bouton de commande.
Cette macro s'exécutera seulement suite au clic sur le bouton.


'-----------------------------
Sub test()

Dim Rg As Range, C As Range, X As Variant, Plg As Range
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
If TypeName(Selection) = "Range" Then
Set Rg = Intersect(Range(Selection.Address), Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg],
0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End If
End Sub
'-----------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e16a1f0$0$30766$


Bonjour,

Exactement ce qu'il me fallait, Merci Mich, j'ai essayé da mettre un
bouton
en changeant le Private Sub Worksheet_Change(ByVal Target As Range)
Par
sub
sup() Mais ca n'a pas fonctionné, pourquoi ?

Merci encore

Manu

"MichD" a écrit dans le message de news:
iv4tme$9pu$
Bonjour,

Copie le code suivant dans le module de ta feuil2 de ton classeur.

Dans la procédure, adapte au besoin le nom de la "Feuil1"

'-------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, C As Range, X As Variant
With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65536").End(xlUp).Row).Name = "MdPlg"
End With
Set Rg = Intersect(Target, Range("J:J"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
X = Application.Match(Range("A" & C.Row).Value, [MdPlg], 0)
If IsNumeric(X) Then
Worksheets("Feuil1").Range("a" & X).EntireRow.Delete
End If
Next
Application.EnableEvents = True
End If
End Sub
'-------------------------------------



MichD
--------------------------------------------
"Manu" a écrit dans le message de groupe de discussion :
4e15da9b$0$30792$

Bonsoir,

Pas facile à expliquer, mais je vais tacher d'etre clair :

J'ai dans ma feuil1 une bdd avec en colonne A des ref
j'ai dans ma feuil 2 une bdd differentes mais qui possede tjrs en
colonne
A
des ref qui sont parfois identique à la colonne A de la feuil1
Je souhaite si je tape dans la feuil 2 colonne J un 1 qu'il regarde
si
sur
ma gauche dans ma colonne A j'ai la meme ref de la col A de la
feuil1
et
si
il la trouve qu'il supprime la ligne (tjrs dans feuil1) ou se trouve
cette
ref.

En faites, pour simplifier, ma feuil2 me permet de choisir les
lignes
à
supprimer de la feuil1 en mettant dans la colonne J le repere 1

Ai-je été clair ? pas sure !

Merci de votre aide

Manu




















1 2