Extraction données d'une feuille à une autre

Bonjour à tous,

Je suis en train de commencer à apprendre VBA mais ce que j'ai envie de faire me parait assez compliqué. J'ai trouvée une discussion similaire sur le sujet mais elle est résolu et je n'arrive pas à appliquer la solution à mon cas.

Je souhaiterais extraire des données d'un tableau (Extraction) et en créer un autre sur une nouvelle feuille (Base de données) avec ces données extraites.

Je voudrais pouvoir taper dans la cellule A1 de la feuille "Base de données" le code fournisseur (exemple "00007762") et qu'une recherche automatique se fasse dans la colonne "fournisseur" de la feuille "Extraction".

Et quand le programme trouve toutes les lignes correspondantes il recopie uniquement les données importantes dans la feuille "Base de données".

En effet, j'ai besoin d'extraire ces informations pour pouvoir ensuite traiter les données. Mais je pense être obligé de passer par une macro car l'objectif est de pouvoir faire fonctionner facilement le fichier en remplaçant uniquement le feuille "Extraction" avec les nouvelles informations.

Pour faciliter la compréhension, j'ai mis un fichier attaché.

J'espère que ça peut aider.

Merci d'avance pour votre aide !

13receptions.xlsm (16.88 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

41receptions-v1.xlsm (29.04 Ko)

Salut gmb,

Entre temps j'ai réussi à faire ca en me basant sur une macro que j'ai trouvé.

Mais malheureusement ca ne marche pas alors que ça marche dans l'autre document que j'ai.

Peux tu me donner ton avis sur ce que j'ai fait stp ?

As tu une idée de pourquoi cela ne fonctionne pas stp ?

Merci beaucoup de ton coup de main.


Emilie_excel a écrit :

Salut gmb,

Entre temps j'ai réussi à faire ca en me basant sur une macro que j'ai trouvé.

Mais malheureusement ca ne marche pas alors que ça marche dans l'autre document que j'ai.

Peux tu me donner ton avis sur ce que j'ai fait stp ?

As tu une idée de pourquoi cela ne fonctionne pas stp ?

Merci beaucoup de ton coup de main.

Sachant que la cellule à rechercher est sur la toute premiere feuille

7receptions.xlsm (88.12 Ko)

Bonjour,

un autre exemple à tester,

Version anonyme corrigée.

Bye !

Salut Emilie,

Bonjour l'équipe

et encore une autre, pour la route...

Private Sub Worksheet_Change(ByVal Target As Range)
'
Application.EnableEvents = False
'
If Not Intersect(Target, Range("A2")) Is Nothing Then           'si changement dans [A2]...
    With Worksheets("Extraction")                               'on cherche dans 'Extraction'
        iRow = .Range("C" & Rows.Count).End(xlUp).Row           'jusqu'à la dernière ligne de [C:C]
        iLig = 1                                                'préparation de l'affichage
        For y = 2 To iRow                                       'on parcourt la colonne [C] depuis [C2]
            If CLng(.Cells(y, 3)) = CLng(Target) Then           'si le n° encodé est rencontré
                iLig = iLig + 1                                 'on actualise la ligne d'affichage
                For x = 1 To 10                                 'on parcourt la ligne des infos dans 'Extraction'
                    sAddress = Choose(x, "C", "D", "N", "R", "X", "AA", "AC", "AE", "AF", "AO") 'choisir dans quelle colonne prendre ces infos
                    Cells(iLig, x) = .Range(sAddress & y).Value 'affichage des infos
                Next
            End If
        Next
        If iLig = 1 Then MsgBox "Pas de fournisseur correspondant!", vbCritical     'si iLig n'a pas changé -> pas trouvé de fournisseur
    End With
End If
'
Application.EnableEvents = True
'
End Sub

A+

NB : oublié de préciser qu'il faut encoder le code fournisseur en [A2]...

10receptions.xlsm (88.40 Ko)

Bonsoir tout le monde.

merci beaucoup pour vos nombreuses réponses et de votre rapidité. Vous êtes géniaux !!

Je me sers finalement de la version anonyme corrigée de gmb.

Rechercher des sujets similaires à "extraction donnees feuille"