Question tte bete sous Vb Excel mais j'y arrive pas - Programmation
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
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
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 = "Cwindows/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
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:="Cmes 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+
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:="Cmes documents/addressdata.xls"
moi ca me la reactive pas ca ve me le reouvrir !!!!!
Comment ca se fais ????
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]
Marsh Posté le 03-08-2001 à 15:30:02
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
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