Récupération des données par lignes

Bonjour à tous,

Je tiens à m'excuser, je ne connais pas très bien le langage Excel encore...J'ai essayer de faire une recherche dans les autres ''posts'' fait sur le forum mais malheureusement, ne connaissant pas trop le vocabulaire, j'ai fort probablement passé à côté. Je vous expose donc mon problème:

J'ai une liste de prix dans un onglet '''LISTE DE PRIX'' avec les colonnes suivantes: Item / fournisseur/ quantité /prix / escompte / coût total.

Cette liste doit contenir près de 200 lignes.

Dans un second onglet (SOMMAIRE), j'aimerais que SEULES les lignes aillant une information dans la colonne ''quantité'' se rapporte dans ce même onglet, de manière à créer un bordereau contenant uniquement les items de la liste de prix nécessaire.

Est-ce que l'un de vous pourrait m'aider svp? Se serait très très apprécié!

Merci d'avance.

Vasco

Bonjour vascoMorgado, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Dim LDP As Worksheet 'déclare la variable LDP (onglet Liste Des Prix)
Dim S As Worksheet 'déclare la variable S (onglet Sommaire)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
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 LDP = Worksheets("LISTE DES PRIX") 'définit l'onglet LDP
Set S = Worksheets("SOMMAIRE") 'définit l'onglet S
S.Range("A1").CurrentRegion.ClearContents 'efface d'eventuelles anciennes données
TV = LDP.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    If TV(I, 3) <> "" Then 'condition : si la donnée ligne I colonne 3 (= la quantité) n'est pas vide
        ReDim Preserve TL(1 To 6, 1 To K) 'redimensionne le tableau des lignes TL (6 lignes, K colonnes)
        For J = 1 To 6 'boucle 2 : sur les 6 colonnes J du tableau de valeurs TV
            TL(J, K) = TV(I, J) 'réupère en ligne J de TV 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 TL)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle 1
If K > 1 Then 'condition : si K est supérieure à un (au moins une occurrence treouvée)
    S.Range("A1").Resize(1, 6).Value = Application.Index(TV, 1) 'renvoie dans la ligne A1 redimensionnée de l'onglet S la première ligne du tableau TV
    S.Range("A2").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL) 'renvoie dans A2 redimensionnée le tableau TL transposé
End If 'fin de la condition
End Sub

Merci beaucoup ThauThème! J'essaye ça et je vous reviens! Ce sera une première pour moi!

Merci encore!

Vasco

Bonjour ThauThème, bonjour forum!

Merci beaucoup pour ton programme! Ça marche très bien :D:D:D!!!

Je n'ai que quelques dernières questions svp:

1- Si on ajoute des quantités ou de nouveaux articles dans l'onglet LISTE DE PRIX, est-ce que la macro met à jour le tableau SOMMAIRE ?

2- En ce moment, dans le test que j'ai fait, il y a 46 items avec des quantités dans mon tableau liste de prix, toutefois il n'apparait que les premières 29 lignes dans le tableau sommaire de la macro...Que dois-je faire pour que toutes les lignes avec des quantités y apparaissent?

Merci d'avance! Je te suis reconnaissant pour ton aide! C'est épatant de te voir aller dans tes explications! Chapeau!

Vasco

Re,

Bon, déjà évitons le croisement des mails perso et des posts sur le fil. Je suis perdu là.

Tu mes dis que ça marche pas par MP puis que ça marche sur le fil !... Reste sur le fil c'est mieux !

Ensuite, je ne suis pas devin. Si tu ne daignes pas mettre ton vrai fichier ou un fichier exemple reprenant la même structure que ton fichier original, je ne pourrai pas t'aider. Il faut que je puisse faire les mêmes test que toi pour voir ce qui ne va pas.

Bonjour Thauthème,

D'accord, bien reçu pour les messages!

Pour le reste, tu avais raison, j'avais fait de légères erreurs de tape à certains endroits. Maintenant tout marche à la perfection!

Grâce à toi, j'ai maintenant un fichier qui pourra me sauver un temps fou!

Merci encore et bonne fin de semaine!

Vasco

Rechercher des sujets similaires à "recuperation donnees lignes"