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

Microsoft 365 Copier coller données Excel avec recherche

Derrdio

XLDnaute Nouveau
Bonjour à tous,

J'ai mon tableau principal en vert et mon tableau "complément d'information en bleu". J'aimerai, avec une macro VBA (ou autre), rechercher dans mon tableau bleu, si j'ai un n° de bon de pesée présent dans mon tableau vert (colonne A en vert, colonne C en bleu) qui est dans mon tableau bleu. Si c'est le cas, il faudrait copier la cellule colonne E (tableau bleu) dans la colonne H de la ligne correspondante (tableau bleu). Et ainsi de suite pour le reste des bons de pesée.


Merci d'avance, je reste à dispo si besoin
 
Solution
Réponse obtenue en externe.
J'ai donc utilisé PowerQuery pour importer les données de l'Excel dans un seul et même classeur avec "une belle mise en forme". Et j'ai par la suite utilisé le code suivant. A noter que j'ai rajouté qlq éléments à l'importation.


VB:
Sub CopierValeursEntreFeuilles()
    Dim wsFeuil2 As Worksheet
    Dim wsFeuil4 As Worksheet
    Dim dernièreLigneFeuil2 As Long
    Dim dernièreLigneFeuil4 As Long
    Dim i As Long
    
    ' Référencer les feuilles de calcul
    Set wsFeuil2 = ThisWorkbook.Sheets("Feuil2") ' Remplacez "Feuil2" par le nom de votre deuxième feuille
    Set wsFeuil4 = ThisWorkbook.Sheets("Feuil4") ' Remplacez "Feuil4" par le nom de votre quatrième feuille
    
    ' Trouver la dernière ligne...

xUpsilon

XLDnaute Accro
Bonjour le fil,

Toujours mettre un classeur exemple anonymisé pour recevoir une réponse adéquate.
Malgré tout, au vu de la demande, je pense qu'une formule RECHERCHEV devrait largement suffire ici

Bonne journée,
 

Derrdio

XLDnaute Nouveau
Réponse obtenue en externe.
J'ai donc utilisé PowerQuery pour importer les données de l'Excel dans un seul et même classeur avec "une belle mise en forme". Et j'ai par la suite utilisé le code suivant. A noter que j'ai rajouté qlq éléments à l'importation.


VB:
Sub CopierValeursEntreFeuilles()
    Dim wsFeuil2 As Worksheet
    Dim wsFeuil4 As Worksheet
    Dim dernièreLigneFeuil2 As Long
    Dim dernièreLigneFeuil4 As Long
    Dim i As Long
    
    ' Référencer les feuilles de calcul
    Set wsFeuil2 = ThisWorkbook.Sheets("Feuil2") ' Remplacez "Feuil2" par le nom de votre deuxième feuille
    Set wsFeuil4 = ThisWorkbook.Sheets("Feuil4") ' Remplacez "Feuil4" par le nom de votre quatrième feuille
    
    ' Trouver la dernière ligne avec des données dans Feuil2
    dernièreLigneFeuil2 = wsFeuil2.Cells(wsFeuil2.Rows.Count, "A").End(xlUp).Row
    ' Trouver la dernière ligne avec des données dans Feuil4
    dernièreLigneFeuil4 = wsFeuil4.Cells(wsFeuil4.Rows.Count, "A").End(xlUp).Row

    ' Boucle à travers les valeurs en A2 de Feuil4
    For i = 2 To dernièreLigneFeuil4
        Dim valeurRecherche As Variant
        Dim trouvé As Range
        
        valeurRecherche = wsFeuil4.Cells(i, "A").Value

        ' Rechercher la valeur dans la colonne A de Feuil2
        Set trouvé = wsFeuil2.Columns("A").Find(What:=valeurRecherche, LookIn:=xlValues, LookAt:=xlWhole)

        If Not trouvé Is Nothing Then
            ' Copier les valeurs des colonnes B, C, D, E, F, et I de Feuil4
            ' et les placer dans les colonnes H, I, J, K, L, et M de Feuil2 sur la ligne correspondante
            wsFeuil2.Cells(trouvé.Row, "H").Value = wsFeuil4.Cells(i, "B").Value
            wsFeuil2.Cells(trouvé.Row, "I").Value = wsFeuil4.Cells(i, "C").Value
            wsFeuil2.Cells(trouvé.Row, "J").Value = wsFeuil4.Cells(i, "D").Value
            wsFeuil2.Cells(trouvé.Row, "K").Value = wsFeuil4.Cells(i, "E").Value
            wsFeuil2.Cells(trouvé.Row, "L").Value = wsFeuil4.Cells(i, "F").Value
            wsFeuil2.Cells(trouvé.Row, "M").Value = wsFeuil4.Cells(i, "I").Value
        End If
    Next i
End Sub

Merci pour votre aide
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…