Question tte bete sous Vb Excel mais j'y arrive pas

Question tte bete sous Vb Excel mais j'y arrive pas - Programmation

Marsh Posté le 02-08-2001 à 10:00:23    

comment faite pour programmer une fct qui dit
 
Si le classeur excel   popol.xls  est ouvert alors tu fais ca sinon ...
 
j ecris ca  mais la syntaxe n est pas bonne  
 
  if (ThisWorkbook.Path + "\" + popol.xls).open = true Then bla bla
 
 
qq un peu m aider ???
 
Merci

Reply

Marsh Posté le 02-08-2001 à 10:00:23   

Reply

Marsh Posté le 02-08-2001 à 10:44:25    

:fou:  :fou: Y a pas qqun qui sait ca???????
SVPL

Reply

Marsh Posté le 02-08-2001 à 13:38:46    

Voici qqc qui fonctionne :
 
If ThisWorkbook.Name = "Classeur1" Then
    ' c'est le bon fichier ...
Else
    ' ce n'est pas le bon fichier ...
End If
 
Salutations

Reply

Marsh Posté le 02-08-2001 à 17:09:40    

merci  beaucoup  je te dirais demain si ca marche  
ca me sauve la vie  
 
a demain :hello:

Reply

Marsh Posté le 03-08-2001 à 08:55:15    

en fait ca marche pas  mais ca semble correct
je vous montre le prog
 
Sub exemple()  
 
 Dim act As Object
 Dim file As String    
 
 file = ThisWorkbook.Sheets("files" ).[FileAddressData]
 Set act = ThisWorkbook.Sheets("actual" )
   
  If ThisWorkbook.name = "C:/windows/Bureau/addressdata.xls" Then
 
  Workbooks(file).ActiveSheet.Range("T1" ) = ThisWorkbook.name
 
  Else
 
  Workbooks.Open (ThisWorkbook.Path + "\" + file)
  Workbooks(file).ActiveSheet.Range("T1" ) = ThisWorkbook.name
   
  End If
   
End Sub
 
en claire j ai deux classeur differents main.xls et adressdata.xls  si je clique sur un bouton ds main.xls ca doit ouvrir adressdate.xls   jusqu a pas pas de probleme  mais maintenant si je reclique sur ce bouton et que Adressdate EST ENCORE ouvert il fait un bogue
 
le but de mon prog  est de voir si cest deja ouvert ou pas  si ca l'est  on l active juste et si ca l'est pas on l'ouvre et on l'active
 
je pense qu il y a plus grand chose a changer mais je vois pas si qqun peut m'aider MERCI

Reply

Marsh Posté le 03-08-2001 à 14:01:05    

Si j'ai bien compris ce qu'il faut faire, dans main.xls il suffit d'avoir une fonction commme :
 
Sub Macro1()
   Workbooks.Open FileName:="C:/mes documents/addressdata.xls"
End Sub
 
et l'associer à un bouton.
 
Si le bouton est recliqué, addressdata.xls est simplement activé (j'ai testé).
 
Attention l'objet ThisWorkbook, comme son nom l'indique, fait référance au fichier courant.
 
Remaeque : ThisWorkbook.name donne simplement le nom et non le chemin complet.
 
A+

Reply

Marsh Posté le 03-08-2001 à 14:21:46    

ben  non qd  moi je reclique (et si c est encore ouvert) ca me dit  que addressdata est deja ouvert  et il me dit que si je le rouvre  toute les donnee non enregistrer seront perdues  et si je fais non il y a le debbugger qui m indique une erreur sur la ligne  
 
 Workbooks.Open FileName:="C:/mes documents/addressdata.xls"  
 
moi ca me la reactive pas ca ve me le reouvrir  !!!!!
Comment ca se fais ????

Reply

Marsh Posté le 03-08-2001 à 15:15:37    

En effet, je n'avais pas penser à faire des modifications dans addressdata.xls, ça me fait la même erreur que toi !
 
Bon, il faut donc utiliser les gros moyens, voici une autre macro qui semble bien fonctionner : on teste si addressdata.xls n'est pas dans la liste des classeurs déjà ouverts ...
 
A+
-----------
Voici la macro à mettre dans main.xls
 
Sub Macro1()
 
   Dim Trouvé As Boolean
   Dim i As Integer
   Dim Nom As String
 
   Nom = "addressdata.xls"
 
   ' parcourir tous les classeurs qui sont ouverts
   Trouvé = False
   i = 1
   While i <= Workbooks.Count And Not Trouvé
      If Workbooks.Item(i).Name = Nom Then
         Trouvé = True
      Else
         i = i + 1
      End If
   Wend
 
   If Trouvé Then
      ' si ouvert, l'activer simplement
      Workbooks.Item(i).Activate
   Else
      ' si pas ouvert, l'ouvrir et l'activer
      Workbooks.Open "c:\mes documents\" + Nom
   End If
 
End Sub

 

[edtdd]--Message édité par tfj57--[/edtdd]

Reply

Marsh Posté le 03-08-2001 à 15:25:32    

aller  je le test on verra

Reply

Marsh Posté le 03-08-2001 à 15:30:02    

:crazy:  :crazy:  :crazy:  :crazy:  :crazy:  :crazy:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol:  :lol: CA MARCHE  MERCI BEAUCOUP  
 
T es trop fort   franchement Merci  tu me sauve la vie  
Si jamais je peux te rendre service a mom tou n hesite pas

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed