Extraction données provenant d'une autre feuille de calcul

Bonjour,

Je me permets de solliciter le forum pour réaliser une macro en VBA sur un fichier Excel.

Je dois récupérer des données importantes d'une feuille de calcul elle-même issue d'une extraction d'un autre logiciel.

Vous trouverez à cet effet le classeur en PJ qui contient deux feuilles à savoir :

- extraction départ = données issues de l'extraction

- données importantes = données à conserver pour les traitements

Avant commencer, il faut supprimer les sous totaux sur toute la feuille.

Voici les éléments que je souhaiterais voir apparaître dans la feuille "données importantes" :

- colonne A : le CodeArt2 mais uniquement pour les produits commençant par la lettre W

- colonne B : la description longue de ces articles commençant par la lettre W

- colonne C : Stock_initial_Sa2

-colonne D : Cumul_aju_12

-colonne E : Cumul_ent_12

-colonne F : Cumul_sor_12

-colonne G : SA12

-colonne H : Valeurdpa

-colonne I : ValeurPMP

Ce sont les colonnes qui nous intéressent. Les autres n'ayant pas de contenu, elles pourront être supprimer de façon automatique.

Sachant que je souhaiterais que ces articles soient classés dans l'ordre décroissant de la valeurPMP (+ grand au + petit).

En espérant avoir été suffisamment clair et en vous remerciant par avance.

Je reste, bien entendu, disponible en cas de besoin.

EleveCG

Bonjour

ci,joint une proposition

1) j'ai changé le nom de tes feuilles car les noms sont trop longs

2) Mode emploi :

recopier extraction dans feuille Baserecup après l'avoir vidée des données antérieures

lancer la macro via Crtl+maj+T ou Menus développeur, bouton Macro, sélectionner trait et exécuter

le résultat apparaît dans Etat_Final

A tester avec tes éléments

A ta dispo si pb

Cordialement

FINDRH

Sauf erreur de ma part ...

Sub EXTRAIRE()
Cells(1, 1).CurrentRegion.Offset(2, 0).ClearContents
With Sheets("extraction_départ")
    lig = 2
    For i = 2 To .Cells(Rows.Count, "F").End(xlUp).Row
        If .Cells(i, "F") Like "W*" Then
            lig = lig + 1
            col = 1
            For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
                Cells(lig, col) = .Cells(i, Asc(Cells(1, j).Value) - 64)
                col = col + 1
            Next
        End If
    Next
End With
End Sub

reste à les classer ...

bonjour FINDRH , désolé je n'avais pas vu que tu avais répondu, je vais regarder ta proposition ...

Bonsoir Steelson

pas de pb pour moi, chacun a sa manière de répondre et il y a toujours matière pour apprendre de nouvelles syntaxes

Je suis toujours preneur des solutions autres et j'en apprends tous les jours

Bonne soirée

FINDRH

avec le tri

Sub trier()
    derligne = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A2:I" & derligne).Select
    ActiveWorkbook.Worksheets("Données importantes ").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Données importantes ").Sort.SortFields.Add Key:= _
        Range("I3:I" & derligne), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _
        :=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Données importantes ").Sort
        .SetRange Range("A2:I" & derligne)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Je vous remercie pour les réponses apportées, je vais analysé tout cela.

Rechercher des sujets similaires à "extraction donnees provenant feuille calcul"