Optimisation/Fiabilisation d'un bout de code

Bonjour à tous,

Je souhaiterai fiabiliser, optimiser, améliorer, épurer, le bout de code ci-dessous.

Je l'ai "bidouillé" jusqu'à avoir un résultat acceptable avec mes maigres connaissance en la matière,

Mon projet de base est le suivant :

Depuis la feuille stocks,

Copier les lignes dont la colonnes E (quantité) est non nul

Dans la feuille panier,

Insérer uniquement les lignes précédemment copier en dessous de la ligne dont la cellule est active,

Autres fonctions :

- conserver le même ordre dans les 2 feuilles

- Effacer la colonne E (quantité)

- Finir sur la feuille Panier

En VBA :

Sub inserer_article()
'Application.ScreenUpdating = False
  Dim Lig     As Long
  Dim Col     As String
  Dim NbrLig  As Long
  Dim Derlig As Long

  Sheets("Panier").Activate ' feuille de destination

  Col = "E"                 ' colonne de la donnée non vide à tester
  With Sheets("Stock")     ' feuille source

  Derlig = Range("E" & Rows.Count).End(xlUp).Row
  For i = Derlig To 1 Step -1
    If .Cells(i, 5).Value <> "" Then
      .Cells(i, 5).EntireRow.Copy
    Rows(ActiveCell.Row).Insert
    End If
    Next
  End With

    Sheets("Stock").Range("E13:E8000").ClearContents
    'Application.ScreenUpdating = True
End Sub

Dans l'état, le résultat est acceptable même si je n'ai pas pourquoi une blanche s'insère avec les lignes collées

Je remercie par avance, ceux qui prendront le temps de m'éclairer de leur science,

Prenez soin,

Cordialement,

Bonsoir,

je n'ai pas mieux :

Sub Inserer_Article()
    Application.ScreenUpdating = False
    Dim Derlig As Long, I
    Sheets("Panier").Activate
    With Sheets("Stock")
        Derlig = .Range("E" & Rows.Count).End(xlUp).Row
        For I = Derlig To 13 Step -1
            If .Cells(I, 5).Value <> "" Then
                .Cells(I, 5).EntireRow.Copy
                Rows(ActiveCell.Row).Insert
            End If
        Next
        .Range("E13:E" & Derlig).ClearContents
    End With
End Sub

Si ce n'est le fait de supprimer des variables qui ne servent pas...
Après pourquoi à partir de la cellule sélectionnée ? C'est un choix volontaire ?
Je fini la boucle à la ligne 13 car dans votre code vous effacez de 13 à "plus soif"...

@ bientôt

LouReeD

Merci d'avoir pris le temps LouReeD,

C'est appréciable alors quand en plus ça marche encore mieux...c'est trop kiffant

Ok pour les variables (reliquats de mes nombreuses tentative certainement)

Après pourquoi à partir de la cellule sélectionnée ? C'est un choix volontaire ? --> C'est pour me permettre de rajouter des lignes dans mon Panier à l'endroit souhaité (ligne ou la cellule est active) (Mon panier étant sectorisé (pièces, accessoires, ...)

Je fini la boucle à la ligne 13 car dans votre code vous effacez de 13 à "plus soif"...--> Les lignes de 1 à 12 sont déjà occupées et je ne souhaite pas les effacés ( sortes d'entête)

Merci encore,

Merci @ vous pour votre retour et remerciement !

@ bientôt

LouReeD

Rechercher des sujets similaires à "optimisation fiabilisation bout code"