Import onglets si

Bonjour , j'ai une macro pour importer tous les onglets des fichiers xlsx présent dans le dossier ou cette matrice est présente.

mon souhait est que si un onglet est déjà présent dans la matrice , il ne faut pas le réimporter.

avez vous une piste ?

merci d'avance

4test-1-copie.xlsm (16.78 Ko)

Bonjour

Essayez avec ces deux codes en remplacement du votre placé dans votre fichier

Sub importDonnees_xlsx()
Dim i As Byte
Dim chemin As String, nomFichier As String, Nom As String
Dim classeur

Application.ScreenUpdating = False

chemin = ThisWorkbook.Path
nomFichier = Dir(chemin & "\" & "*.xlsx")

Do While Len(nomFichier) > 0

    If nomFichier <> ThisWorkbook.Name Then
        Set classeur = Workbooks.Open(chemin & "\" & nomFichier)

        For i = 1 To classeur.Worksheets.Count
            Nom = Worksheets(i).Name
            If FeuilleExiste(Nom) = False Then
                classeur.Sheets(Nom).Copy After:=ThisWorkbook.Sheets(Sheets.Count)   'classeur à coller a adapter le nom
            End If
        Next i

        classeur.Close False
    End If
    nomFichier = Dir
Loop
End Sub

Function FeuilleExiste(Nom) As Boolean
Dim f As Object
On Error Resume Next
Set f = ThisWorkbook.Sheets(Nom)
If Err = 0 Then FeuilleExiste = True
Set f = Nothing
End Function

Si ok, pensez à

Crdlt

aïe bug à ce niveau :

classeur.Sheets(Nom).Copy After:=ThisWorkbook.Sheets(Sheets.Count)

l'indice n'appartient pas à la sélection.

c'est bon , en changeant :

Nom = classeur.Sheets(i).Name

merci de ton aide

Rechercher des sujets similaires à "import onglets"