Supprimer une ligne automatiquement en insérant par exemple Y

Bonjour,

J'ai créé un tableau avec 4 colonnes;

- nom de la personne concernée

- nom de la personne qui gère le dossier

- raison

- date

- reçu

Il s'agit d'un tableau de suivi et je voudrais que lorsque on reçoit la carte qu'on attend, on insère Y (pour yes) et que la ligne disparaisse d'elle-même.

Est-ce possible svp?

Je ne sais pas si ce genre de fonctions existe car j'ai essayé une recherche sur Google mais j'ai d'autres propositions plus basiques.

Merci infiniment pour votre aimable et précieux concours :)

Linda

Bonjour, oui c'est possible avec une macro évènement.

Cependant il faudrait un fichier exemple ressemblant à votre original ( placement du tableau, nom de l'onglet colonne ou seront écris les "Y" yes )

Bonjour,

Ohh merci infiniment pour votre aimable réponse

Je ne sais pas créer ce genre de macro mais je vais quand même d'abord regarder comment on fait d'abord.

Ca m'intéresse d'apprendre :)

Je reviens vers vous si je bug vraiment!

Cordialement,

Linda

Bonjour Linda.Geneve et

Une possibilité d'apprendre ICI : https://www.excel-pratique.com/fr/vba

A+

Bonjour Bruno :)

Merci beaucoup!

Ce site est fantastique :)

Je vais regarder les cours!

A bientôt :)

Linda

Bonjour à l'Equipe Excel-Pratique,

Merci infiniment pour les cours :)

Alors la seule chose que j'ai réussi à bien faire c'est installer la fonction "developpeur" dans le ruban lol

Ensuite par rapport à mon besoin, je crois que je dois utiliser la fonction arrayValuesDelete.

Mais honnêtement, je ne sais pas comme l'installer malgré des étapes à suivre. Mon niveau Excel est trop bas par rapport à cette utilisation VBA.

Merci infiniment pour votre éventuelle assistance et instructions à suivre.

Bien à vous,

Linda

Bonjour, pour une aide correspondant à votre demande ; relire mon premier post.

Une précision aussi sur votre de demande : "Disparaisse" ? ne plus afficher mais conserver ? ou supprimer la ligne et ne pas conserver ?

Bonjour,

Désolée pour ce retour tardif!

J'ai joint un fichier, j'ai changé les noms pour éviter de mettre des données personnelles par des noms de produits qu'on trouve dans l'univers de la pâtisserie lol

Quelles sont les étapes à suivre quand je veux insérer Y dans la colonne reçu et qu'elle disparaisse quasi immédiatement svp?

Merci infiniment pour votre support et aimable instructions :)

Belle journée à Tous :)

Linda

Bonjour :)

Ahh oui, je viens de relire cette phrase dans l'un des posts:

Une précision aussi sur votre de demande : "Disparaisse" ? ne plus afficher mais conserver ? ou supprimer la ligne et ne pas conserver

Il s'agit pour mon tableau supprimer et ne pas conserver.

Merci infiniment pour votre aide :)

Linda

Bonjour Linda,

Voici une possibilité de code à mettre dans votre feuille

ATTENTION !
Il faudra modifier le nom de votre tableau "Table22" par celui que vous avez

Option Explicit

Dim FlgSup As Boolean

' L'évènement change permet d'exécuter une action après modification d'une cellule
Private Sub Worksheet_Change(ByVal Target As Range)
  ' Si suppression en cours on sort
  If FlgSup Then Exit Sub
  ' On sort si modification d'une colonne ou ligne entière
  If Target.Columns.Count = Application.Columns.Count Then Exit Sub
  If Target.Rows.Count = Application.Rows.Count Then Exit Sub
  ' Modification dans la bonne colonne
  If Target.Column = Me.ListObjects("Table22").ListColumns("RECEIVED").Index Then
    ' Si la majuscule de la valeur saisie est Y
    If UCase(Target) = "Y" Then
      ' On empêche l'évènement de se reproduire : IMPORTANT
      FlgSup = True
      ' On supprime la ligne
      Me.Rows(Target.Row).EntireRow.Delete
      ' On autorise de nouveau les évènements
      'FlgSup = False
    End If
  End If
End Sub

A+

Bonjour Linda.Geneve, BrunoM45 , le forum,

Une variante....un peu tardive......

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim lo As ListObject
  'définit la tableau structuré
  Set lo = Sheets("Sheet1").ListObjects("Table22")
   'si le tableau est vide, on quitte la procédure
   If lo.DataBodyRange Is Nothing Then Exit Sub
    'si on saisie dans la colonne 5
    If Not Application.Intersect(Target, lo.ListColumns(5).Range) Is Nothing Then
     'définit la ligne du tableau
     lig = Target.Row - 2
     'si la cible contient y où Y
     If UCase(lo.DataBodyRange(lig, 5)) Like "Y" Then
      'message demandant la confirmation de la suppression de la ligne
      If MsgBox("Supprimer cette ligne ?", vbYesNo, "Demande de confirmation") = vbYes Then
       'suppression de la ligne
       lo.ListRows(lig).Range.Delete
    'sinon
      Else
       'annulation de la dernière saisie (y)
       Application.Undo
      End If
     End If
    End If
End Sub

[EDIT] : Oups ! , hello Xmenpl, désolé, je t'avais zappé...


Cordialement,

Du coup je n'ai pas mieux à proposer que Bruno ou Xorsankukai

Bonjour à Tous,

Merci infiniment pour cet effort collectif.

Mais j'avoue je ne sais pas comment l'insérer ce code.

J'ai regardé des vidéos sur youtube pour créer une macro.

J'ai compris le principe d'enclencher l'enregistrement de la macro.

J'insére Y dans la première ligne dans la colonne dédiée puis je fais un clic droit et je supprime la ligne, j'arrête l'enregistrement.

Ensuite, je clique sur macro puis modifier. La fenêtre de code s'ouvre et je copie colle le code aimablement transmis (enfin l'un d'eux).

Ensuite, je sors de ce mode. Je retourne sur le classeur, je rentre Y dans la colonne mais pas d'action. La ligne reste telle qu'elle.

Désolée pour mon cruel manque d'expérience avec la fonction VBA mais je rate quelque chose dans la façon de procéder et je ne sais pas où malheureusement.

Merci sincèrement pour votre précieuse assistance.

Linda

Bonjour Linda, le forum,

1) Tu dois copier l'un des 2 codes proposés.

2) Fais ALT + F11 pour ouvrir l'éditeur vba

3) Double-clic sur le module de la feuille concernée.

image

4) Colle le code. (dans la fenêtre de droite)

image

5) Enregistre ton fichier au format .xlsm (prise en charge des macros).

Bons tests,

Cordialement,

Bonsoir,

Je réponds toujours un peu tardivement car je suis submergée de travail en ce moment!

Alors tout d'abord un grand merci xorsankukai pour le pas à pas :)

J'ai suivi tes instructions, j'ai changé dans le code VBA le nom du tableau par celui que j'ai ("Table awaiting COPY CH for EF EXTENSION")

Mais j'ai eu le code 9 débogage quand j'ai testé en insérant Y sur la première ligne pour voir si cela fonctionne.

Franchement quand on découvre les macros, c'est pas facile! coder les actions, ce n'est pas encore à ma portée :(

Que faire désormais? qu'est-ce que je fais mal?

Merci encore pour votre éclairage et aimable assistance :)

Belle fin de journée à Tous :)

Linda

Bonsoir Linda, le forum,

Mon excel2010 refuse les espaces pour le nom du tableau, pour que ça passe, je dois le nommer ainsi :

Table_awaiting_COPY_CH_for_EF_EXTENSION

Puis en modifiant le code ainsi, ça fonctionne:

Set lo = Sheets("Sheet1").ListObjects("Table_awaiting_COPY_CH_for_EF_EXTENSION")

Cordialement,

Rechercher des sujets similaires à "supprimer ligne automatiquement inserant exemple"