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

Suite...
Je me suis trompé de classeur dans le message #14. Je viens d'y mettre la dernière version : veuillez y aller voir.
(Je ne garantis pas qu'il n'y ait plus d'erreur : à vérifier !)​
ROGER2327
#1834
 
Re : extraction de valeur d'un tableau

ok merci
je viens de regarder, ca m'a l'air tout simplement parfait !!
je vais juste essayer d'apprendre le code, et le comprendre afin de modifier à ma convenance.
En effet, les criteres sont dans d'autre cellule et je vais tester sur le fichier final.
Encore merci,
j'espere que je vais réussir à tout comprendre dans votre code.😱

PS : dans le cas ou les criteres sont les uns en dessous des autres
les lignes sont copiées et non insérer ce qui pose un petit soucis
que faut il changer pour remedier à cette particularité ?
 
Dernière édition:
Re : extraction de valeur d'un tableau

Re...
Dans le souci de garder votre mise en forme, j'avais effectivement copié la première ligne de chaque groupe extrait et inséré les autres.
Voici une autre version où toutes les lignes sont insérées.
Il y a évidemment des modifications dans le code :
Code:
[COLOR="DarkSlateGray"]Sub sélectionner_insérer_Code_2()
Dim oDat, oVal, sDat, sVal As String, nDat As Long, p As Long, i As Long, j As Long
   Application.ScreenUpdating = False
   With Sheets("Detail")
      oDat = .Range(.Cells(7, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 3)).Value
   End With
   With Sheets("Tableau")
      oVal = .Range(.Cells(1, 6), .Cells(.Rows.Count, 6).End(xlUp).Offset(1, 0)).Value
      For p = UBound(oVal, 1) To 1 Step -1
         sVal = oVal(p, 1)
         If sVal <> "" Then
            ReDim sDat(1 To 4, 1 To 1)
            nDat = 0
            For i = 1 To UBound(oDat, 1)
               If oDat(i, 1) = sVal Then
                  nDat = 1 + nDat
                  ReDim Preserve sDat(1 To 4, 1 To nDat)
                  For j = 1 To UBound(sDat, 1)
                     sDat(j, nDat) = oDat(i, j)
                  Next j
               End If
            Next i
            If nDat Then
               sDat = Application.Transpose(sDat)
               .Range(.Rows(p + 1), .Rows(p + nDat)).EntireRow.Insert Shift:=xlDown
               .Range(.Cells(p + 1, 1), .Cells(p + nDat, 4)).Value = sDat
            End If
         End If
      Next p
   End With
   Application.ScreenUpdating = True
End Sub[/COLOR]
ROGER2327
#1835
 

Pièces jointes

- 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