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

Classeur déja ouvert

  • Initiateur de la discussion Brigitte
  • Date de début
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
 
A

A_binouze_drinker_among_others

Guest
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
 
B

Brigitte

Guest
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
 
A

A_binouze_drinker_among_others

Guest
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
 

Discussions similaires

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