Microsoft 365 Macro pour récupérer des colonnes qui ne sont pas conjointes

Anthony_51

XLDnaute Nouveau
Bonjour,

Je fais appel à vous car je tourne un rond et je n'arrive pas à trouver de solution.
J'ai besoin dans le fichier ci-joint de récupérer les numéros de factures qui sont à partir de la colonnes AG de la feuil1 dans la colonne de la feuil2 et ensuite de récupérer les numéros de déclarations par facture. Sauf qu'utilisant recherche, et une formule index equiv, je n'arrive pas aux résultats escomptés.
Peut être que le problème vient de ma macro et que je pourrai extraire de ma feuille 1 de base les données factures et déclarations mais là mes compétences ne me le permettent pas.
Ci-dessous les deux macros que que j'ai crée

VB:
Sub MarquerDerniereColonneEtPrecedentes()
    Dim ws As Worksheet
    Dim derniereColonne As Long
    Dim i As Long
    
    ' Définir la feuille active
    Set ws = ThisWorkbook.ActiveSheet
    
    ' Trouver la dernière colonne contenant des données dans la feuille
    derniereColonne = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), _
                                    LookIn:=xlFormulas, LookAt:=xlPart, _
                                    SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    
    ' Remplir la première ligne avec "1" jusqu'à la dernière colonne renseignée
    For i = 33 To derniereColonne
        ws.Cells(1, i).Value = "Facture"
    Next i
    
End Sub
VB:
Sub CopierColonnesSiPremiereLigneNonZero3()
    Dim wsSource As Worksheet
    Dim wsDest As Worksheet
    Dim lastRowSource As Long
    Dim lastColSource As Long
    Dim lastRowDest As Long
    Dim colSource As Long
    Dim colDest As Long
    
    ' Définir la feuille source et la feuille de destination
    Set wsSource = ThisWorkbook.Sheets("Feuil1") ' Modifier "Feuil1" selon votre feuille source
    Set wsDest = ThisWorkbook.Sheets("Feuil2") ' Modifier "Feuil2" selon votre feuille de destination
    
    ' Trouver la dernière colonne et la dernière ligne renseignée dans la feuille source
    lastColSource = wsSource.Cells(1, wsSource.Columns.Count).End(xlToLeft).Column
    lastRowSource = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
    
    ' Initialiser la première ligne vide dans la feuille de destination
    colDest = 1 ' Colonne de départ dans la feuille de destination (1 = colonne A)
    
    ' Boucle sur chaque colonne de la feuille source
    For colSource = 33 To lastColSource
        ' Vérifier si la première ligne de la colonne source est différente de 0
        If wsSource.Cells(1, colSource).Value <> 0 Then
            ' Trouver la dernière ligne renseignée dans la colonne source
            lastRowSource = wsSource.Cells(wsSource.Rows.Count, colSource).End(xlUp).Row
            
            ' Trouver la première ligne vide dans la colonne de destination
            lastRowDest = wsDest.Cells(wsDest.Rows.Count, colDest).End(xlUp).Row + 1
            
            ' Copier la colonne de la deuxième ligne jusqu'à la dernière ligne renseignée
            wsSource.Range(wsSource.Cells(2, colSource), wsSource.Cells(lastRowSource, colSource)).Copy
            
            ' Coller dans la première ligne vide de la colonne de destination
            wsDest.Cells(lastRowDest, colDest).PasteSpecial Paste:=xlPasteValues
            
        End If
    Next colSource
End Sub



J'ai épuré le fichier pour qu'il ne reste que les informations qui sont à traiter.
Pouvez-vous m'aider svp ?
Une grand merci d'avance
 

Pièces jointes

  • Fichier test.xlsm
    23.5 KB · Affichages: 7

Anthony_51

XLDnaute Nouveau
Bonjour JHA,

Merci de tes recherches, mais je cherche à obtenir pour la suite de ma macro la listes des factures avec leurs références de déclarations (toutes les factures en colonne A de la feuille 2 et la déclaration rattachée en colonne B)
Anthony
 

Anthony_51

XLDnaute Nouveau
Bonjour JHA,
Finalement j'ai utilisé Power Query, que je ne connaissais pas et j'ai réussi en pivotant les colonnes à obtenir le résultat souhaité.
Un grand merci pour ton aide
 

Pièces jointes

  • Capture d’écran 2024-12-03 140903.png
    Capture d’écran 2024-12-03 140903.png
    44.7 KB · Affichages: 6

Discussions similaires

Réponses
9
Affichages
327
Réponses
2
Affichages
330

Statistiques des forums

Discussions
314 862
Messages
2 113 630
Membres
111 926
dernier inscrit
vec440