Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème de compatibilité lors de l'utilisation de FUNCTION [RESOLU]

  • Initiateur de la discussion Initiateur de la discussion pipou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pipou

XLDnaute Nouveau
Bonjour,

J'utilise une macro pour vérifier si un fichier est ouvert.

Si le fichier est déjà ouvert, j'affiche un message.
Si le fichier est fermé, je l'ouvre.

Cette macro fonctionne bien sous EXCEL 2003 à 2010, mais ne fonctionne plus sous 2013, comme si FUNCTION ne retournait pas de valeur.

Si le fichier est déjà ouvert, FICHOUVERT n'est pas considéré comme FALSE dans mon test et le fichier est donc ouvert une seconde fois.

Voici la macro, si quelqu'un peut m'aider :

Sub Exportation()


Rem On ouvre RECAP_EXPE.... si RECAP_EXPE est ouvert on arrête tout, sinon ...
If FichOuvert("D:\POIDS\RECAP_EXPE.xls") = False Then
Workbooks.Open filename:="D:\POIDS\RECAP_EXPE.xls"

Else
Rem RECAP_EXPE est ouvert, on ne fait rien
reponse = MsgBox("Attention le fichier RECAP_EXPE est ouvert !! Veuillez le fermer avant de lancer l'export", vbCritical, "ATTENTION RECAP_EXPE OUVERT")


End If
End Sub



'Rem permet de tester si un fichier est déjà ouvert

Function FichOuvert(filename As String) as boolean
Dim filenum As Integer
Dim errnum As Integer

On Error Resume Next
filenum = FreeFile()
Open filename For Input Lock Read As #filenum
Close filenum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
FichOuvert = False
Case 70
FichOuvert = True
Case Else
Error errnum
End Select
End Function
 
Dernière édition:
Re : Problème de compatibilité lors de l'utilisation de FUNCTION

Bonjour,

essaye peut être ceci :
Code:
Sub test()
Dim nomClasseur As String
nomClasseur = "RECAP_EXPE.xls"
If ClasseurExiste(nomClasseur) Is Nothing Then
    Workbooks.Open Filename:="D:\POIDS\RECAP_EXPE.xls"
Else
    MsgBox "Attention le fichier RECAP_EXPE est ouvert !!" & vbLf _
        & "Veuillez le fermer avant de lancer l'export", vbCritical, "ATTENTION RECAP_EXPE OUVERT"
End If
End Sub

Function ClasseurExiste(c As String) As Workbook
On Error Resume Next
Set ClasseurExiste = Workbooks(c)
End Function

j'espère pas de souci sous 2013, je ne dispose pas de la version... A vérifier l'extension xls sous 2013....

bon après midi
@+
 
Resolu : Problème de compatibilité lors de l'utilisation de FUNCTION

Bonjour,

Merci pour votre aide
J'ai trouvé le problème...
Sur le code de mon Excel 2013, un "e" s'est glissé dans le code..transformant FichOuvert en FicheOuvert !!!!

Erreur corrigé en voyant que votre code fonctionnait...

Merci encore et désolé pour le dérangement

Salutations
Pipou
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
163
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
171
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…