Extraction données

Bonjour,

Je voudrai savoir comment à partir de donnés spécifiques dans un tableau, peut on lui demander d'afficher seulement les lignes qui correspondent .

Je m'explique dans mon exemple en pj disons que si un marché en colonne A est un service et qu'il si il est encore en cours donc la colonne Y.

Je souhaite que les info de B C et R s'affiche dans un autre tableau.

Suis je claire ?

7exemple.xlsx (11.14 Ko)

Merci pour votre aide.

HP

bonjour

normalement pret l'usage pour 150 extractions en tablo2

4hpietaterra.xlsx (20.99 Ko)

cordialement

Bonjour le fil, bonjour le forum,

Une proposition VBA full comment (ajoute un onglet à ton fichier) :

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Date 'déclare la variable D (Date)
Dim I As Integer 'déclare la variable I (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 OS = Worksheets("Feuil1") 'définit l'onglet source OS
Set OD = Worksheets("Feuil2") 'définit l'onglet destination OD
OD.Range("A1").CurrentRegion.ClearContents 'vide le conenu de l'onglet OD
TV = OS.Range("A1").CurrentRegion 'défint le tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    D = DateSerial(TV(I, 25), 12, 31) 'définit la date D (dernier jour de l'année en colonne 25 de TV (=> colonne Y)
    If Date < D Then 'condition : si la date d'aujourd'hui est inférieure à la date D
        ReDim Preserve TL(1 To 3, 1 To K) 'redimensionne le tableau des lignes TL (3 lignes, K colonnes)
        TL(1, K) = TV(I, 2) 'récupere le Numéro de marché dans la ligne 1 de TL
        TL(2, K) = TV(I, 3) 'récupère le N° SAP dans la ligne 2 de TL
        TL(3, K) = TV(I, 18) 'récupère le titulaire du marché dans la ligne 3 de TL
        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
If K > 1 Then 'condition : si K est supérieure à 1
    OD.Range("A1") = "Numéro de marché" 'écrit dans A1
    OD.Range("B1") = "N° SAP" 'écrit dans B1
    OD.Range("C1") = "titulaire du marché" 'écrit dans C1
    OD.Range("A2").Resize(K - 1, 3).Value = Application.Transpose(TL) 'renvoie dans A2 redimensionnée le tableau TL transposé
    OD.Columns("A:D").AutoFit 'ajuste la valeur des colonne A à C
End If 'fin de la condition
End Sub

Super merci à vous pour votre aide.

Bonne journée à vous

Bonjour hpietraterra,

Voici un essai en pièce jointe:

1hpietraterra.xlsm (220.49 Ko)

Merci à vous pour votre implication et votre réactivité

juste une question quand je l'applique sur le doc original il y a un problème avec cette partie

For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)

D = DateSerial(TV(I, 25), 12, 31) 'définit la date D (dernier jour de l'année en colonne 25 de TV (=> colonne Y)

Rechercher des sujets similaires à "extraction donnees"