Suppression lignes VBA gestion de stock

Bonjour à tous,

je souhaiterai via vba pouvoir supprimer automatiquement des lignes d'un fichier excel de stock.

L'idée serait d'avoir un bouton (flitre) avec un code permettant de supprimer par exemple la référence C6 à 18 du tableau et par la suite du C20 à C23.

Je ne connais aucun code de suppression de ligne. Si quelqu'un aurait l'amabilité de m'aider.

Merci d'avance

En pièce joint un exemple de fichier.

37filtre-stock.xlsx (9.29 Ko)

Bonjour

Pour supprimer une ligne en vba :

Feuil1 = nom de tafeuille

supprimer ligne 4 :

Worksheets("Feuil1").Rows(4).EntireRow.Delete

Bye

Merci de la réponse cependant, n'y aurait il pas possibilité de faire un truc du genre si colonne A contient C1, C2 ou C3 alors suprimer ligne.

Bonsoir

Je te joins un fichier, vois si cela te va

Bye

35filtre-stock-1.xlsm (19.99 Ko)

Bonjour, sur le principe c'est bien ce que je voulais faire mais est il possible que cela se fasse tout seul sans selection ?

Car en faite il va y avoir énormément de référence et cela va prendre beaucoup de temps pour les selectionner un a un.

MErci d'avance

Bonjour

Avec un peu de retard

A essayer le fichier joint

Bye

MErci vous avez vraiment cerné le truc, cependant lorsque j'essaie de supprimer de C1 à C5 par excemple il ne supprime que les nombre impair (C1, C3 et C5).

C'est un défaut corrigeable ?

Bonjour

Voici la correction, désolée

Par contre, reste un problème qu'il faut que je règle, je ne sais pas encore comment

Quand les lignes sont supprimées là où est situé le bouton, celui-ci disparaît

Je cherche, à moins que les pros de ce site, et il y en a beaucoup, trouvent une solution

Fichier modifié

Bye


Re

Je viens de trouver

Prendre ce fichier :

Bon courage


Prendre le premier, le plus gros

C'est super. Merci infiniment. Quel talent.

Suis contente pour toi que cela te convienne. Pense à mettre en résolu

Et Merci de ton merci, quant au talent, non, juste de l'acharnement

Bye

Oui, j'aurai juste une dernière question. J'aimerai comprendre comment tu t'y es pris, je n'arrive pas à visualiser le code (mis à part la parti (

Sub Suppression_Cliquer()

UserForm1.Show

End Sub

)

. C'est possible de m'expliquer ? Histoire de progresser.

Tu clique sur onglet développeur, à gauche visual basic, tu ouvres Feuilles, tu double-cliques sur UserForm1 et sur le userform clique droit, code

Là tu vois le code

A + ?

J'ai trouvé le code merci. Et si par exemple je veux le refaire sur un autre fichier de gestion de stock. Quelle serait la donné que je devrais modifier ?

J'espère ne pas abusé de ton temps en tout cas, merci de prendre le temps de me lire.

Le code peut être du même style, tout dépend de ton fichier , de la colonne à traiter, etc...

C'est pareil, se sera toujours la colonne A. La seul différence c'est que le bouton devra être sur une autre feuille (type programme)

A l'occasion, envoie ton fichier exemple pour que je regarde

Bonne soirée

MErci de m'accorder du temps. Tu trouveras le fichier en PJ. Donc l'idée c'est que avec le premier bouton je charge une extraction automatique. (La page A en l'occurence) Et toute les ligne jaunes (je l'ai ai mise manuellement en jaune pour plus de clarté) doivent disparaitre afin que je puisse par la suite mettre en place des formules type (si le stock du CEE128 est inférieur à X alors proposition de réapro).

20copie-de-bon.xlsm (54.15 Ko)

Re

Dans ton bouton importer (bouton1, je rajouterais un contrôle au cas où l'on n'ouvre pas de fichier (que l'on fasse Annuler)

Sub Bouton1_Cliquer()

Dim I As Integer
 Dim nom As String
 Dim Nomdececlasseur As String
 Dim Nomcopie As String
 Dim chemin As Variant
 Application.DisplayAlerts = False
  chemin = Application.GetOpenFilename("Classeurs Excel (*.xls), *.xls")
  If chemin = "Faux" Then
    MsgBox "Aucun fichier sélectionné"
    Exit Sub
  End If

   Workbooks.Open (chemin)
'classeur à copier
 Nomcopie = ActiveWorkbook.Name
 'on parcourt toutes les feuilles
 For I = 1 To Worksheets.Count
Workbooks(Nomcopie).Activate 'classeur à copier a adapter le nom
nom = Worksheets(I).Name
Nomdececlasseur = ThisWorkbook.Name
Sheets(nom).Select
 Sheets(nom).Copy After:=Workbooks(Nomdececlasseur).Sheets(1) 'classeur à coller a adapter le nom
Sheets(nom).Move After:=Sheets(Sheets.Count) 'on met les onglets dans l'ordre
Next
Workbooks(Nomdececlasseur).Sheets(1).Activate
Application.DisplayAlerts = True
End Sub

Par contre, je ne saisis pas du tout ce que tu cherches à faire dans le bouton Sélection (bouton2), si tu veux faire le choix d'une sélection à supprimer, appelle l'userform pour sélectionner tes lignes à supprimer comme dans l'exemple précédent.

Je n'ai peut-être pas tout compris

Bon courage

En faite, toute les semaine, je dois faire une extraction à partir d'un ERP afin de controler les stock de chaque réf. Le truc c'est que c'est hyper long de vérifier pour chaque réf le stock mini, les quantités à prendre pour chaque ref et les délais.

L'idée est donc d'avoir une base qui permet de récupérer cette extraction (bouton importer) et à partir de la appuyer sur filtrer pour supprimer toute les réf qui ne servent à rien.

Une fois le fichier intégré et épuré j'ajouterai un bouton proposition de commande à faire dans lequelle une liste apparaitra avec les réf et quantité à prendre.

A part le fait que tu as mis les lignes à supprimer en jaune , veux-tu chaque fois les mettre en jaune et que la macro supprime les lignes jaunes ou veux-tu rentrer comme dans le premier cas tes valeurs début et fin, ou alors quel est le critère qui détermine les lignes à supprimer ?

A +

Rechercher des sujets similaires à "suppression lignes vba gestion stock"