XL 2013 Supprimer ligne en fonction de la valeur d'une cellule

damient

XLDnaute Nouveau
Bonjour,

Je ne comprends vraiment rien aux VBA.
J'ai mis un bouton sur une feuille. J'ai besoin qu'en cliquant sur ce bouton, les lignes de mon tableau soient effacées ou non en fonction de la valeur d'une cellule ("Oui") dans une autre feuille.
J'ai essayé d'affecter une macro à ce bouton. avec une formule mais je ne parviens pas à l'adapter à mon besoin.

Si quelqu'un peut m'aider en m'expliquant ce que chaque charabia signifie, ce serait super sympa !

Merci beaucoup,

Damien
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Vous n'avez pas testé la macro que je vous ai donnée au post #11 ?
Si oui, qu'est-ce qui n'a pas fonctionné, alors que lors de mes tests ça le faisait?
En tous cas elle n'est pas dans votre nouveau classeur.

A vous relire
 

damient

XLDnaute Nouveau
Ci-joint, mon document avec votre macro.
Si les lignes sont effacées chez vous en cliquant sur le bouton, il doit y avoir un autre problème chez moi alors car il ne se passe rien :-(
 

Pièces jointes

  • Tableau de bord AAP.xlsm
    390.7 KB · Affichages: 6

Hasco

XLDnaute Barbatruc
Repose en paix
Bonsoir,

Ce qu'il faut comprendre c'est que les colonnes et lignes d'une plage de cellules déclarées en vba sont relatives à la première cellule.
Dans votre cas la plage de cellules "Lettres" (dans la macro) commence en Colonne B et donc la colonne "Sélectionné?" qui est en U (21ème) se retrouve donc être la 20 ème à droite de la première cellule de B.

En vba ça donne Lettres.Cells(j,20).

J'ai rajouté un compeur de lignes supprimées pour information et affichage en fin de macro.

P.S. le libellé de votre bouton porte à confusion 'Supprimer les Li refusées' laisse à penser que ce sont les ligne de "Lettres d'intention" qu'il faut supprimer.

Cordialement
 

Pièces jointes

  • Tableau de bord AAP.xlsm
    392.5 KB · Affichages: 9

damient

XLDnaute Nouveau
Bonsoir,

C'est particulièrement impressionnant !
Je comprends votre explication mais tout le reste demeure un mystère !

Est-ce qu'il est possible d'annuler l'opération ? J'ai volontairement quitté l'application sans enregistrer mais les changements sont tout de même pris en compte.

Faut-il que je crée un autre fil pour mes autres questions ? J'en ai encore beaucoup :-(

Je cherche notamment à inscrire dans la colonne Expert 1 et Expert 2 de la feuille "Projets complets" le nom des experts ayant pour statut "OK" dans la feuille Experts. J'ai essayé avec la fonction RECHERCHEV et/ou DECALER mais ne parviens pas à le faire...

Grand merci quoi qu'il en soit pour votre travail
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Les actions des macros vba ne sont pas annulables.

Oui créez un fil par discussion. Vous aurez plus de chance d'avoir des réponses variées.
Mais tel que je vous sens, je vous suggère de suivre des tutos VBA, de commencer par des petites actions.
Par exemples apprendre ce qu'est un objet Range comment il se manipule.
Parce que là, sur ce que nous avons fait ensemble, vous n'avez quasiment rien appris. Le but du forum, est de dépanner sur des points précis, pas d'enseigner le vba ou de faire à la place des gens.

Bonne soirée
 

damient

XLDnaute Nouveau
Bonjour,

Je remonte ce fil car dans mon classeur "réel", j'ai copié collé le code et adapté le numéro de la colonne mais lorsque j’exécute la macro, il me dit qu'il a supprimé x lignes sauf qu'elles ne le sont pas.

Quelqu'un pourrait m'aider svp ?

Grand merci par avance,
 

Pièces jointes

  • Tableau de bord AAP 2020_backup.xlsm
    586 KB · Affichages: 2

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Dans votre Post #7 les tableaux n'étaient pas des tableaux structurés (insertion/tableau).
Bref nous avons bossé pour rien et je n'aime pas ça du tout.

Je n'ai pas envie de recommencer le boulot, alors si quelqu'un veut s'y coller...

Bonne soirée
 

damient

XLDnaute Nouveau
Bonjour,

Dans votre Post #7 les tableaux n'étaient pas des tableaux structurés (insertion/tableau).
Bref nous avons bossé pour rien et je n'aime pas ça du tout.

Je n'ai pas envie de recommencer le boulot, alors si quelqu'un veut s'y coller...

Bonne soirée

Bonjour Roblochon,

Vous n'avez pas bossé pour rien, quelqu'un s'est appuyé sur vos travaux pour me proposer une nouvelle solution qui fonctionne, c'est une excellente nouvelle !

Passez une belle soirée et merci encore !
 

damient

XLDnaute Nouveau
Bien sûr, voici ce qui a été proposé :

Option Explicit
Sub SuppressionLI()
Dim msg As Integer, dlg As Integer, lig As Integer, i As Integer, compteur As Integer
Dim plagePC As Range

msg = MsgBox("Êtes-vous sûr(e) ? Cette opération est irréversible.", vbYesNo + vbQuestion + vbDefaultButton2, "Confirmation")

If msg = vbYes Then
'Code à exécuter si OUI
dlg = Feuil3.Range("B" & Feuil3.Rows.count).End(xlUp).Row
Set plagePC = Feuil18.ListObjects("TblProjetsComplets").DataBodyRange.Columns(1)

For i = dlg To 3 Step -1
If Feuil3.Cells(i, 23).Value = "Non" Then
lig = plagePC.Find(Feuil3.Cells(i, 2), LookIn:=xlValues).Row - 2
plagePC.Rows(lig).EntireRow.Delete
compteur = compteur + 1
End If

Next i

MsgBox compteur & " ligne(s) de projet(s) ont été supprimée(s).", vbInformation, "Suppresion projets"

Application.ErrorCheckingOptions.InconsistentTableFormula = False

ElseIf msg = vbNo Then MsgBox "Aucune ligne n'a été supprimée !", vbInformation, "Suppression projets"

End If

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 789
Membres
101 817
dernier inscrit
carvajal