FORUM Tom's Hardware » Programmation » Autre » [vba] variable suivant que le classeur est ouvert ou pas
 

[vba] variable suivant que le classeur est ouvert ou pas

Il y a 56 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici



Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [vba] variable suivant que le classeur est ouvert ou pas
 
Aux grandes âmes, les grands challenges
Plus d'informations

Bonjour! j'ai besoin d'aide car je souhaite attribuer à une variable une valeur différente suivant que le classeur était ouvert ou pas. La variable "chemin" contient le chemin coomplet du classeur.
Voici mon code pour l'activation du classeur s'il est ouvert, ou son ouverture s'il ne l'est pas:

Code :
  1. On Error Resume Next
  2.     Workbooks(chemin).Activate              'activer classeur ouvert
  3.         If Err <> 0 Then                          'si classeur pas ouvert
  4.         Workbooks.Open Filename:= _
  5.         chemin                                      'ouvrir le classeur
  6.         End If




Ce que j'aimerai faire c'est attribuer à une variable "deja_ouvert" la valeur "Vrai" si le classeur était déjà ouvert et qu'il a été juste activé, et la valeur "Faux" s'il n'était pas ouvert auparavant et qu'il a fallu l'ouvrir.

J'ai essayé en mettant le code ci-dessous mais ma variable a toujours la valeur "Faux" même si le classeur était déjà ouvert:

Code :
  1. On Error Resume Next
  2.     Workbooks(chemin).Activate              'activer classeur ouvert
  3.         If Err <> 0 Then                          'si classeur pas ouvert 
  4.         deja_ouvert="Faux"                      'variable="Faux" 
  5.         Workbooks.Open Filename:= _
  6.         chemin                                      'ouvrir le classeur
  7.         Else                                          'sinon
  8.         deja_ouvert="Vrai"                        'variable="Vrai"
  9.         End If



le corps s'évade, les idées persistent.
Plus d'informations

le code n'est pas de moi mais je l'utilise dans ma macro et fonctionne très bien:

Code :
  1. Function IsFileOpen(filename As String)
  2. Dim filenum As Integer, Errnum As Integer
  3. On Error Resume Next
  4. filenum = FreeFile()
  5. Open filename For Input Lock Read As #filenum
  6. Close filenum
  7. Errnum = Err
  8. On Error GoTo 0
  9. Select Case Errnum
  10. Case 0
  11. IsFileOpen = False
  12. Case 70
  13. IsFileOpen = True
  14. End Select
  15. End Function


Message édité par Nova13 le 09-06-2006 à 10:01:46
Aux grandes âmes, les grands challenges
Plus d'informations

Merci ça a l'air de marcher ! :)

Plus d'informations

Un grand merci à vous pour cette aide qui m'enleve une enorme epine du pied !!!

zeb
Profil : Modérateur libre

Un bref parcours de la collection Workbooks aurait pu suffire :sarcastic:

Code :
  1. Dim wb As Workbook
  2. Dim IsWorkbookOpen As Boolean
  3. IsWorkbookOpen = False
  4. For Each wb In Workbooks
  5.     If wb.Name = "nom du classeur" Then
  6.         IsWorkbookOpen = True
  7.         Exit For
  8.     End If
  9. Next


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...

  FORUM Tom's Hardware » Programmation » Autre » [vba] variable suivant que le classeur est ouvert ou pas

Aller à :
 

Annonces Google
Publicité
Offres partenaires
Actualités relatives

Les Mac users ont l'esprit plus ouvert

Publié le 17 January 2008

Une étude de Mindset Media a révélé que les personnes ayant l’esprit ouvert ont plus de chance d’acheter un Mac. Lire la suite

Londres se dote d&#039;une couverture sans-fil intégrale

Publié le 23 February 2006

L’opérateur de réseau Wi-Fi The Cloud qui opère actuellement au Royaume Uni, en Allemagne et en Suède vient d'annoncer par la voie d’un communiqué de presse qu’il allait mettre en place et exploite Lire la suite

AMD ouvre un centre de R&D à Shanghai

Publié le 23 August 2006

AMD a ouvert un centre de recherches et de développement à Shanghai appelé Shanghai Research and Developpment Center et dans lequel il prévoit d’employer des centaines de personnes. Ce centre ayant coûté plus Lire la suite

Un nouveau casque Sony haut de gamme

Publié le 12 October 2006

Sony annonce un casque haut de gamme pour le moins étonnant : le Altus MDR-D777. Une plage de fréquences très étendue Sony affirme que son casque peut reproduire des sons de 80 kHz, on se demande l’utilité d’une si haute fréquence car l&# Lire la suite

Les derniers tests

Que choisir ? Home Cinema 5.1 ou projecteur de son ?

Publié le 25 September 2008

Faut-il craquer pour un ensemble 5.1 ou pour une barre de son ? Découvrez les forces et faiblesses comparées de chaque système. Lire la suite

Intel Core i7 (Nehalem) : une architecture signée AMD ?

Publié le 25 September 2008

Avec ses nouveaux processeurs Core i7, Intel fait évoluer les Core 2 en reprenant leur architecture, mais en lui rajoutant des technologies dont la plupart semblent avoir leur équivalent direct chez AMD. Impression ou réalité ? Lire la suite

Test du Nokia N96 : la vie sans écran tactile

Publié le 24 September 2008

Un téléphone haut de gamme peut il échapper à l'écran tactile ? Nokia a tenté le pari avec le N96. Lire la suite

Les nouveaux disques durs 1 To

Publié le 22 September 2008

Un an et demi après l'introduction du premier disque dur 1 To, les prix ont beaucoup diminué et de nouveaux modèles ont été lancés. Mais comment se comportent-ils entre eux et par rapport aux anciens ? Réponse dans ce comparatif. Lire la suite

Les téléchargements