Copie de ligne fonction de la valeur de la dernière cellule

Bonjour à vous,

J'ai une feuille excel avec un tableau de 26 lignes avec des valeurs numériques dans la première colonne,

je doit copier les lignes ayant une valeur numérique dans la première colonne supérieure à 999 dans une autre feuille dans le même classeur.

Mais je ne réussi pas à copier uniquement les lignes qu'il me faut, je me retrouve avec le même tableau sur la seconde feuille.

Quelqu'un aurait une solution à me proposer ?

30synthese-rfq.xlsm (41.37 Ko)

Bonjour,

Je sais pas

Bonjour le fil, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Dim S As Worksheet 'déclare la variable S (onglet Source)
Dim D As Worksheet 'déclare la variable D (onglet Destination)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim NL As Integer 'déclare la variable NL (Nombre de Lignes)
Dim NC As Byte 'déclare la variable NC (Nombre de Colonnes)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)

Set S = Worksheets("SynthRFQ") 'définit l'onglet S
Set D = Worksheets("Feuil1") 'définit l'onglet D
D.Range("A1").CurrentRegion.ClearContents 'efface d'éventuelles anciennes données dans l'onglet D
TV = S.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
NL = UBound(TV, 1) 'définit le nombre de lignes NL du tableau des valeurs TV
NC = UBound(TV, 2) 'définit le nombre de colonnes NC du tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To NL 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    If TV(I, 1) > 999 Then 'condition : si la donnée ligne I colonne 1 de TV est supérieure à 999
        ReDim Preserve TL(1 To NC, 1 To K) 'redimensionne le tableau des lignes TL (autant de lignes que TV a de colonnes, K colonnes)
        For J = 1 To NC 'boucle 2 : sur toutes les colonnes du tableau des valeurs TV
            TL(J, K) = TV(I, J) 'récupère dans la ligne J de TL la valeur en colonne J de TV (= Transposition)
        Next J 'prochaine colonne de la boucle 2
        K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle 1
'si K est supérieure à 1, renvoie dans A1 redimensionnée de l'onglet D, le tableau TL transposé
If K > 1 Then D.Range("A1").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
D.Activate 'active l'onglet D
End Sub

Merci ThauThéme pour ta réponse,

ça marche nickel, merci bien.

Bonjour à tous

Avec macro (sans tableau)

23synthese-rfq.xlsm (43.94 Ko)
Rechercher des sujets similaires à "copie ligne fonction valeur derniere"