# Vba Excel Fonction MacID fichier xlsb



## HUGOBASS (14 Septembre 2015)

Bonjour à toutes et tous,

J'utilise sur Excel 2010 windows un code VBA qui me permet de fusionner plusieurs fichiers en un seul ((les feuilles de chacun des fichiers sources sont copier dans autant de feuilles dans le fichier compilé final).

J'essaye sans succès d'adapter mon code pour l'utiliser avec EXCEL MAC 2011.
Même si j'ai identifié que pour remplacer ma fonction DIR par la fonction MacId je n'arrive pas à trouver la bonne syntaxe pour notamment aller ouvrir tous mes fichiers ayant une extension xlsb.

Ci après mon code, en espérant que vous pourrez m'aider à le finaliser pour le rendre fonctionnel sous EXCELL MAC 2011

Cordialement
Hugues

Sub Compil()

Dim Maitre As Workbook
Dim Compteur As Integer
Dim Nf As String
Dim K As Integer
Dim Dossier As String
Dim Chemin As String

Dossier = ThisWorkbook.Path & Application.PathSeparator
Chemin = Dossier & ":"

  Application.ScreenUpdating = False
  ChDir ActiveWorkbook.Path
  Set Maitre = ActiveWorkbook

  Nf = Dir(Chemin, MacID("XLS8")) 'a mon avis c'est ici que cela ne fonctionne pas correctement
  Do While Nf <> ""
    If Nf <> Maitre.Name Then
      With Workbooks.Open(Filename:=Nf)
        For K = 1 To .Sheets.Count
          .Sheets(K).Copy after:=Maitre.Sheets(Maitre.Sheets.Count)
          ActiveSheet.Name = Replace(Nf, ".xlsb", "") & " " & K
        Next K
        .Close False
    End With
    End If
    Nf = Dir
  Loop
End Sub


----------



## JacqR (15 Septembre 2015)

Bonjour,

Regarde dans l'exemple (un fichier à télécharger) dans cette page


----------



## HUGOBASS (15 Septembre 2015)

JacqR a dit:


> Bonjour,
> 
> Regarde dans l'exemple (un fichier à télécharger) dans cette page



Bonjour JacqR,

Merci d'avoir pris le temps de lire mon post et de me répondre.
Mes recherches m'ont aussi amenées sur la page dont tu m'as mis le lien et je suis en train d'étudier comment mettre en oeuvre la procédure en l'appliquant à mon cas précis. A priori cette solution est plus fiable et sur que MacId
Néanmoins j'aurais bien voulu savoir comment je pouvais utiliser mon code via MacId.

Encore une fois merci d'avoir réagis à mon message

cordialement
Hugues


----------



## JacqR (15 Septembre 2015)

Bonsoir,



HUGOBASS a dit:


> Néanmoins j'aurais bien voulu savoir comment je pouvais utiliser mon code via MacId.


La commande Dir ne fonctionne pas correctement sur ma version de *Excel* (*Microsoft Office 2016*), je n'obtiens que le premier fichier avant que *Excel* plante.
Peut-être que cela ne fonctionne pas correctement sur la dernière version de *Microsoft Office 2011*, ou sur Maverick ou sur Yosemite.

Info sur votre code :
*Chemin = Dossier & ":" *, ceci bogue la commande *Dir*, car vous avez déjà le séparateur dans le chemin --> ThisWorkbook.Path & Application.PathSeparator
Comme vous utilisez la commande *ChDir*, il n'est pas nécessaire de spécifier le chemin dans la commande Dir, il suffit de mettre *""*.​
Essaie ceci


```
Dim Maitre As Workbook
Dim Compteur As Integer
Dim Nf As String
Dim K As Integer
Dim Chemin As String

Chemin = ThisWorkbook.Path & Application.PathSeparator
Application.ScreenUpdating = False
Set Maitre = ActiveWorkbook
ChDir ActiveWorkbook.Path
Nf = Dir("", MacID("XLS8"))
Do While Nf <> ""
    If Nf <> Maitre.Name Then
        With Workbooks.Open(Filename:=Nf)
            For K = 1 To .Sheets.Count
                .Sheets(K).Copy after:=Maitre.Sheets(Maitre.Sheets.Count)
                ActiveSheet.Name = Replace(Nf, ".xlsb", "") & " " & K
            Next K
            .Close False
        End With
    End If
    Nf = Dir
Loop
Application.ScreenUpdating = True
```


----------



## HUGOBASS (16 Septembre 2015)

Bonjour Jackr,

Merci pour ton code qui bien qu'il m'a l'air corrigé de mes erreurs (merci à toi) ne fonctionne pas non plus mon EXCEL 2011 OSX MAVERICKS.

Je vais essayer autrement (je crois définitivement que dir n'est pas adapté à l'environnement EXCEL MAC).
Es tu content de ton office EXCEL MAC 2016 (J'imagine en office 365) ? As tu pu l'installer facilement ? Est ce que l'on on peut conserver la version 2011 en parallèle  (comme cela était possible avec 2011 et 2008).

Cordialement
Hugues


----------



## JacqR (16 Septembre 2015)

Bonjour HUGOBASS,



HUGOBASS a dit:


> Merci pour ton code qui bien qu'il m'a l'air corrigé de mes erreurs (merci à toi) ne fonctionne pas non plus mon EXCEL 2011 OSX MAVERICKS.
> 
> Je vais essayer autrement (je crois définitivement que dir n'est pas adapté à l'environnement EXCEL MAC).


Je crois que les problèmes proviennent de la sécurité accrue de l'OS (*Maverick* et *Yosemite*).
Car cela fonctionnait très bien avant sur Mac, car j'ai encore des fichiers Excel (en archive) avec des macros qui utilisaient la commande Dir et MacID

Donc, maintenant il faut utiliser utiliser un Applescript pour obtenir une liste de fichiers.



HUGOBASS a dit:


> Es tu content de ton office EXCEL MAC 2016 (J'imagine en office 365) ?


Oui, pour mon utilisation basique.



HUGOBASS a dit:


> As tu pu l'installer facilement ? Est ce que l'on on peut conserver la version 2011 en parallèle  (comme cela était possible avec 2011 et 2008).


Oui, c'est sans problème, *Microsoft* installe la nouvelle version sans toucher à l'ancienne version.


----------



## HUGOBASS (16 Septembre 2015)

Bonjour Jackr,

Merci pour ces infos

Cordialement
Hugues


----------

