XL 2016 Transférez les données tant que la valeur correspond aux en-têtes de colonne

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

Dadi147

XLDnaute Occasionnel
Bonjour, aidez-nous à copier les données de la feuille de recherche vers la feuille de FEUIL1, à condition que les en-têtes de colonne correspondent à la valeur de la ligne car elle change constamment dans la feuille de recherche. La valeur doit être copiée si elle se trouve dans le même colonne correspondante
Screenshot 2022-10-22 205936.png
 

Pièces jointes

Bonsoir @Dadi147 🙂,

Essayez cette formule en B2 à copier vers la gauche.
VB:
=SIERREUR(SI(INDEX(recherche!$B:$B;EQUIV(B1;recherche!$A:$A;0))="";"";INDEX(recherche!$B:$B;EQUIV(B1;recherche!$A:$A;0)));"")

Attention! Dans la zone de recherche, vous avez des doublons.
 
Bonsoir @Dadi147 🙂,

Essayez cette formule en B2 à copier vers la gauche.
VB:
=SIERREUR(SI(INDEX(recherche!$B:$B;EQUIV(B1;recherche!$A:$A;0))="";"";INDEX(recherche!$B:$B;EQUIV(B1;recherche!$A:$A;0)));"")

Attention! Dans la zone de recherche, vous avez des doublons.
Merci, mais je veux copier de la feuille de recherche vers l'autre feuille
Les données seront copiées de la feuille de recherche et collées dans l'autre feuille, à condition que les valeurs de la colonne correspondent aux en-têtes de colonne par codes VBA
 
Bonsoir Dadi147
Vous semblez tenir au VBA, je vous propose ce code, dans un module standard
VB:
Sub Copie()
Dim Tablo1(), Tablo2(), fin As Long, i As Long
    fin = Sheets("recherche").Range("A2").End(xlDown).Row
    ReDim Tablo1(2, fin - 3)
    ReDim Tablo2(fin - 3)
    For i = 0 To fin - 3
        Tablo1(1, i) = Sheets("recherche").Range("A" & i + 3).Value 'colonne A
        Tablo1(2, i) = Sheets("recherche").Range("B" & i + 3).Value 'colonne B
'        Debug.Print Tablo1(1, i) & ":" & Tablo1(2, i)
        Tablo2(i) = Sheets("Feuil1").Cells(1, i + 2).Value
'        Debug.Print Tablo2(i)
    Next
    For i = 0 To fin - 3
        For j = 0 To fin - 3
            If Tablo1(1, i) = Tablo2(j) And Tablo1(2, i) <> vbNullString Then
                Sheets("Feuil1").Cells(2, j + 2) = Tablo1(2, i)
            End If
        Next
    Next
End Sub
Je ne doute pas que mapomme, beaucoup plus fort que moi, soit capable de produire un code bien plus efficace que le mien qui cependant, je crois, fonctionne.
Bonne soirée.
 
Merci, mais lors de la copie pour la deuxième fois, vous devez copier dans la ligne à côté de la dernière ligne avec des données qui ne sont pas dans la même ligne
Ajout de copies de cellules b1 dans la première colonne A
 
Dernière édition:
À vous d'adapter selon vos besoins, vous avez tout le matériel nécessaire et puis quand vous dites "lors de la copie pour la deuxième fois, vous devez copier dans la ligne à côté de la dernière ligne avec des données qui ne sont pas dans la même ligne" ... je ne suis pas sûr de comprendre qui est le 'vous' ni ce que vous voulez faire.
Bonne nuit
 
Dernière édition:
- 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

Discussions similaires

Retour