Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

recuperer selon un critere des donnees d'un fichier en Vba

  • Initiateur de la discussion Initiateur de la discussion stanrourou
  • 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 !

S

stanrourou

Guest
bonjour,

je souhaite à l aide de vba copier selon un critere d'un fichier A (liste deroulante ) les données d'un fichier B en limitant au 10 premieres lignes à chaque fois. je vous joins un fichier pour expliquer merci d'avance de votre aide

Cdt Sophie
 

Pièces jointes

Dernière modification par un modérateur:
Re : recuperer selon un critere des donnees d'un fichier en Vba

Bonjour Sophie,

Les données en Feuille B sont toujours comme ça, le nom n'est pas sur chaque ligne ?

A te relire

Martial
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

Re,

Avec les données tels quelles sont dans la Feuille B, avec cette macro :

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, j&, k&
If Target.Address <> "$A$1" Then Exit Sub
Rows("6:16").ClearContents
k = 6
With Feuil2
  If Not IsError(Application.Match([A1], .Columns(1), 0)) Then
    i = Application.Match([A1], .Columns(1), 0)
    For j = i To i + 10
      Cells(k, 1) = [A1]
      Cells(k, 2) = .Cells(j, 2)
      Cells(k, 3) = .Cells(j, 3)
      If .Cells(j + 1, 1) <> "" Then Exit For
      k = k + 1
    Next
  End If
End With
End Sub

A+

Martial
 

Pièces jointes

Re : recuperer selon un critere des donnees d'un fichier en Vba

Petite modif, car il y avait une erreur si c'était la dernière personne recherchée.

VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, j&, k&
If Target.Address <> "$A$1" Then Exit Sub
Rows("6:16").ClearContents
k = 6
With Feuil2
  If Not IsError(Application.Match([A1], .Columns(1), 0)) Then
    i = Application.Match([A1], .Columns(1), 0)
    For j = i To i + 10
      Cells(k, 1) = [A1]
      Cells(k, 2) = .Cells(j, 2)
      Cells(k, 3) = .Cells(j, 3)
      If .Cells(j + 1, 1) <> "" Or .Cells(j + 1, 2) = "" Then Exit For
      k = k + 1
    Next
  End If
End With
End Sub

A+

Martial
 

Pièces jointes

Re : recuperer selon un critere des donnees d'un fichier en Vba

Bonjour,
Merci bcp c ca que je veux cependant je ne vois pas ta macro peux tu me dire comme l afficher.
cdt
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

Bonjour stanrourou,

Pour voir la macro, il faut faire Alt+F11, une fenêtre (Visual Basic Editor) s'ouvre, en partie droite tu as la macro.

Voila la macro avec les explications en vert :

VB:
Option Explicit
'Se déclenche lorsqu'une valeur est changée dans la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
'Déclaration des variables
Dim i&, j&, k&
'Si la cellule changée est différente de A1 alors on sort
If Target.Address <> "$A$1" Then Exit Sub
'Sinon on continue
'Suppression des valeurs des lignes de 6 à 16
Rows("6:16").ClearContents
'Affecte la valeur de départ pour ta ligne
k = 6
'Avec la Feuil2
With Feuil2
  'Si l'on trouve la valeur de A1 dans la colonne A de la Feuil2
  'Si la valeur n'est pas trouvée on va à la suite
  If Not IsError(Application.Match([A1], .Columns(1), 0)) Then
    'i correspondant à la ligne trouvée pour la valeur de A1 en Feuil2
    i = Application.Match([A1], .Columns(1), 0)
    'Pour j allant de 1 à 10
    For j = i To i + 10
      'On copie les valeurs de la Feuil2 correspondant à la valeur recherchée
      Cells(k, 1) = [A1]
      'Pour la colonne B (2), on copie la valeur de la Feuil2 en Feuil1
      Cells(k, 2) = .Cells(j, 2)
      Cells(k, 3) = .Cells(j, 3)
      'Si la ligne suivante de Feuil2 (en colonne A) n'est pas vide
      'OU si la ligne suivante de Feuil2 (en colonne B) est vide,
      'Alors on sort de la boucle
      If .Cells(j + 1, 1) <> "" Or .Cells(j + 1, 2) = "" Then Exit For
      'On ajoute 1 à la ligne de Feuil1
      k = k + 1
    'On passe à la ligne suivante
    Next
  End If
End With
End Sub

A+

Martial
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

Bonsoir,

Merci beaucoup ca va m aider , je suis que debutante mais je voudrais vraiment y arriver.
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

Bonsoir stanrourou,

On est tous débutant à un moment ou à un autre, le tout est d'essayer et de s'accrocher.

N'hésites pas à poser des questions, le forum est là pour ça.

A+
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

bonjour,

Impeccable la macro fonctionne tres bien. Cependant j essaie de l'adapter sur un autre produit et j ai un souci je m'explique dans ma premiere colonne j ai l'ordre des aprreciations 1,2,3,4,5... et je souhaite coller a partir de la ligne 28 dans la 2eme colonne, je me tire les cheveux je suis sure que c tout bete...
Merci d'avance de votre aide
 

Pièces jointes

Dernière modification par un modérateur:
Re : recuperer selon un critere des donnees d'un fichier en Vba

Bonsoir stanrourou,

je m'explique dans ma premiere colonne j ai l'ordre des aprreciations 1,2,3,4,5... et je souhaite coller a partir de la ligne 28 dans la 2eme colonne

Désolé, je ne comprends pas ta demande.

Tu veux mettre en Feuille A, les données de la Feuil3, est-ce bien cela ?

Le déclencheur, c'est quoi ? Toujours la cellule C1 ? Qu'y aura-t-il dans cette celulle ? Les prénoms, les N° ? Que veux tu, la totalité ou toujours les 10 premiers ?

A te relire

Martial
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

bonsoir martial, oui je suis pas claire, alors , je dois effectivement recuperer les données de la feuil3 pour les mettre dans la feuille A a partir de ma liste deroulante, pour moi je devais partir de ma premiere macro et decaler mes colonnes mais rien a faire .

dans ma colonne 1 où ily a 1,2,3,4,5,6,7,8,9,10, cela correspondant toujours a mes 10 premiers. apres je ferai le total ds motifs BDO et autres.

cdt
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

dans c1 ce sont toujours les prénoms en liste deroulante, comme dans ma precedente demandedans dans mon fichier, Sophie, henri ou jean.

merci de ton aide
 
Re : recuperer selon un critere des donnees d'un fichier en Vba

Re,

Est-ce cela 😕

En changement :
- Nom de la feuille par "Feuil4"
- Modification 1 ou 2 colonne
- Code de sortie, comme toutes tes lignes sont remplies de la colonne 1, il fallait mettre
Code:
If .Cells(j, 1) <> .Cells(j + 1, 1) ...


A+

Martial
 

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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
589
  • Question Question
Réponses
7
Affichages
343
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…