Macro : effacement d'une seule ligne

bpierre

XLDnaute Junior
bonjour,

lorsque la macro ci-jointe s'exécute, plusieurs lignes s'effacent alors que je souhaite en effacer qu'une seule.
A priori, dans l'exemple ci-joint ça fonctionne, mais dans mon cas (le fichier est trop volumineux pour vous le montrer), j'ai 2000 lignes et quand je supprime une croix, j'ai la MsgBox qui apparaît autant de fois que j'aie fait de croix dans la colonne J. Résultat, ça me supprime toutes les lignes qui correspondent à "CIR".
A quel endroit, dans la macro ça coince ? Comment ça se fait ?
merci d'avance
 

Pièces jointes

  • effacement2.zip
    17.5 KB · Affichages: 35
  • effacement2.zip
    17.5 KB · Affichages: 35
  • effacement2.zip
    17.5 KB · Affichages: 34

Catrice

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Bonjour,

Je n'ai pas trop détaillé ta macro, mais tu peux essayer ceci :

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
....
Ton code
....
Application.EnableEvents = True
End Sub
 

Catrice

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Re,

En fait j'ai modifié un peu ton code avec ce que j'ai compris.
Voir le fichier joint.

Tu veux que lorsque tu entres un "X" la ligne soit copiée dans l'onglet cota
et que lorsque tu enleves le "X" la ligne soit effacée ?

J'ai rajouter une Sub pour que les "X" apparaissent ou disparaissent en double-cliquant dans les cellules.

Quelle ligne veux tu effacer lorsqu'elle existe en plusieurs exemplaire ?
Le code ci-joint supprime une seule ligne mais arbitrairement la derniere trouvée en partant du haut ...
 

Pièces jointes

  • effacement2.zip
    20.9 KB · Affichages: 36
  • effacement2.zip
    20.9 KB · Affichages: 35
  • effacement2.zip
    20.9 KB · Affichages: 34
Dernière édition:

bpierre

XLDnaute Junior
Re : Macro : effacement d'une seule ligne

bonjour,

pourquoi, lorsque je double-clic pour ajouter une croix, ça me rajoute 2 fois la même ligne dans la feuille "cota" ?
Je souhaite n'avoir qu'une seule ligne.
merci pour votre aide
 

Pièces jointes

  • effacement3.zip
    16.4 KB · Affichages: 26

Dull

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Salut bpierre, Catrice, le Forum

Phénomène tout à fait Normal
Une ligne ajoutée lors du Worksheet_BeforeDoubleClick()
Une ligne ajoutée lors du Worksheet_Change()

Ramène les lignes de code du Worksheet_Change() dans le Worksheet_BeforeDoubleClick()

et ça devrai fonctionner

Bonne Journée
 

Catrice

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Bonjour,

Je ne reproduis pas ce phenomene ?!
Et je ne vois pas pourquoi ça fait ça chez toi.
J'ai fait une modif dans le code que tu peux tester.
Quelle est ta version d'Excel ?

Je n'ai pas bien compris la solution de Dull.
Normalement le double clic met un "X" dans la feuille "Identi". => evenement "BeforeDoubleClick"

L'evenement "Change" agit en cas de changement dans la feuille.
Dans mon cas ajout/suppression d'un "X" au clavier ou par doubleclic
Le "change" ne fait que copier dans l'autre feuille donc pas de nouvel évènement dans la feuille en cours donc normalement pas de "boucle folle" !?... non ?

En revanche, si on resaisit au clavier un "X" sur un "X" existant, là la ligne est doublée ...
 

Pièces jointes

  • effacement4.zip
    20.2 KB · Affichages: 36
Dernière édition:

bpierre

XLDnaute Junior
Re : Macro : effacement d'une seule ligne

bizarre ! Excel 2003
dans le fichier joint, maintenant je double les lignes mais en plus je ne peux plus effacer certaines lignes
 

Pièces jointes

  • effacement5.zip
    20.2 KB · Affichages: 34
  • effacement5.zip
    20.2 KB · Affichages: 25
  • effacement5.zip
    20.2 KB · Affichages: 28

Dull

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Re bpierre, Catrice

Effectivement Bizarre...vousavezditbizzare...commec'estbizzare

@Catrice Effectivement ça Fonctionne SI:

Double Click et Changement de Feuille

ça fait Doublon SI:

Double Click-->Changement de Cellule sur la Même feuille et Changement de Feuille.
c'est pour cela que tout mettre dans Worksheet_BeforeDoubleClick() me semblait être une bonne Idée :)

@bpierre regardes le Fichier Joint en espérant que cela Fonctionne

Bonne Journée
 

Pièces jointes

  • effacement5.zip
    19.6 KB · Affichages: 35
  • effacement5.zip
    19.6 KB · Affichages: 33
  • effacement5.zip
    19.6 KB · Affichages: 34

Catrice

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Bonsoir Dull et bpierre,

Je ne reproduis pas le probleme.

Je n'ai malheureusement pas Excel 2003 pour approfondir les tests mais sous Excel 2002, mon code permet d'ajouter un "X" par double clic ou au clavier ce qui transmet la ligne dans l'autre onglet. S'il y a déjà un "X" il est supprimé et la ligne correspondante aussi.
Le code de Dull contourne le probleme dans Excel 2003 tant mieux.
Mais bpierre, du coup, plus de saisie clavier :(

PS - Dans le code de Dull (et encore plus que dans le mien) normalement le Application.EnableEvents = False n'est pas necessaire.
Vraiment, je ne comprend pas le pb ...
Dull, chez toi c'est pareil que chez bpierre ?

Double Click-->Changement de Cellule sur la Même feuille et Changement de Feuille.
Je n'ai pas compris ce step by step.
 
Dernière édition:

Dull

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Salut bpierre, Catrice, le Forum

Effectivement Catrice avec Excel 2003 j'ai le même souci

Déjà à l'ouverture du Fichier Non pas 1 mais 2 Fichier s'ouvrent simultanément nommés respectivement Effacement 4:1 et Effacement 4:2
le plus drôle c'est que dans le VBA seul le fichier Effacement 4 existe:confused:

Catrice2.jpg
Donc je supprime le Fichier Doublon.

Au dblclick pour la création d'un X: 2 lignes identiques sont crées dans la feuille cota. d'où le regroupement dans un seul événementiel soit le Double Click

Autre chose: le premier DblClick fonctionne nickel (sauf le souci cité plus haut)... au deuxième idem tant que je crée des X. A l'effacement d'un X ça fonctionne aussi, puis si tu essayes d'en effacer un 2ème...plus rien ni ajout ni retrait

je suis dépassé car tes lignes de codes me paraissent parfaites et je ne vois pas ou le bas blesse
Désolé de ne t'être d'un plus grand secours Catrice :eek:

Bonne Journée
 

Catrice

XLDnaute Barbatruc
Re : Macro : effacement d'une seule ligne

Bonjour,

Pour les 2 fenetres, un seul fichier s'ouvre mais dans 2 fenetres. J'en avais affiché 2 pour voir ce qui se passait.
=> Fenetre/nouvelle Fenetre et Fenetre/Réorganiser... puis selectionner 1 onglet différent dans chaque fenetre.
Mais ça n'a pas d'incidence sur le code.
Pour supprimer une fenetre, il faut effectivement en fermer une et enregistrer le fichier.
Dans Vba tu ne vois que le fichier Effacement4 car seul l'objet Window est affecté pas l'objet WorkBook.
Sub test()
MsgBox ActiveWorkbook.Windows.Count
End Sub
=> Renvoie 2

Qqun sous Excel 2003 peut il jeter un oeil ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11