MAC : autoriser l'accès à des fichiers

Le fichier est dans le même dossier que celui où se trouvent les images.
Le bug est ensuite tjs sur le fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates)

Un autre essai comme ceci sur cette ligne

filePermissionCandidates = Array(Application.ThisWorkbook.Path)

Re,

Alors du coup excel plante et quitte automatiquement.

...

serais-je le seul à ne pas pouvoir accéder à des fichiers en VBA sur mon mac ? c'est fou je trouve ce cas de figure car sur tous les forum les personnes donnent les mêmes fonctions pour s'en sortir.

serais-je le seul à ne pas pouvoir accéder à des fichiers en VBA sur mon mac ?

Bah non. Il y a pas mal de sujet là dessus.
C'est dû à la sécurité que Apple a mis en place avec la "Sandbox" qui implique une autorisation d'accès

Au fait je vois vos noms d'images nommées avec un point.
Pas sûr que cela fonctionne

Essayez un peu ce code pour voir si cela passe ou pas

Sub test()
Dim fileAccessGranted As Boolean 
Dim filePermissionCandidates
Dim chemin

chemin = "/Users/philippeestran/Documents/PROJETS/Studio_Plan_B/AO_S2_2021/MEERO/SIMUL_TAILLE_CB_RAL/DOUTEUX_T1_2023/"

filePermissionCandidates = Array(chemin & "product_VERY2BMAWHTZZZZZ00.1.jpg", chemin & "product.WANC7S95NAVZZZZZ00.1.jpg")
fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates)
End Sub

Alors j'ai eu une demande d'accès au fichier product.WANC7S95NAVZZZZZ00.1.jpg mais pas au premier...

Du coup j'ai essayé en renommant toutes mes images avec un "product_" et en mettant à jour mes chemins.

ça ne fonctionne pas et ça bug au fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates)

Alors j'ai eu une demande d'accès au fichier product.WANC7S95NAVZZZZZ00.1.jpg mais pas au premier...

Ok mais vous avez inséré les lignes dans quel code ?

J'ai fais une macro à part avec votre bout de code pour tester.

Il fallait l'insérer dans un code ? lequel ?

C'était juste pour voir dans quel code.

Autre essai où j'ai rajouté une boucle en dessous de Dim chemin()

Sub insert_img_excelsite()
Dim Limg, Himg As Integer, i As Integer, dl As Integer
Dim fileAccessGranted As Boolean
Dim filePermissionCandidates
Dim cheminarray As Collection
Dim item

Limg = Range("F1").Value
Himg = Range("H1").Value

Application.ScreenUpdating = False
With ActiveSheet
    dl = .Cells(.Rows.Count, "Y").End(xlUp).Row 'dernire ligne non vide en Y

    'Autorisation aux fichiers image ----------------------------------

    Set cheminarray = New Collection
    For i = 3 To dl
        cheminarray.Add .Cells(i, "Y").Value
    Next i

    Dim chemin()
    ReDim chemin(cheminarray.Count)
    For i = 1 To cheminarray.Count
        chemin(i - 1) = cheminarray(i)
    Next i
    filePermissionCandidates = Array(chemin)
    fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates)

     'insertion des images et dimensionnement ---------------------------

Juste pour voir si cela passe ou pas

Bonjour à vous deux,

Pour que l'échange soit plus "productif",
@Kerdaven merci de joindre systématiquement le fichier avec les dernières modifications SVP

@Dan, je pense que ce sera mieux

A+

Bonjour à tous,

merci pour ce nouveau code mais même message d'erreur au même endroit

je joints le fichier

Bonjour,

@Bruno : Bonne idée mais malheureusement cela ne m'aidera pas vu que je n'ai pas cette version excel et ne suis donc pas confronté à la sécurité (SANDBOX) mise en place par Apple
@Kerdaven : Quel est l'OS et Processeur de votre MAC ?

Crdlt

RE,

MAc Monterey V 12.3.1

processeur intelcore i7 quatre coeurs, 2,9 Grz

Ok. Merci des précisions parce que j'avais lu sur la toile qu'une personne disait avoir des soucis avec le processeur M1

Au fait dans ma réponse ici --> https://forum.excel-pratique.com/s/goto/1145267
est-ce que cela ,ne devrait pas être plutôt ceci -->

filePermissionCandidates = Array(Application.ThisWorkbook.Path & "/")

Sinon on va faire un essai autrement.
Mais avant, je voudrais savoir une chose, votre fichier contenant les macros et les fichiers images sont bien tous dans le dossier DOUTEUX_T1_2023 ?

Désolé de tous ces essais ...

Re,

On progresse !

Il n'y a plus le message d'erreur Erreur de Type 13...

La macro tourne, le cheminarray se rempli (j'ai mis un msg box pour lire le contenu à chaque itération, mais les images ne sont pas insérées.)

Voici le fichier

Bien !

Dans la cellule Z3, vous avez un X après l'extension JPG, pouvez-vous vérifier

Faites aussi un essai en désactivant le On error resume next afin de voir si vous avez une erreur à la ligne suivantes ou pas

Re,

J'avais ajouté un "X" pour provoquer un bug suite à recherche d'image inexistante, mais cela n'a rien fait.

En enlevant on error resume next j'ai par contre une erreur 1004 "Erreur définie par l'application ou par l'objet" sur la ligne with.shapes(.....)

merci

Ok. Je l'ai enlevé

S'il y a erreur c'est qu'à cette ligne le code ne voit pas pas la valeur Item

D'où je reviens sur ma question ici --> https://forum.excel-pratique.com/s/goto/1145518 à laquelle vous n'avez pas répondu. Quid ?

Bonjour,

Je pensais avoir répondu, désolé.

Alors oui le fichier est bien dans le répertoire contenant les images
Et j'ai bien mis dans la macro la ligne de code filePermissionCandidates = Array(Application.ThisWorkbook.Path & "/")

Alors oui le fichier est bien dans le répertoire contenant les images

Alors il me semble que l'on peut faire plus simple..
essayez avec ce code :

Sub insert_img_excel()
Dim Limg, Himg As Integer, i As Integer, dl As Integer
Dim fileAccessGranted As Boolean
Dim filePermissionCandidates
Dim Photo

Limg = Range("F1").Value
Himg = Range("H1").Value

Application.ScreenUpdating = False
With ActiveSheet
    dl = .Cells(.Rows.Count, "Y").End(xlUp).Row 'derni?re ligne non vide en Y

    'Autorisation aux fichiers image ----------------------------------
    filePermissionCandidates = Array(Application.ThisWorkbook.Path & "/")
    fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates)

     'insertion des images et dimensionnement ---------------------------
    For i = 3 To dl

        With .Cells(i, "Z") 'avec Z
            .RowHeight = Himg 'ajuste hauteur ligne
            imgLeft = .Left 'stocke position gauche de cellules
            imgTop = .Top 'stock position haute
            imgWidth = Limg 'larg col
            imgHeight = Himg 'haut lignes
        End With

        On Error Resume Next 'eviter erreur si image non trouvee

        With .Cells(i, "Z") 'avec Z
            .RowHeight = Himg 'ajuste hauteur ligne
            imgLeft = .Left 'stocke position gauche de cellules
            imgTop = .Top 'stock position haute
            imgWidth = Limg 'larg col
            imgHeight = Himg 'haut lignes
        End With

        Photo = ThisWorkbook.Path & "/" & .Range("X" & i)
        With .Shapes.AddPicture(Photo, msoFalse, msoTrue, imgLeft, imgTop, imgWidth, imgHeight) 'ajoute image (renvoie objet shape)
            .Name = Replace(item, ".jpg", "") & i 'modifie nom (sans ".jpg")
            .Placement = xlMoveAndSize 'pour verouiller l'image a la cellule
        End With

        On Error GoTo 0

    Next i
End With
Application.ScreenUpdating = True
End Sub

Bonjour,

J'ai essayé mais cela ne fonctionne pas. IL n'y a pas de bug en tant que soit mais pas d'insertion d'images.

J'ai regardé avec des MSGBOX et le contenu de photo se rempli bien et varie.

J'ai essayé dans le shape de remplacer photo par ThisWorkbook.Path & "/" & .Range("X" & i) ou Range("Y"&i).value

ça ne marche pas mieux.

Revoici le fichier au cas où j'ai mal fait quelque chose

Ok mais cette ligne n'est pas ce que je vous ai donné

With .Shapes.AddPicture(Range("Y" & i).Value, msoFalse, msoTrue, imgLeft, imgTop, imgWidth, imgHeight) 'ajoute image (renvoie objet shape)

de plus là avec Range("Y"..... on ne sait pas sur quelle feuille on se trouve.

remplacez par Photo comme je vous ai donné et qui est défini la ligne avant
Avec la définition Phot on a plus besoin de la colonne Y

Rechercher des sujets similaires à "mac autoriser acces fichiers"