extraction de valeur d'un tableau

  • Initiateur de la discussion Initiateur de la discussion joums
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

joums

XLDnaute Occasionnel
bonjour à tous,

Je cherche à copier des valeurs par macro.
Je m'explique, dans un tableau avec des centaines de lignes
et je voudrais récuperer toutes les lignes selon un criteres précis spécifié dans une autre feuille.
Exemple : dans mon tableau j'ai plusieurs type de véhicule (voiture/camion etc...) ; et j'aimerai récuperer toutes les lignes concernant les voitures dans l'autre feuille
Ci-joint un fichier test
Regarde la pièce jointe fichier test.xls
Merci de votre aide
A bientot
 

Pièces jointes

Re : extraction de valeur d'un tableau

Bonsoir Joums,

Le filtre élaboré semble être la solution la plus simple pour ton cas!

Si besoin de plus de détail, regarde sur le forum (et/ou dans l'aide Excel) à "filtre élaboré" tu trouveras des tonnes de posts résolus correspondant à ta question.

Bonne lecture
 
Re : extraction de valeur d'un tableau

Bonjour,
Merci pour ta réponse, j'avais pensé effectivement au filtre élaboré mais finalement ce n'est pas adapté à mon cas.
En effet, mon tableau de base peut comporter des miliers de lignes
et j'ai également de nombreux critères retenu
Dans mon cas, dans la feuil1, si j'ai 10 critères (voiture, quad, camion etc....) je souhaite que les lignes du détail de ces critères du tableau de base s'affiche.
En faisant chaque critères 1 à 1 avec le filtre élaboré, ca serait très long.
j'espere ne pas avoir trop confu
 
Re : extraction de valeur d'un tableau

Bonjour Roger,

Merci pour ton approche, je me rapproche de ce que je veux grâce à ton code.
Il y a juste une subtilité que j'ai omis de dire :
-Les lignes de la feuille détail doivent être insérer dans l'onglet tableau pour ne pas supprimer les lignes déjà présente

-La condition est présente dans plusieurs lignes.
Ex: Celllue B4 condition = voiture donc mettre tous les résultats de voiture en dessous.
!! Insérer les lignes pour ne pas "écraser" les lignes suivantes car
Celllue B6 condition = camion donc mettre tous les résultats de camion en dessous.


J'ai compris une partie de ton code (le début), pourrais tu m'expliquer par des commentaires le fonctionnement de la macro.
Encore merci
bonne journée
 
Re : extraction de valeur d'un tableau

Une approche dans ce fichier

Excellent , moi je serais interréssé par cette solution .
Mais quels champs faut ils changer pour que cela reprennent l ensemble des champs constituant la ligne

dans ton exemple "voiture" cela s arrete a la colonne D de l onglet " detail"
mais si cette ligne allait jusqu à ( exemple ) >à la colonne Z ou plus


Merci
 
Re : extraction de valeur d'un tableau

Bonjour,

Pour avoir la ligne entiere tu dois modifier la selection, cela doit concerné le mot offset et indiquer un autre nombre.
Je trouve pas la solution pour insérer des lignes et ensuite aller à l'autre condition
Si quelqu'un avait une idée......
 
Re : extraction de valeur d'un tableau

Bonjour à tous
Code commenté :
Code:
[COLOR="DarkSlateGray"]Sub sélectionner_Code_1()
Dim oDat, sDat, sVal As String, i As Long, j As Long

[COLOR="SeaGreen"][B]'Sélection des codes A7:Dx où x est le n° de la ligne contenant la dernière donnée.
'Pour augmenter le nombre de colonnes sélectionnées, augmenter la valeur 3 dans Offset(0, 3)
'(Mettre 4 pour atteindre la colonne E, 5 pour F...
'Les données sont enregistrées dans le tableau oDat.[/B][/COLOR]
   With Sheets("Detail")
      oDat = .Range(.Cells(7, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 3)).Value
   End With
[COLOR="SeaGreen"][B]'Traitement des données.[/B][/COLOR]
   With Sheets("Tableau")
      sVal = .[B4].Value [COLOR="SeaGreen"][B]'Lecture du code recherché[/B][/COLOR]
      ReDim sDat(1 To 4, 1 To 1) [COLOR="SeaGreen"][B]'Préparation d'un tableau pour enregistrer les lignes
'intéressantes. Ce tableau à le nombre de colonnes du tableau oDat pour nombre de lignes :
'si on prend 5 colonnes, mettre sDat(1 To 5, 1 To 1). Pour 6 colonnes, sDat(1 To 6, 1 To 1)...[/B][/COLOR]
      For i = 1 To UBound(oDat, 1) [COLOR="SeaGreen"][B]'On va parcourir toutes les lignes de la colonne 1 (parcequ'
'on cherche un Code1) du tableau oDat.
'Si on veut chercher un Code2, mettre UBound(oDat, 2). Pour un Code3 : UBound(oDat, 3)...[/B][/COLOR]
         If oDat(i, 1) = sVal Then [COLOR="SeaGreen"][B]'Si on trouve le code recherché...[/B][/COLOR]
            For j = 1 To UBound(sDat, 1) [COLOR="SeaGreen"][B]'...on met les valeurs de la ligne correspondante dans
'la dernière colonne du tableau sDat...[/B][/COLOR]
               sDat(j, UBound(sDat, 2)) = oDat(i, j)
            Next j
            ReDim Preserve sDat(1 To 4, 1 To 1 + UBound(sDat, 2)) [COLOR="SeaGreen"][B]'...et on ajoute une nouvelle
'colonne au tableau sDat. Ne pas oublier de modifier le 4 si on prend plus ou moins de colonnes.[/B][/COLOR]
         End If
      Next i
      sDat = Application.Transpose(sDat) [COLOR="SeaGreen"][B]'Transposition des colonnes en lignes...
'Puis vidage de la plage où on va écrire les données de ce tableau ; pour 4 colonnes :[/B][/COLOR]
      .Range(.Cells(4, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 3)).Offset(1, 0).ClearContents
[COLOR="SeaGreen"][B]'Pour 5 colonnes, on mettra :
'      .Range(.Cells(4, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 4)).Offset(1, 0).ClearContents
'Enfin, écriture des données dans la feuille "Tableau"[/B][/COLOR]
      .Range(.Cells(5, 1), .Cells(4 + UBound(sDat, 1), 4)).Value = sDat
[COLOR="SeaGreen"][B]'Pour 5 colonnes, on mettra :
'      .Range(.Cells(5, 1), .Cells(4 + UBound(sDat, 1), 5)).Value = sDat[/B][/COLOR]
      .Activate [COLOR="SeaGreen"][B]'Affichage de la feuille "Tableau"[/B][/COLOR]
   End With
End Sub[/COLOR]
Bon courage !
ROGER2327
#1822
 
Re : extraction de valeur d'un tableau

Code commenté etc....

Si tu mets ceci en page " Detail "
Code 1 Code 2 Code 3 Code 4 Code 5 Code 6 Code 7
Voiture chat 1 chien1 maison1 dictee1 attiree1 loup1
Voiture chat 2 chien2 maison2 dictee2 attiree2 loup2
Camion chat 3 chien3 maison3 dictee3 attiree3 loup3

Tableau tu cherches ""Voiture"""

Voiture chat 1 chien1 maison1
Voiture chat 2 chien2 maison2

ci joint ton extraction

cela ne fonctionne pas 😱 😱

😡
 
Re : extraction de valeur d'un tableau

Code commenté etc....

Si tu mets ceci en page " Detail "
Code 1 Code 2 Code 3 Code 4 Code 5 Code 6 Code 7
Voiture chat 1 chien1 maison1 dictee1 attiree1 loup1
Voiture chat 2 chien2 maison2 dictee2 attiree2 loup2
Camion chat 3 chien3 maison3 dictee3 attiree3 loup3

Tableau tu cherches ""Voiture"""

Voiture chat 1 chien1 maison1
Voiture chat 2 chien2 maison2

ci joint ton extraction

cela ne fonctionne pas 😱 😱

😡
D'abord, bonsoir reve24
(ça ne mange pas de pain...)
Pour le reste, je crains n'avoir pas compris votre demande.
A moins qu'il s'agisse d'étendre la sélection des données à plus de quatre colonnes dans la feuille Detail ? Si c'est cela, je ne peux que vous renvoyer à mon message #8. Il me semble que tous éléments pour faire cette modification y sont donnés. Si ce n'est pas le cas, attendez que quelqu'un d'autre réponde car je ne vois pas ce que je pourrais ajouter aux commentaires que j'ai écrit.​
ROGER2327
#1826
 
Re : extraction de valeur d'un tableau

Bonjour à tous,

Merci Roger 2327 pour les explications de ton code, c'est un peu clair à présent.
Dans mon cas, je souhaite inserer les lignes puis rechercher une autre condition.

Ton approche prend en compte une seule condition,
Faudrait-il faire une boucle du style :
Si E4= code 1 (par exemple voiture) alors chercher et inserer les lignes correspondante de l'onglet détail sinon passer à la ligne suivante.

En E.. il touvera à nouveau un code1 (camion) puis inserera les lignes de l'onglet détail
et ainsi de suite.
ci -joint le fichier test
Merci
 

Pièces jointes

Re : extraction de valeur d'un tableau

Re...
Je vous propose une solution un peu différente de ce que vous décrivez.
L'intérêt de cette proposition est, d'une part, qu'elle est simple à concevoir en modifiant le code de la précédente procédure ; d'autre part qu'elle est plus rapide à l'exécution qu'une procédure faisant intervenir des insertions de lignes. Ce dernier point n'est pas sensible lorsqu'on travaille sur quelques lignes de données. Mais si on doit traiter 10 000 lignes...
Voyez et dites-moi ce que vous en pensez.​
ROGER2327
#1830
 

Pièces jointes

Re : extraction de valeur d'un tableau

Re,
c'est pas vraiment ce que je recherche meme si c'est une solution qui aidera pas mal de personne.
Je me suis permis de modifier le fichier "test" afin de mieux vous faire comprendre ce que j'essaie de faire.
 

Pièces jointes

Re : extraction de valeur d'un tableau

Re,
C'est effectivement l'idée que je me fais de la macro,
elle fonctionne mais partiellement, car certaines données ne sont pas prises en compte
je vais regarder ta macro pour m'en inspirer en espérant pouvoir modifier les petites anomalies.
En effet, j'ai l'impression que les données de la feuille détail ne sont pas toutes prises en compte.
La boucle ne prend pas en compte tous les critères.
Merci grâce à toi, je commence à apprendre et comprendre certaines choses.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
518
Retour