Condition pour ouvrir un fichier

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

P

Pias

Guest
Bonsoir le Forum

Je souhaite faire le macro suivant :

Le fichier B s’ouvre seulement a la condition que la Feuil1 do fichier A est aussi ouverte cas contraire un message s’affiche et 5 secondes après le fichier se ferme.

Merci beaucoup d’avance si quelqu’un peu m’aider a le réaliser .

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
Bonsoir Pias, le Forum

On pourrait faire ceci : (dans le Private Module de ThisWorkBook du FichierB)

Private Sub Workbook_Open()
On Error GoTo CasNonOuvert
Workbooks("FichierA.xls").Sheets("Feuil1").Activate
MsgBox "La Macro peut tourner le FichierA est bien Ouvert"
ThisWorkbook.Activate
Exit Sub
CasNonOuvert:
Msgbox "Niet Niet on ferme Tout, ouvrez le FichierA"
ThisWorkbook.Close 0
End Sub


Je ne vois pas l'utiliter d'attendre 5 secondes (on ferait mieux de faire ouvrir le FichierA par VBA !!!!) mais si tu y tiens tu changes les dernières ligne de code comme suit :

CasNonOuvert:
Application.OnTime Now + TimeValue("00:00:05"), "TheCloser"
End Sub

Private Sub TheCLoser()
ThisWorkbook.Close 0 'sans sauver sinon True ou 1
End Sub


Et si tu veux plutot ouvrir ton FichierA (si il existe of course sinon Bug) alors :

Private Sub Workbook_Open()
TheStart:
On Error GoTo CasNonOuvert
Workbooks("0001Test.xls").Sheets("Feuil1").Activate
MsgBox "La Macro peut tourner le FichierA est bien Ouvert"
ThisWorkbook.Activate
Exit Sub
CasNonOuvert:
Workbooks.Open "C:\Mes Documents\0001Test.xls"
GoTo TheStart
End Sub


Bonne Nuit
@+Thierry
 
Bonsoir,

Un petit exemple :

Sub Ouvre()
Dim NomClasseur As String, NomFeuille As String
NomClasseur = ActiveWorkbook.Name
NomFeuille = ActiveSheet.Name
If NomClasseur = "Classeur1.xls" And NomFeuille = "Feuil1" Then
Workbooks.Open "c:\Classeur2.xls"
Else
MsgBox "Opération non autorisée", vbOKOnly
With Workbooks("classeur1.xls")
.Save
.Close
End With
End If
End Sub

Dans le cas présent, le fichier "Classeur2.xls" ne s'ouvre que si le classeur actif est "Classeur1.xls" et si la feuille active est "Feuil1" sinon un message box apparait et lors du clique sur le bouton OK, le classeur "Classeur1.xls" est sauvegardé et fermé

@+

Ronan
 
Salut, Thierry, Ronan et le Forum

Un tout grand merci a vous deux.
Je viens de tester sur mon application et ça fonctionne.
Du coup une épine de moins pour moi.

Je ne sais pas comment vous remercier, si je pouvais je vous donnerais un Kilo de chocolat Suisse !

Mais peut-être que ça peut se faire pour ma prochaine visite a Monaco !
Même si je ne sais pas ton adresse Thierry, Je vais demander a Didier Deschamps je suis sur qu’il connais un supporter de Monaco comme toi, et si tu aide A.S.M comme tu aide le forum c’est pas étonnent la saison qu’ils ont fais l’année dernier. ( ils ont de la chance ….)

Bonne nuit a vous tous et Merci le Forum

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
- 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

  • Question Question
XL 2019 B
Réponses
10
Affichages
421
Retour