Classeur déja ouvert

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

B

Brigitte

Guest
Bonjour tout le monde,

Dans mon classeur j'ai mis des boutons qui ouvrent
d'autre classeur.
Je voudrais qu'il n'y ai pas la possibilité d'ouvrir
2 fois le même classeur, car il apparait un message
d'erreur. Ce serait bien qu'une boite de dialogue
s'affiche en disant "fichier déjà ouvert"
J'ai déjà vu ça sur le forum, mais sans la recherche
je n'ai pas trouvé.

Merci d'avance

@Brigitte
 
bonjour

quelques méthodes

Sub UseMyWorkbook
if Not ThereIsOne(MyWorkbook, Among:=workbooks) then workbooks(MyWorkbook).Open
end Sub

function ThereIsOne(itemname As String, Among As Object) As Boolean
dim Item As Object
for each Item In Among
ThereIsOne = (itemname = Item.name)
if ThereIsOne then Exit for 'exit early if found
next Item
end function

Autre méthode : une fonction, fournie par Rob Bovey
function ClasseurOuvert(ByVal NomDuClasseur As String) As Boolean
On Error Resume next
ClasseurOuvert = (LCase$(workbooks(NomDuClasseur).name) = LCase$(NomDuClasseur))
end function


bye
 
Rebonjour binouze, bonjour le forum,

j'ai fait un copier coller de ta macro dans mon vba,
mais ça ne marche pas, à mon avis s'est une fonction,
et je ne sais pas comment on les utilisent.
Voici ma macro mais comment la modifier. Tu sais je suis débutante...

Merci

Sub Ouvre()
Dim classeurouvert As Boolean
Dim nomduclasseur As String
nomduclasseur = "lenom.xls"
classeurouvert = ((Workbooks(nomduclasseur).Name) = LCase$(nomduclasseur))

Workbooks.Open FileName:="c:\mes documents\lenom.xls"

Exit Sub

@Brigitte
 
sub demo
If ClasseurOuvert(nomduclasseur ) = True Then
MsgBox "test"
end if
end sub
Function ClasseurOuvert(ByVal NomDuClasseur As String) As Boolean
On Error Resume Next
ClasseurOuvert = (LCase$(Workbooks(NomDuClasseur).Name) = LCase$(NomDuClasseur))
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
2 K
Retour