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

  • Initiateur de la discussion Initiateur de la discussion damient
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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

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
 
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
 
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,

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 !
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour