VBA EXCEL / Demande autorisation accès, Macro de recherche image qui demande l'autorisation d'accès |
Bienvenue invité ( Connexion | Inscription )
VBA EXCEL / Demande autorisation accès, Macro de recherche image qui demande l'autorisation d'accès |
25 Jun 2021, 10:51
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 3 Inscrit : 25 Jun 2021 Membre no 214 228 |
Bonjour à tous,
J'ai créé une macro qui insère sur chaque ligne d'un fichier excel une image prise dans un dossier base image. Le chemin d'accès est sur chaque ligne du fichier Sauf que pour chaque fichier le finder me demande d'autoriser l'accès au dossier, puis au fichier. Forcément c'est lourd car je dois boucler sur plus de 1000 fichiers. J'ai essayé en déplaçant le dossier base image dans "Mes documents" et le résultat est le même. Je suis sous Mac OS Catalina version 10.57 Voici mon code : Code Sub insert_img_lot2() Dim t() Dim Limg, Himg As Integer 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 For i = 3 To dl 'de la ligne 3 à la dernière chemin = .Cells(i, "Y").Value 'chemin en Y ActiveCell.RowHeight = Limg ActiveCell.ColumnWidth = Himg If Dir(chemin) <> "" Then 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 With .Shapes.AddPicture(chemin, msoFalse, msoTrue, imgLeft, imgTop, imgWidth, imgHeight) 'ajoute image (renvoie objet shape) .Name = Replace(chemin, ".jpg", "") & i 'modifie nom (sans ".jpg") .Placement = xlMoveAndSize 'pour vérouiller l'image à la cellule End With Else n = n + 1: ReDim Preserve t(1 To n): t(n) = chemin & " - ligne " & i End If Next i If n > 0 Then MsgBox "Images introuvables :" & vbCrLf & vbCrLf & Join(t, vbCrLf) End With Application.ScreenUpdating = True End Sub Mes deux questions : - comment paramétrer le Finder pour ne pas avoir ces demandes ? - si ce n'est pas possible quelles sont les commandes en VBA pour accorder l'accès ? Merci pour votre aide Philippe Ce message a été modifié par baron - 25 Jun 2021, 13:09.
Raison de l'édition : Le code doit être placé entre les deux balises pour être mis en forme.
Fichier(s) joint(s)
Capture_d___e__cran_2021_06_25_a___11.44.37.png ( 231.55 Ko )
Nombre de téléchargements : 0
Capture_d___e__cran_2021_06_25_a___11.44.48.png ( 920.51 Ko ) Nombre de téléchargements : 0 |
|
|
25 Jun 2021, 13:10
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 347 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Bonjour et bienvenue !
Note de la modération : Ce message concerne une section différente de celle où tu as posté (OSX concerne uniquement le logiciel système et ses utilitaires). Je déplace et t'invite à lire cette annonce. (Ceci est un message automatique.) -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
25 Jun 2021, 18:53
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 4 198 Inscrit : 1 Jan 2008 Lieu : Toulouse.cong Membre no 103 942 |
- comment paramétrer le Finder pour ne pas avoir ces demandes ? Ce n'est pas possible, les restrictions imposées par les récentes versions de macOS limitent l'accès direct par programmation aux fichiers. - si ce n'est pas possible quelles sont les commandes en VBA pour accorder l'accès ? Tu trouveras les indications voulues sur cette page, je pense. -------------------- |
|
|
25 Jun 2021, 19:36
Message
#4
|
|
Nouveau Membre Groupe : Membres Messages : 3 Inscrit : 25 Jun 2021 Membre no 214 228 |
Merci !
Je teste cela. A bientôt |
|
|
28 Jun 2021, 15:46
Message
#5
|
|
Nouveau Membre Groupe : Membres Messages : 3 Inscrit : 25 Jun 2021 Membre no 214 228 |
Bonjour,
J'ai modifié mon code et j'essaye d'utiliser la commande GrantaccesstoMultifiles mais en vain. Voici mon nouveau code CODE Sub insert_img_excel() Dim t() Dim Limg, Himg As Integer Dim fileAccessGranted As Boolean Dim filePermissionCandidates 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 For i = 3 To dl 'de la ligne 3 à la dernière chemin = .Cells(i, "Y").Value 'chemin en Y 'Create an array with file paths for the permissions that are needed. filePermissionCandidates = Array(chemin) fileAccessGranted = GrantAccessToMultipleFiles(chemin) ActiveCell.RowHeight = Limg ActiveCell.ColumnWidth = Himg If Dir(chemin) <> "" Then 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 With .Shapes.AddPicture(chemin, msoFalse, msoTrue, imgLeft, imgTop, imgWidth, imgHeight) 'ajoute image (renvoie objet shape) .Name = Replace(chemin, ".jpg", "") & i 'modifie nom (sans ".jpg") .Placement = xlMoveAndSize 'pour vérouiller l'image à la cellule End With Else n = n + 1: ReDim Preserve t(1 To n): t(n) = chemin & " - ligne " & i End If Next i If n > 0 Then MsgBox "Images introuvables :" & vbCrLf & vbCrLf & Join(t, vbCrLf) End With Application.ScreenUpdating = True End Sub Qui peut m'aider ? |
|
|
28 Jun 2021, 16:25
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 1 721 Inscrit : 28 Nov 2015 Lieu : Somme Membre no 197 274 |
Bonjour,
Avez vous essayé de mettre les images dans le dossier "Public" situé dans "Utilisateur". -------------------- MacPro 7.1/5.1
|
|
|
28 Jun 2021, 19:01
Message
#7
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 4 198 Inscrit : 1 Jan 2008 Lieu : Toulouse.cong Membre no 103 942 |
Je ne comprends pas bien ta ligne fileAccessGranted = GrantAccessToMultipleFiles(chemin)
Logiquement, ça devrait plutôt être quelque chose comme fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates) sous réserve toutefois que ta table filePermissionCandidates soit correctement alimentée avec les chemins d'accès (à vérifier dans la fenêtre des "Variables locales" en mode arrêt). Par ailleurs, cette ligne devrait être positionnée après le "next i" pour donner l'accès à tous les fichiers d'un coup. Tu peux t'inspirer de l'exemple qu'on trouve sur cette page. La question de l'utilisateur concerne l'intégration Mac/Windows, mais la boucle pour l'autorisation d'accès est fonctionnelle... -------------------- |
|
|
Nous sommes le : 20th April 2024 - 00:06 |