Alimenter mon fichier

Bonsoir,

j'ai un onglet feuil dans mon fichier interface liquidation que j'alimente constamment d'une source externe y a t'il un moyen d’éviter a chaque fois le copie coller avec un contrôle si la ligne existe déjà on la copie pas .

Bonjour,

est-ce que les informations peuvent être rangées dans les mêmes colonnes entre les 2 fichiers ?

Bonjour ,

oui bien sur

Option Explicit

    Dim wbk1 As Workbook, wbk2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet

    Dim MonRepertoire$, monFichier$, derL%, onglet$

Sub collecter()
    onglet = "Feuil1"

    Dim Repertoire As FileDialog
    Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
    Repertoire.Show
    If Repertoire.SelectedItems.Count = 0 Then Exit Sub
    MonRepertoire = Repertoire.SelectedItems(1) & "\"

    Set wbk1 = ThisWorkbook
    Set ws1 = wbk1.Sheets(onglet)
    monFichier = Dir(MonRepertoire & "*.xlsx")

    Do While monFichier <> ""
        ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
        derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1
        If Not monFichier Like "*.xlsm" Then
            Set wbk2 = Workbooks.Open(MonRepertoire & monFichier)
            Set ws2 = wbk2.ActiveSheet
            ws2.Range("A1").CurrentRegion.Cells.Copy
            ws1.Paste
            Application.DisplayAlerts = False
                wbk2.Close False
            Application.DisplayAlerts = True
            Rows(derL).Delete Shift:=xlUp
        End If
        monFichier = Dir
    Loop

    derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row
    ActiveSheet.Range("$A$1:$F$" & derL).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6), Header:=xlYes

End Sub

Bonjour ,

j'ai essayer mais impossible de trouver un fichier .xls ou autre , c'est quoi le problème .

Tes fichiers sont en xls ou xlsx ?

J'ai mon ton fichier Source externe.xlsx dans un répertoire et cela fonctionne.

Attention, la boite de dialogue demande un répertoire, pas un fichier, et tous les fichiers de ce répertoire sont alors aspirés.

Si en réalité tu ne veux sélectionner qu'un seul fichier, alors c'est une incompréhension de ma part, je vais modifier la macro.

Si en réalité tu ne veux sélectionner qu'un seul fichier, alors c'est une incompréhension de ma part, je vais modifier la macro.

Option Explicit

    Dim wbk1 As Workbook, wbk2 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet

    Dim monFichier As Variant, derL%, onglet$

Sub collecter()
    onglet = "Feuil1"

    monFichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx")
    If monFichier = False Then Exit Sub

    Set wbk1 = ThisWorkbook
    Set ws1 = wbk1.Sheets(onglet)
    ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
    derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1

    Workbooks.Open Filename:=monFichier
    Set wbk2 = ActiveWorkbook
    Set ws2 = wbk2.ActiveSheet
    ws2.Range("A1").CurrentRegion.Offset(1, 0).Cells.Copy
    ws1.Paste
    Application.DisplayAlerts = False
    wbk2.Close False
    Application.DisplayAlerts = True

    derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row
    ActiveSheet.Range("$A$1:$F$" & derL).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6), Header:=xlYes
    derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row
    Range("A" & derL).Select

End Sub

Bonjour ,

Merci beaucoup çà marche très bien , mais je veux mettre le bouton dans l'onglet base ça me donne un message d'erreur

ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select

Et les données, dans quel onglet ?

Bonjour ,

Je veux juste mettre le bouton dans l,onglet base, toujours alimenter la feuille1

ok, voici

Bonjour ,

merci beaucoup est ce que c'est possible de masqué la feuil1 , j'ai essayer ca me donne ca un message d'erreur

ws1.Select

Merci dans la mesure du possible

voici

Bonjour ,

parfait il l'affiche pour inséré mais il la laisse affiché , et comme le fichier que j’insère est grand il m'affiche un message

derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1 erreur de capacité

parfait il l'affiche pour inséré mais il la laisse affiché ,

sans doute à cause de l'erreur

chez moi avec le fichier source fourni c'est nickel !

et comme le fichier que j’insère est grand il m'affiche un message

derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1 erreur de capacité

curieux, je ne peux rien te dire si je ne vois pas le fichier en question

est-ce qu'il commence bine à la colonne A ?

Bonjour ,

je pense que c'est a cause du fichier volumineux ,je peux même pas t'envoyer le fichier

comme tu veux ... tu peux toujours me l'envoyer en mp via cjoint.com

Bonjour ,

j'ai essayer en mp il me dit fichier volumineux , comment faire ??

via www.cjoint.com et ensuite tu donnes le lien en mp

Rechercher des sujets similaires à "alimenter mon fichier"