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

Type d'argument Byref incompatible

  • Initiateur de la discussion Initiateur de la discussion Tiobi
  • 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 !

Tiobi

XLDnaute Junior
Bonjour à tous,

Quel type de variable dois-je déclarer afin de pouvoir transmettre le nom de fichier à la fonction Isopen ?
Actuellement je reçois le message:
Type d'argument Byref incompatible

Sub essai()
Dim NomdeFichier

NomdeFichier = "Agenda.xls"
If IsOpen(NomdeFichier) Then MsgBox NomdeFichier & " fermé"
End Sub



Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen = Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function
 
Re : Type d'argument Byref incompatible

Bonjour Tiobi

il faut transmettre à la fonction, le même type de donnée que celui déclaré, entre autre pour ton cas un argument de type "string" :

Code:
Dim NomdeFichier As String

bonne journée
@+
 
Re : Type d'argument Byref incompatible

Bonjour,

Code:
Sub essai()
  Dim NomdeFichier
  NomdeFichier = "Recherche3D.xls"
  If Not IsOpen(NomdeFichier) Then MsgBox NomdeFichier & " fermé"
End Sub

Function IsOpen(Classeur) As Boolean
 On Error Resume Next
 IsOpen = Not Workbooks(Classeur) Is Nothing
 Err.Clear
End Function

JB
Formation Excel VBA JB
 
Re : Type d'argument Byref incompatible

Merci à tous les deux.

J'avais bien déclaré ma variable en type string mais je recevais le message
Type d'argument Byref incompatible

En fait je pense que cela provenais du $ de (classeur$)que je viens de retirer

Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen = Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function

A+
 
Re : Type d'argument Byref incompatible

Re

le caractère "$" est le caractère de déclaration de type de donnée String... Le fait de l'enlever et de déclarer aucun type fait que par défaut tu as des déclarations de type "variant"... Pas trop top à mon avis...

@+
 
Re : Type d'argument Byref incompatible

Re

pour info, fonctionne chez moi les variables déclarées ainsi:

Code:
Option Explicit
Sub essai()
Dim NomdeFichier As String
NomdeFichier = "classeur1"
If Not IsOpen(NomdeFichier) Then MsgBox NomdeFichier & " fermé"
End Sub
Function IsOpen(Classeur$) As Boolean
On Error Resume Next
IsOpen = Not Workbooks(Classeur) Is Nothing
Err.Clear
End Function

@+
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…