VBA excel Automatiquement sélectionnez Oui lorsque vous êtes invité lors de la fusion
J'aimerais le système automatique pour mes utilisateurs que possible. Maintenant, j'ai le code qui s'exécute lorsque l'utilisateur clique sur un bouton. Le code prend de données avec l'intention de l'appliquer à un document word via le publipostage.
Tout fonctionne comme prévu, sauf il y a toujours un message apparaît disant
L'ouverture de ce document va exécuter la commande SQL suivante:
Select * from 'les BALISES$'
De données à partir de votre base de données seront incorporées dans le document. Voulez-vous
continuer?
J'ai besoin de garder cette aussi simple que possible sans risquer des utilisateurs en sélectionnant "Non" parce qu'ils sont confus. Comment peut-VBA automatiquement passer et accepter le placement des données, comme il le ferait s'ils avaient sélectionné "Oui"?
J'ai essayé tout à l'aide du code suivant pour bloquer les alertes dans l'espoir qu'il serait par défaut "Oui" et de procéder, mais il ne fonctionne pas.
Application.DisplayAlerts = False
C'est ce que j'ai
Sub RunMailMerge()
Application.ScreenUpdating = False
Dim wdOutputName, wdInputName As String
wdOutputName = ThisWorkbook.Path & "\nametags - " _
& Format(Date, "d mmm yyyy")
wdInputName = ThisWorkbook.Path & "\nametags.docx"
' open the mail merge layout file
Dim wdDoc As Object
Set wdDoc = GetObject(wdInputName, "Word.document")
wdDoc.Application.Visible = True
With wdDoc.MailMerge
.MainDocumentType = wdFormLetters
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.Execute Pause:=False
End With
'Application.ScreenUpdating = True
'show and save output file
wdDoc.Application.Visible = True
wdDoc.Application.ActiveDocument.SaveAs wdOutputName
' cleanup
wdDoc.Close SaveChanges:=False
'activedoc.Close
Set wdDoc = Nothing
End Sub
Parfois, le message d'alerte s'ouvre derrière l'ouvrir excel livre et j'ai manuellement minimiser le livre pour sélectionner "Oui". Ce n'est pas vraiment travailler alors qu'il est coincé dans le milieu de l'exécution d'attente pour moi de sélectionner la zone de message de l'option, j'ai donc Alt+D pour minimiser tout, PUIS sélectionnez excel et cliquez sur la boîte de message. Comme vous pouvez l'imaginer, ce n'est pas très pratique. Merci pour l'aide.
ScreenUpdating = False n'a pas fonctionné. Le Code s'exécute bien, juste ne pas passer au travers de la boîte de message, comme j'en ai besoin.
Essayé de réglage DisplayAlerts dans Word, pas seulement Excel?
Williams - Où, et comment, dois-je mettre en œuvre dans le code? J'ai modifié le post Original pour montrer le code que j'utilise actuellement.
OriginalL'auteur Ashton Sheets | 2012-07-02
Vous devez vous connecter pour publier un commentaire.
Essayez de définir la propriété DisplayAlerts dans Word (si c'est là que l'alerte est à venir à partir de):
wdAlertsNone
est un terme constant. Changer de0
ou de déclarer ce à le hautConst wdAlertsNone = 0
Aussi nous n'avons pas besoinApplication
aprèswdDoc
que c'est déjà une application, de sortewdDoc.DisplayAlerts = 0
suffirait.Oui, c'est un Booléen, mais a aussi un équivalent Entier de 0,-1,-2 en fonction de ce qui est actuellement défini. (
wdAlertsAll -1 , wdAlertsMessageBox -2 , wdAlertsNone 0
)Je suppose Ashton de l'utilisation d'autres constantes Word qu'il avait mis une référence à la Parole de la bibliothèque. Qui pourrait avoir été une erreur de ma part, mais dans ce cas, il est intéressant de souligner que l'utilisation de ces sans les définir, pourrait conduire à des problèmes.
Je vais avoir un problème avec le placement. Quand j'ai wdDoc.DisplayAlerts = 0 set AVANT de définir wdDoc = GetObject(wdInputName, "Mot.document"), il n'est évidemment pas de travail parce que wdDoc n'est pas définie. Mais si je l'ai mis immédiatement à la suite de la ligne, il est trop tard parce que le mot n'est qu'ENSUITE, l'ouverture et c'est exactement lorsque le message apparaît donc c'est trop tard.
Vous devez créer une instance de word.demande d'abord, puis l'utiliser pour ouvrir le document.
OriginalL'auteur Tim Williams
http://support.microsoft.com/kb/825765
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Word\Options
"SQLSecurityCheck"=dword:00000000
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\Options
"SQLSecurityCheck"=dword:00000000
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Word\Options
"SQLSecurityCheck"=dword:00000000
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Options
"SQLSecurityCheck"=dword:00000000
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Word\Options
"SQLSecurityCheck"=dword:00000000
Pour ce faire, suivez ces étapes:
OriginalL'auteur Vladislav Rastrusny