copier des données selon un critère d'une feuille à une autre

paulemilevictor

XLDnaute Nouveau
Bonjour,
Voici mon problème.
Dans une feuille 1 j'ai une liste de matériel, pour l'exemple j'en ai mis 14, mais bien sur cette liste est beaucoup plus long. La dernière colonne de mon tableau est mon critère de recherche. Selon des cas je mets en face de un ou plusieurs matériel le nom d'un ville (exemple "Paris"). Un matériel ne peut avoir qu'une seule ville.
Dans ma feuille 2 j'ai un tableau avec des critères qui correspondent à des critères de ma feuille 1. Ce que j'aimerai c'est qu'en écrivant le nom d'une ville en cellule "B1" de la 2° feuille, une macro cherche dans la feuille 1 les lignes de matériel correspondant au nom de la ville et vient les copier dans le tableau de ma feuille 2

J'espère avoir été le plus clair possible.

Merci d'avance pour vos propositions
 

Pièces jointes

  • Test.xls
    19.5 KB · Affichages: 54
  • Test.xls
    19.5 KB · Affichages: 51
  • Test.xls
    19.5 KB · Affichages: 54

Papou-net

XLDnaute Barbatruc
Re : copier des données selon un critère d'une feuille à une autre

Bonjour paulemilevictor, et bienvenue à toi,

Ci-joint une copie au format xlsm de ton fichier avec une macro événementielle dans le module Feuil2.

Cordialement.
 

Pièces jointes

  • Test paulemilevictor.xlsm
    17.1 KB · Affichages: 62

paulemilevictor

XLDnaute Nouveau
Re : copier des données selon un critère d'une feuille à une autre

Merci Papou-net pour ta solution, mais il y a un petit problème. Dans l'exemple que j'ai envoyé Angers à 2 possibilités et Paris en a 3. Si dans la case B1 de la feuille 2, je commence par écrire Paris, pas de soucis, j'ai bien les 3 véhicules qui s’inscrivent. Si ensuite je mets Angers, les 2 villes s'inscrivent bien mais la 3° ville de Paris reste. Est-il possible d'effacer d'abord les véhicules de la précédente saisie et ensuite de copier les véhicules de la nouvelle saisie. Enfin un truc de ce genre.

Merci encore pour ton aide
 

Papou-net

XLDnaute Barbatruc
Re : copier des données selon un critère d'une feuille à une autre

Bonjour paulemilevictor,

Il suffit pour celà de rajouter une ligne, comme sur la copie modifiée ci-jointe.

Cordialement.
 

Pièces jointes

  • Test 01 paulemilevictor.xlsm
    17.3 KB · Affichages: 54

paulemilevictor

XLDnaute Nouveau
Re : copier des données selon un critère d'une feuille à une autre

Bonjour Papou-net

Grâce à toi j'arrive à faire ce que je veux. j'ai adapté ta macro à mon tableau final et je suis à 99% d'avoir ce que je veux. Il me reste un problème
Dans mon tableau excel d'exemple en ligne, mes données se copient à partir de la ligne 5, dans mon classeur final, mes données doivent se copier à partir de la ligne 12. Je n'arrive pas à comprendre où je dois modifier la macro pour arriver à mon résultat.

Encore une nouvelle fois merci de ton aide

Paul Émile Victor
 

Papou-net

XLDnaute Barbatruc
Re : copier des données selon un critère d'une feuille à une autre

RE:

Pour démarrer à partir de la ligne 12, il te suffit de remplacer A5 par A12.

Ex:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Lg As Long, Ville As String

If Target.Address = "$B$1" Then
  Ville = UCase(Range("B1"))
  Lg = Range("A1").End(xlDown).Row + 1
  Range("A12:C" & Rows.Count).ClearContents
  For Each Cel In Feuil1.Range("E:E").SpecialCells(xlCellTypeConstants)
    If UCase(Cel) = Ville Then
      Range("A" & Lg & ":C" & Lg).Value = Feuil1.Range("A" & Cel.Row & ":C" & Cel.Row).Value
      Lg = Lg + 1
    End If
  Next
End If
End Sub
Cordialement.
 

paulemilevictor

XLDnaute Nouveau
Re : copier des données selon un critère d'une feuille à une autre

Bonjour Papou-net
super pour la macro. Mais j'ai un petit changement par rapport à mes tableaux (données et réception données). Pour faire vite ta macro marche si je copies des données dans des colonnes qui se suivent et que je colles ces données dans un autre tableau dont les colonnes suivent également.
Mais malheureusement j'ai du faire des modifications de tableau
Mon tableau de données comporte 15 colonnes ( de A à O)
Mon tableau de réception données comporte 12 colonnes (de A à L)
Les données se copient de cette façon :
Tableau données vers tableau réception données
colonne B > colonne B
colonne C > colonne F
colonne I > colonne H
colonne H > colonne G
Je me permets de coller la macro que tu as faite. Le pb est que je ne sais pas comment la modifier pour répondre à mon PB

Merci encore de ton aide

Ta macro
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Lg As Long, Ville As String

If Target.Address = "$B$1" Then
Ville = UCase(Range("B1"))
Lg = Range("A1").End(xlDown).Row + 1
Range("A12:C" & Rows.Count).ClearContents
For Each Cel In Feuil1.Range("E:E").SpecialCells(xlCellTypeConstants)
If UCase(Cel) = Ville Then
Range("A" & Lg & ":C" & Lg).Value = Feuil1.Range("A" & Cel.Row & ":C" & Cel.Row).Value
Lg = Lg + 1
End If
Next
End If
End Sub

Cordialement
 

Papou-net

XLDnaute Barbatruc
Re : copier des données selon un critère d'une feuille à une autre

Bonjour paulemilevictor,

Si j'ai bien compris la nouvelle structure de ton fichier, voici comment faire au plus simple:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Lg As Long, Ville As String

If Target.Address = "$B$1" Then
  Ville = UCase(Range("B1"))
  Lg = Range("A1").End(xlDown).Row + 1
  Range("A12:C" & Rows.Count).ClearContents
  For Each Cel In Feuil1.Range("E:E").SpecialCells(xlCellTypeConstants)
    If UCase(Cel) = Ville Then
      Range("B" & Lg).Value = Feuil1.Range("B" & Cel.Row).Value
      Range("F" & Lg).Value = Feuil1.Range("C" & Cel.Row).Value
      Range("H" & Lg).Value = Feuil1.Range("I" & Cel.Row).Value
      Range("G" & Lg).Value = Feuil1.Range("H" & Cel.Row).Value
      Lg = Lg + 1
    End If
  Next
End If
End Sub
Cordialement.
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Tri et Import
Réponses
4
Affichages
155

Statistiques des forums

Discussions
312 047
Messages
2 084 861
Membres
102 688
dernier inscrit
Biquet78