Récupération contenu sous conditions

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

D

djfx60

Guest
Bonjour,

Je voudrais renvoyer les données contenues dans la colonne N de la feuille data! de l'exemple joint vers la feuille Rémi! si les conditions de date en B2 et de créneau en A4 de la feuille Rémi! sont réunies dans la feuille data! et cela automatiquement ou via les boutons de feuille TRV!
J'ai fais quelques centaines de recherches sur le forum et à travers le net mais je n'y arrive pas.
Une aide serait la bienvenue.

Cdt.
 

Pièces jointes

Re : Récupération contenu sous conditions

Bonsoir djfx et bienvenu sur XLD,

Avec cette macro, à déclencher par un bouton (ou tu veux) ou par une macro évènementielle.

VB:
Sub Transfert()
Dim i&, j&, k&, l&
Dim Ws As Worksheet
With Sheets("Data")
  For i = 2 To [M65000].End(xlUp).Row
    For Each Ws In Worksheets
      If .Cells(i, 12) = Ws.Name And .Cells(i, 11) = Ws.[B2] Then
        j = Application.Match(.Cells(i, 13), Ws.Columns(1), 0)
        Ws.Cells(j, 2) = .Cells(i, 14).Value
      End If
    Next
  Next
End With
End Sub

A te relire

Martial
 
Re : Récupération contenu sous conditions

Bonjour Martial,

Merci pour ta réponse rapide et ton accueil.
Ton code fonctionne, mais à partir du 3éme bouton il ne se passe rien quelque soit le critère.
De plus, si je recopie les boutons dans leurs feuilles respectives j'ai une erreur d'arrêt!
Qu'aurais-je zappé?
 
Re : Récupération contenu sous conditions

Bonsoir djfx, bonsoir à tous,

Je vais te décrire le code, normalement il n'y a pas besoin plusieurs boutons, un seul suffit.

Voici le détail

VB:
Option Explicit

Sub Transfert()
Dim i&, j&
Dim Ws As Worksheet
'Avec la feuille Data
With Sheets("Data")
  'Pour toutes les lignes de 2 jusqu'à la dernière
   For i = 2 To .[M65000].End(xlUp).Row
     'Pour toutes les feuilles
     For Each Ws In Worksheets
       'Si la feuille correspond au nom de la cellule en ligne i colonne L (nom du Plombier)
       'Et que la date de la ligne i colonne K est égale à la cellule B2 de la feuille Ws
       If .Cells(i, 12) = Ws.Name And .Cells(i, 11) = Ws.[B2] Then
         'Alors on recherche la plage horaire de la ligne i colonne M dans la colonne 1 de la feuille Ws
         j = Application.Match(.Cells(i, 13), Ws.Columns(1), 0)
         'On rentre les données de Data ligne i colonne N dans la cellule j (trouvée ci-dessus) colonne 1 de la feuille Ws
         Ws.Cells(j, 2) = .Cells(i, 14).Value
       End If
     'La feuille suivante
     Next
   'La ligne suivante de la feuille Data
   Next
End With
End Sub

J'ai modifié juste un . ce qui te premet de mettre la macro n'importe où.

A+

Martial
 
Re : Récupération contenu sous conditions

Merci beaucoup,infiniment... ça marche!
Je vais étudier le code afin de comprendre pourquoi cela ne fonctionne qu'avec les deux premiers plombiers.

Salutations.
 
Re : Récupération contenu sous conditions

Re,

Il y a 3 conditions :
- Il faut que le nom soit exactement identique dans tes cellules de Data et dans le nom des onglets.
- Il faut que les dates correspondent entre l'onglet Data et la cellule B2 de l'onglet du plombier.
- Et enfin il faut que la plage horaire soit écrite exactement de la même façon que dans les autres onglets.

Si une seule de ces conditions n'est pas remplies, la cellule n'est pas copiée.

Pour être sûr que tes cellules est le même nom que tes onglets, de même pour les plages horaires, tu peux passer par des validations de données.

A+

Martial
 
- 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
3
Affichages
655
Réponses
16
Affichages
2 K
S
Réponses
6
Affichages
1 K
L
Réponses
4
Affichages
2 K
L
Retour