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

sélectionner des données d'une autre feuille

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

B

beurklesharicots

Guest
Bonjour,
Je recherche à établir un bordereau de livraison dans "feuille 2". Ce bordereau irait chercher les informations dans une base de données logée dans "feuille 1". Les critères de sélection serait la date (de telle date à telle date) et le nom du client.
Je pourrais faire un filtre dans ma base et copier/coller vers la feuille bordereau, mais en automatisant le principe ça serait nettement plus gérable...
Ci-joint un tableau d'exemple, avec en "feuille 2" le résultat mis, mais sans formule...
Merci à vous pour ce que vous m'avez déjà apporté, et peut-être pour la suite...
Hervé
 

Pièces jointes

Re : sélectionner des données d'une autre feuille

Petite correction: "feuille 1" s'appelle "base" et "feuille 2" s'appelle "bordereau"
amicalement
Hervé
 
Re : sélectionner des données d'une autre feuille

Bonjour beurklesharicots, bonjour le forum,

En pièce jointe ton fichier avec le code ci-dessous :
Code:
Sub Macro1()
Dim d1 As Date 'déclare la variable d1 (Date 1)
Dim d2 As Date 'déclare la variable d1 (Date 2)
Dim cl As String 'déclare la variable cl (CLient)
Dim ad As Range 'déclare la variable ad (plage Ancienne Données)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)

With Sheets("bordereau") 'prend en compte l'onglet "bordereau"
    d1 = .Range("C3").Value 'définit la date d1
    d2 = .Range("C4").Value 'définit la date d1
    cl = .Range("D3").Value 'définit le client cl
    Set ad = .Range("A7").CurrentRegion 'définit la plage des anciennes données
    If ad.Rows.Count > 1 Then 'condition : si cette plage contient plus d'une seule ligne
        Set ad = ad.Offset(1, 0).Resize(ad.Rows.Count - 1, ad.Columns.Count) 'redéfinit la plage (sans la première ligne)
        ad.Clear 'efface les anciennes données
    End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "bordereau"
With Sheets("base") 'prend en compte l'onglet "Base"
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée de la colonne A
    Set pl = .Range("A2:A" & dl) 'définit la plage pl
    For Each cel In pl 'boucle sur toutes les cellules de la plage pl
        If cel.Value >= d1 And cel.Value <= d2 And cel.Offset(0, 4).Value = cl Then 'condition : si la date 1, al date 2 et le nom du client sont correspondants
            Set dest = Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la cellule de destination
            .Range(cel, cel.Offset(0, 3)).Copy dest 'copie et colle les cellules correspondante des colonnes A, B, C et D dans dest
        End If 'fin de la condition
    Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "base"
End Sub
Le fichier :
 

Pièces jointes

Re : sélectionner des données d'une autre feuille

Wouaou !
Ben je ne m'attendais pas à ça ! Pour autant cela fonctionne très bien, un grand MERCI Robert !!!

Vais quand même essayer de comprendre le "code", mais je ne voyais pas une formule aussi complexe rien qu'à regarder...

Encore merci à vous tous.
Hervé
 
- 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

A
  • Question Question
Réponses
8
Affichages
950
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…