Extraire des données d'une feuille sur une autre avec un critere

alainca31

XLDnaute Nouveau
Bonjour à tous
J'ai un classeur avec deux feuilles, une avec l'ensemble des données et l'autre pour avoir le résultat de la recherche.

La première feuille comprend les données d'une personne avec une colonne ou on indique la date de son dernier stage la colonne suivante la date ou il doit être recyclé.
J'arrive à bien extraire en entrant par exemple 2014 sur la deuxième feuille (en utilisant une formule par ligne)
mais cela m'oblige à mettre la formule sur toutes les ligne de la deuxième feuille.
Ce que je souhaiterai c'est que quand dans la deuxième feuille j'entre 2014 toute les ligne comportant 2014 dans la feuille 1 s'affiche.
Je vous joint mon fichier qui doit être plus parlant merci de votre aide
Cordialement
Alainca31
 

Pièces jointes

  • Suivi emb 2 ans 2013-1.xls
    62 KB · Affichages: 46

Staple1600

XLDnaute Barbatruc
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour à tous

alainca31
Voici une possibilité avec VBA et le filtre automatique
(Fonctionne si au préalable on dé-fusionne la cellule B8 en Feuil2)
Code VBA à mettre dans le code de la feuille (ici Feuil2)
-> clic-droit sur l'ongelt -> Visualiser le code : ici copier/coller le code VBA ci-dessous
(NB: test OK avec la PJ du fil sur mon PC)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim critz, pf As Range
Application.ScreenUpdating = False
With Target.Range("A1")
If .Address = "$B$3" Then
Rows("8:1000").Clear
Sheets("Formation Exploit").Range("$A$6:$F$100").AutoFilter
critz = .Value
Sheets("Formation Exploit").Range("$A$6:$F$100").AutoFilter Field:=6, Criteria1:=critz
Set pf = Sheets("Formation Exploit").[_FilterDataBase]
pf.Columns(1).SpecialCells(xlCellTypeVisible).Copy
Range("B8").PasteSpecial xlValues
pf.Columns(3).SpecialCells(xlCellTypeVisible).Copy
Range("D8").PasteSpecial xlValues
pf.Columns(4).SpecialCells(xlCellTypeVisible).Copy
Range("E8").PasteSpecial xlValues
Rows(8).EntireRow.Delete
End If
End With
Range("B3").Select
End Sub
 

Modeste

XLDnaute Barbatruc
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour alainca31,
Salut JM :)

Une autre proposition, par formule matricielle: en B8
Code:
=INDEX('Formation Exploit'!$A$7:$A$99;PETITE.VALEUR(SI('Formation Exploit'!$F$7:$F$99=$B$3;LIGNE('Formation Exploit'!$F$7:$F$99)-6);LIGNES($1:1)))
Valider à l'aide de Ctrl+Shift+Enter, puis recopier vers le bas.

Les messages d'erreur peuvent être masqués ... dis-nous si tu as besoin d'aide (ou regarde du côté de la fonction SIERREUR)

Si les formules matricielles te semblent trop compliquées ou que tu crains le ralentissement des calculs -si tu as de gros volumes à traiter- on peut "alléger", à condition d'utiliser une colone "intermédiaire" dans ta feuille "Formation Exploit" ... ici aussi, dis-nous ...
 

Staple1600

XLDnaute Barbatruc
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour Modeste ;)

Modeste
Ah oui, c'est plus mieux ainsi, en formule et pis c'est plus simple.
J'oublie trop souvent la voie des formules.:eek:
Si je pouvais je m'autofesserai mais j'ai le séant trop fragile ;)
 

Modeste

XLDnaute Barbatruc
Re : Extraire des données d'une feuille sur une autre avec un critere

Re-bonjour le monde,

Ma tendre et néanmoins inoxydable agrafe, je ne suis pas persuadé que ce soit plus mieux, par contre les gourmands apprécieront d'avoir l'embarras du choix :rolleyes:

Je ne sais trop, par contre ce que vient faire ici le fragile équilibre des océans :eek:
 

Staple1600

XLDnaute Barbatruc
Re : Extraire des données d'une feuille sur une autre avec un critere

Re

Modeste
Et encore personne n'a encore évoqué ici le TCD
Sinon le choix serait alors vraiment dans l’embarras ;)

PS: Je rouille mais de l'intérieur ;) et sois certain que je fais rarement de vagues avec mon séant (qui est souvent en équilibre entre vba et formula) mais au demeurant fragile, et ce de plus en plus, les ans passant.
 

Regueiro

XLDnaute Impliqué
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour à Tous
Une autre variante avec un tableau
La zone de critère pour extraction se trouve sur la Feuille Recherche
Possibilité d'extraction avec plusieurs critères
Section
Fonct.
etc


Code:
Sub ExtractAutreFeuille()
Set F1 = Sheets("Recherche")
    Range("Tableau1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange _
        :=F1.Range("C3:H4"), CopyToRange:=F1.Range("C7:E7"), Unique:=True
End Sub

Sub Nettoyage()
Set F1 = Sheets("Recherche")
maplage = [H13].Value
F1.Range(maplage).Clear
'F1.Range("C8:E" & [C65536].End(xlUp).Row).Clear
End Sub

Avec des Données-Validation mise à jour sans doublons sur la Feuille Recherche
Voir Fichier en annexe
A+
 

Pièces jointes

  • XLD_Extraction avec crritere..xlsm
    40.4 KB · Affichages: 56

alainca31

XLDnaute Nouveau
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour
Comme dit tout à l'heure cela fonctionne bien, mais si je rajoute un autre stage sur la feuille 1, comment sur la feuille recherche j'ai la même extraction, exemple
si sur le stage RPP de la feuille recherche je mets 2014 en H4 et 2015 en O4 du stage secourisme;
Comment avoir l'extraction en C8 pour le stage RPP et en J8 pour le stage secourisme.
Désole mais je suis pas au top sur Excel
Cordialement
Alainca31
Je vous joints le fichier
 

Pièces jointes

  • FORMATION 2.xlsm
    43.4 KB · Affichages: 43

Regueiro

XLDnaute Impliqué
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonsoir Le Forum, Alainca31 ( Alias Philippe Cornu de Gaz de France ) ??:mad:
Ton fichier en retour avec les modifs demandées
A+
 

Pièces jointes

  • XLD_Extraction_Criteres.xlsm
    43.5 KB · Affichages: 36

alainca31

XLDnaute Nouveau
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour
Merci cela fonctionne bien pour 2 stages, maintenant je voudrai rajouter sur la feuille formation exploit un autre stage et après un autre jusqu'à 12 stages.
J'ai écrit ceci mais je pense que j'ai loupé une phase: merci si c'est possible de m'expliquer le code

Sub ExtractRPP()
Set F1 = Sheets("Recherche")
Range("Tableau1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange _
:=F1.Range("C3:h4"), CopyToRange:=F1.Range("C7:E7"), Unique:=True
End Sub
Sub ExtractSECOUR()
Set F1 = Sheets("Recherche")
Range("Tableau1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange _
:=F1.Range("J3:Q4"), CopyToRange:=F1.Range("J7:L7"), Unique:=True
End Sub
Sub Extractincend()
Set F1 = Sheets("Recherche")
Range("Tableau1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange _
:=F1.Range("r3:y4"), CopyToRange:=F1.Range("r7:t7"), Unique:=True
End Sub

Cordialement
Alainca31
 

Pièces jointes

  • FORMATION 3.xlsm
    49 KB · Affichages: 39

Regueiro

XLDnaute Impliqué
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour Le Forum, Alainca31
Dans la Feuille "Formation Exploit"
Tu dois redimensionner ton tableau1
Il ne prend pas en compte la colonne J et K


Code:
Sub Extractincend()
Set F1 = Sheets("Recherche")
    Range("Tableau1[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange _
        :=F1.Range("r3:W4"), CopyToRange:=F1.Range("r7:t7"), Unique:=True
End Sub
 

Pièces jointes

  • XLD_Critere-formation-3.xlsm
    47.3 KB · Affichages: 52

alainca31

XLDnaute Nouveau
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour Regueiro

J'ai bien saisi maintenant la problématique que j'avais sur le tableau, par contre je n'arrive pas à voir pourquoi quand je modifie une date dans la feuille "formation exploit colonne G/I/K/M " dans la cellule "H4" elle apparait mais pas pas dans les cellules "O4" / "W4" / "AE4" de la feuille "Recherche"
Merci
Cordialement
 

Regueiro

XLDnaute Impliqué
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour à tous, Alainca31
Pour les données/validation des cellules H4 / O4 et W4 la source n'est pas dynamique.
Elle ne se mets pas à jour automatiquement.
La source est fixe, c'est à dire :
;2012;2013;2014;2015
A+
 

alainca31

XLDnaute Nouveau
Re : Extraire des données d'une feuille sur une autre avec un critere

Bonjour Regueiro
Puisque la mise à jour n'est pas automatique, peut on à partir d'une cellule ou on indique l'année voulu extraire les données dans la feuille recherche et de les classer par stage.
Le but du programme est de récupérer les données de la feuille " formation Exploit'" sur une autre feuille, pour préparer la programmation des stages de l'année suivante. sachant que si on a fait un stage en 2011 le recyclage de ce stage est en 2014 et c'est bien la colonne de recyclage de chaque stage qui est importante puisque le cycle de recyclage n'est pas forcement le même en fonction des stages.
Merci de ton aide
Cordialement
Alainca31
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 240
Membres
103 162
dernier inscrit
fcfg