2016-02-27 1 views
-3

En essayant de comprendre comment utiliser le code vba pour sélectionner le bouton non dans une boîte de message. J'ai un classeur qui ouvre et ferme un autre classeur. Lorsque le classeur se ferme, une boîte de message apparaît, c'est-à-dire "Sélectionnez oui ou non". L'utilisateur devra normalement manuellement cliquer sur non. Existe-t-il un moyen de le faire avec du code?Code pour sélectionner Aucun bouton dans la boîte de message

Il s'agit du premier classeur qui ouvre le deuxième classeur avec la zone de message.

Option Explicit 

Private Sub DONEBTN_Click() 
Dim WRKBK2 As Workbook 
Dim Name As String 

Name = "Someones Name" 

Set WRKBK2 = Workbooks.Open("C:\Second Workbook.xlsm")   

WRKBK2.Sheets(1).Range("H7").Value = Name     'Name   

WRKBK2.SaveAs Filename:="C:\New File Name For Workbook2.xlsm", _ 
FileFormat:=52, CreateBackup:=False, local:=True 

Application.DisplayAlerts = False 
WRKBK2.Close 
Application.ScreenUpdating = True 
End Sub 

C'est le code situé dans le deuxième classeur qui est sous ThisWorkbook Private Sub Workbook_BeforeClose (Cancel As Boolean)

Option Explicit 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Dim MSG1 As String 

MSG1 = MsgBox("Select yes or no?", vbYesNo, "Message Box") 

If MSG1 = vbYes Then 

' Code does something 

Else 

ThisWorkbook.Save 

ThisWorkbook.Close 


End If 
End Sub 
+0

Existe-t-il un événement sur le classeur qui crée cette invite? Pourquoi ne pas l'enlever? Ou parlez-vous de la boîte de dialogue de sauvegarde? –

+0

Veuillez préciser quelle boîte de message spécifique vous souhaitez sélectionner Non. Il est souvent utile d'afficher le code, le classeur ou au moins une image du problème que vous posez. –

+0

@ Cody G, Impossible de le supprimer car lorsque l'utilisateur ouvre le fichier plus tard, il devrait pouvoir choisir le bouton oui ou non en fonction de sa situation. – Geoff

Répondre

0

Si vous faites référence à la "Enregistrer le classeur?" utilisez l'option SaveChanges de la méthode Workbook.Close ou Application.DisplayAlerts = False. L'exemple ci-dessous montre les deux.

Application.DisplayAlerts = False 
Workbook("Sample Workbook.xlsx").Close SaveChanges:=False 'Or use .True to save the workbook before closing 
Application.DisplayAlerts = True