Adapter macro

Bonjour le forum

Actuellement j'ai une macro qui copie les données de la feuil1(A2:L26) et recopie ces données dans la feuil3 en A1.

Puis je les trie par la colonne L en ordre decroissant et j'efface les données qui sont inférieures a 3 dans le fichier exemple.

Quand je refait le test je rajoute les nouvelles données a la suite des données deja inscrites en feuil3.

Je voudrais que la macro fasse toutes les opérations mais comment l'adapter.

merci

9macrotest.xlsm (29.26 Ko)

Bonjour,

Actuellement, dans votre code vous avez :

ActiveWorkbook.Worksheets("Feuil3").Sort.SortFields.Add Key:=Range("L1:L25")

supprimez les chiffres pour mettre :

ActiveWorkbook.Worksheets("Feuil3").Sort.SortFields.Add Key:=Range("L:L")

With ActiveWorkbook.Worksheets("Feuil3").Sort

.SetRange Range("A:L")

Le tri se fera sur le colonnes sans prise en compte de la fin de fichier il trie de la ligne 1 à X

Là, où je ne comprends pas ; qu’est ce que vous voulez effacer le contenu des cellules inférieures à 3 ou la ligne dont la valeur de la colonne l est inférieure à 3

Phil972

Bonsoir,

Sub Tft()
    Dim n%, i%, PlTft
    With ActiveSheet
        n = .Cells(.Rows.Count, 12).End(xlUp).Row: i = 1
        .Range("A2:L" & n).Sort key1:=.Range("L2"), order1:=xlDescending, Header:=xlNo
        Do While .Cells(i + 1, 12) >= 3
            i = i + 1
        Loop
        If i > 1 Then
            i = IIf(i <= n, i, n)
            PlTft = .Range("A2:L" & i).Value
        End If
        .Range("A2:L" & n).ClearContents
    End With
    If i = 1 Then Exit Sub
    With Worksheets("Feuil3")
        n = .Cells(.Rows.Count, 12).End(xlUp).Row + 1: i = UBound(PlTft, 1)
        .Range("A" & n).Resize(i, 12) = PlTft
        .Activate
    End With
End Sub

Pour te changer du code enregistré... et découvrir un peu VBA !

Cordialement.

Bonjour Phil972,Mferrand, le forum

merci pour vos codes.

un renseignement svp, dans mon classeur original j'ai des formules qui s'étendent de la colonne P a LC pour 300 combinaisons et sur 12800 lignes, le calcul se fait pour le moment trés rapidement mais quand je charge mon classeur il faut bien 4 a 5minutes et j'ai environ 150 000 combinaisons à traiter et 300 à chaque fois cela fait assez long.

Connaitriez-vous une façon plus rapide.

merci encore

Là c'est un autre problème. Dès lors qu'on a un volume important de formules ça rame ! C'est pour cela que pour garder de la souplesse on limite les formules avec du VBA... Mais il n'y a pas que ça qui peut ralentir, l'extension des feuilles (zone utilisée plus large que les données actuelles d'une feuille...), nombre de feuilles et autres éléments (formes, mises en formes...).

On a parfois intérêt à réduire la taille d'un classeur en externalisant (dans d'autres classeurs annexes) des éléments peu utilisés...

Il n'y a pas de réponse unique en la matière.

Bonjour MFerrand, le forum

Merci pour ces conseils, je vais essayer d'epurer mon classeur

a+

Rechercher des sujets similaires à "adapter macro"