Export de données d'un tableau à l'autre

Bonjour à tous,

Je souhaite avoir un fichier de suivi pour les impayés, en complétant mon tableau "Impayés" d'après les données d'un export de mon logiciel appelé "Table".

Concrètement, à chaque fois que je vais contrôler mes factures impayées, je vais extraire la liste de mon logiciel pour l'importer dans le fichier excel Impayés.

Il faut qu'il vérifie si les n° de facture ne se trouve pas déjà dans le tableau : si oui, il continue, si non il ajoute une ligne en fin de tableau avec la nouvelle facture.

Ensuite, il doit vérifier dans le tableau de suivi des impayés si la facture est toujours présente dans l'export : si oui, il la laisse, si non il la supprime.

Mon problème est le suivant : j'ai bien réussi à faire des boucles pour vérifier les N° de factures, mais il ajoute à chaque fois les factures.

Pour imager ce que je comprends, mon code fait actuellement ceci :

Curseur 1 Curseur 2

a a - n'ajoute pas

b - ajoute facture a

c - ajoute facture a

b a - ajoute facture b

b - n'ajoute pas

c - ajoute facture b

Ce qui fait que je me retrouve avec des dizaines de lignes par n° de facture.

Je vous joints mes 2 fichiers excel ainsi que mon code pour mieux comprendre.

Sub ImpFct()
Dim WBimp As Workbook, WBexp As Workbook
Dim WSimp As Worksheet, WSexp As Worksheet
Dim DerLigImp As String, DerLigExp As String
Dim X As Integer, W As Integer
Dim Y As Integer, Z As Integer

Set WBimp = ThisWorkbook
Set WSimp = WBimp.Sheets("Suivi")
Set WBexp = Workbooks.Open("L:\05 - COMMUN\Fichier PDF pour envoi\Table.xlsx")
Set WSexp = WBexp.Sheets("A")

DerLigImp = WSimp.Range("A" & Rows.Count).End(xlUp).Row 'Détermine la dernière ligne du tableau suivi des impayés

WSexp.Rows(Range("A" & Rows.Count).End(xlUp).Row).Delete 'Supprime les 2 dernières lignes
WSexp.Rows(Range("A" & Rows.Count).End(xlUp).Row).Delete

Range("A1").EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove 'Organise les colonnes comme le suivi des impayés
Columns("D:D").Cut Columns("A:A")
Columns("F:F").Cut Columns("D:D")
Columns("E:E").Cut Columns("L:L")
Columns("G:G").Cut Columns("E:E")
Columns("F:L").Delete

DerLigExp = WSexp.Range("A" & Rows.Count).End(xlUp).Row 'Détermine la dernière ligne du tableau export

'WBexp.Activate

For X = 2 To DerLigExp
    For W = 10 To DerLigImp
        If WSexp.Cells(X, 2) <> WSimp.Cells(W, 2) Then 'Compare n° de facture, si ligne export est absente du suivi inmpayés
            WSexp.Rows(X).Copy WSimp.Cells(DerLigImp + 1, 1) 'Ajoute les lignes manquantes au tableau impayés
            WSimp.Cells(10, 6).Copy WSimp.Cells(DerLigImp + 1, 6) 'Ajoute la formule nombre de jour de retard
            DerLigExp = WSexp.Range("A" & Rows.Count).End(xlUp).Row 'Détermine la dernière ligne du tableau export
            DerLigImp = WSimp.Range("A" & Rows.Count).End(xlUp).Row 'Détermine la dernière ligne du tableau suivi des impayés
        End If
    Next
Next

'For Y = 10 To DerLigImp
  '  For Z = 2 To DerLigExp
    '    If WSimp.Cells(W, 2) <> WSexp.Cells(X, 2) Then
    '        WSimp.Rows(W).EntireRow.Delete
    '    End If
   ' Next
'Next
End Sub

Bonjour à tous !

Si le passage par VBA n'est pas une option obligatoire, je vous propose de tester cette approche Power Query (nativement intégré à votre produit Excel).

Mettre à jour le chemin de fichier "extraction impayés" et, via le menu (ou la barre d'accès rapide) " Actualiser tout ".

Bonjour JFL,

Je ne connais pas du tout Power Query mais je vais essayer de me pencher sur ce sujet pour le découvrir :)

J'ai fait la modification de chemin et ai fait actualiser tout mais ça me met le message d'erreur suivant :

image

Information que je n'ai pas du tout précisé dans mon premier message : j'ai besoin que ça conserve les informations que j'écris dans les colonnes relances et remarques lorsque j'actualise le fichier avec les nouvelles factures.

Bonjour à tous de nouveau !

J'ai fait la modification de chemin et ai fait actualiser tout mais ça me met le message d'erreur suivant :

image

Je n'arrive pas à reproduire cette erreur. (Sur mon système rien à signaler...)

Vos fichiers sont identiques à ceux postés dans mon message originel ?

Je n'ai rien changé au fichier à part le lien d'accès à la source de données exportées.

Avec un deuxième essai, j'ai ce message, mais qui ne doit pas avoir d'incidence ?

image

Bonjour à tous de nouveau !

Ce dernier message est un classique pour les "primo-accédants".

Il se corrige via une option. Voir ici !

Rechercher des sujets similaires à "export donnees tableau"