VBA ne pas pouvoir ouvrir fichier si celui-ci ouvert ailleurs
Résolu/Fermé
A voir également:
- VBA ne pas pouvoir ouvrir fichier si celui-ci ouvert ailleurs
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Comment ouvrir un fichier docx ? - Guide
- Fichier rar - Guide
2 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
21 juin 2016 à 18:46
21 juin 2016 à 18:46
Bonjour,
Où en es-tu avec ce post?
https://forums.commentcamarche.net/forum/affich-33623904-bouton-capture-ecran-vba
Où en es-tu avec ce post?
https://forums.commentcamarche.net/forum/affich-33623904-bouton-capture-ecran-vba
thev
Messages postés
1925
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 décembre 2024
692
Modifié par thev le 21/06/2016 à 20:13
Modifié par thev le 21/06/2016 à 20:13
Bonjour,
Vous pouvez utiliser cette fonction
Vous pouvez utiliser cette fonction
Function IsWorkBookOpen(Nom_fichier As String) As Boolean
Dim no_fichier As Long
On Error Resume Next
no_fichier = FreeFile()
Open Nom_fichier For Binary Access Read Lock Read Write As #no_fichier
If Err.Number = 0 Then
IsWorkBookOpen = False
Else
IsWorkBookOpen = True
End If
Close no_fichier
End Function
--
Ça marche parfaitement bien!
Cependant, ça ne fonctionne pas si la fonction est dans le fichier à ouvrir... Je vous explique : si le fichier est déjà ouvert et que je l'ouvre, j'ai l'information comme quoi le fichier est déjà ouvert et si je veux l'ouvrir en lecture seule. Mais si j'ouvre le fichier (2) avec la macro du fichier (1), le fichier s'ouvre automatiquement et se met en lecture seule (pas de message). Mais j'ai réussi à adapter ce code pour contrer cela
Donc maintenant, je suis informé à chaque que le fichier est déjà ouvert : "voulez ouvrir le fichier en lecture seule : Annuler ou Oui". Quand je clique sur annuler, ça n'ouvre pas le fichier mais continuer à exécuter le code qui sui dans le fichier (1), ce qui créer donc des erreurs ... j'ai donc du gérer ces erreurs
Au final le résultat est bon, c'est ce que je voulais!
Mille merci thev!
Cependant, ça ne fonctionne pas si la fonction est dans le fichier à ouvrir... Je vous explique : si le fichier est déjà ouvert et que je l'ouvre, j'ai l'information comme quoi le fichier est déjà ouvert et si je veux l'ouvrir en lecture seule. Mais si j'ouvre le fichier (2) avec la macro du fichier (1), le fichier s'ouvre automatiquement et se met en lecture seule (pas de message). Mais j'ai réussi à adapter ce code pour contrer cela
Donc maintenant, je suis informé à chaque que le fichier est déjà ouvert : "voulez ouvrir le fichier en lecture seule : Annuler ou Oui". Quand je clique sur annuler, ça n'ouvre pas le fichier mais continuer à exécuter le code qui sui dans le fichier (1), ce qui créer donc des erreurs ... j'ai donc du gérer ces erreurs
Au final le résultat est bon, c'est ce que je voulais!
Mille merci thev!
21 juin 2016 à 21:52
Et bien,ça ne répond pas exactement à ma question... Je voulais qu'au moment où j'appuie sur le bouton, j'ai l'outil capture d'excel qui se lance (pour que je puisse sélectionner ce que je veux) et qu'après avoir fait ma sélection, la photo se colle à un endroit précis, aux bonnes dimensions... et c'était au moment de lancer l'outil capture d'excel qu'il y a un problème
Alors il y a la possibilité d'utiliser l'outil appareil photo, mais ça ne permet pas de faire des capture ailleurs que sur l'excel
Un morceau de code proposé, mais qui permet de faire une capture d'écran (et non seulement juste une zone voulu)
Et sinon je ne sais pas utilisé les 2 autres programmes... Mais je ne pense que ce soit la façon la plus simple...
Mais finalement je m'en suis accommodé, je me place dans une cellule, je clique sur l'outil capture d'excel, je capture, l'image se colle, je clique sur un bouton qui lance une macro qui redimensionne et place l'image comme je veux
Donc merci infiniment pour ton temps
21 juin 2016 à 22:04
en tout cas ça ne donne pas envie de passer du temps pour t'aider si toi tu n'es même pas prêt à offrir 30s pour faire un retour et dire merci...
eric
21 juin 2016 à 22:09