activation automatique commande SQL dans Excel

demarcj

XLDnaute Nouveau
Bonjour,

Je ne sais pas s'il s'agit d'un problème SQL ou plutot VB (je me suis donc permis de poser ma question sur les 2 forums.

Voici moi problème...

Toutes les manipulations ont été simplifiés car ces programmes sont utilisés par du personnel "maladroit"...

J'ai créé une base de donnée (avec formulaire d'encodage) dans Excel... un fois les informations encodées... on utilise un fichier Word pour faire du publipostage... et dans ce fichier pour facilité la tache de tous le monde... à l'ouverture il réalise directement le publipostage... ouvre un fichier lettre1 comprennant les unes en dessous des autres toutes lees fiches complétées (en fonction du tableau Excel)... et ferme automatique le fichier de départ pour éviter toutes manipulations dévastatrices...
Jusque là tout est bon... mais pour ne garder que les fiches en cours... j'ai modifié la liste des destinataires pour y inclure la consigne de ne conserver que certaine donnée et de les classées par ordre alphabétique...
et à l'ouverture... il m'ouvre une fenètre pour demandé si on veut "exécuter la commande SQL suivante: ... et il demande de cliquer sur "OUI"... dès que l'on clique sur OUI il lance le publipostage... ouvre lettre1 et ferme le fchier de départ...
Mais si par erreur quelqu'un clique sur NON... il pert le lien avec le fichier Excel... et ça ne fonctionne plus...
J'aurai donc aimé rajouter à ma macro de publipostage automatique... la fonction de cliquer sur "OUI" lors de l'excécution de la commade SQL... ou bien de demander un activation automatique de ces commandes pour ce fichier...

voici la macro que j'utilise actuellement...

Private Sub document_Open()
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ActiveWindow.ActivePane.VerticalPercentScrolled = 0
Windows("mic présentation.doc").Activate
ActiveDocument.Save
ActiveWindow.Close
End Sub

Jérôme

Un tout grand merci d'avance
 

Catrice

XLDnaute Barbatruc
Re : activation automatique commande SQL dans Excel

Bonsoir,

chez moi, l'exemple joint fontionne.
Tester en copiant les fichiers à la racine de C: et en copiant le code dans un module Word.


J'ai essayé la solution de modeste mais je n'arrive pas automatiser le choix de la table :(
 

Pièces jointes

  • base.zip
    4.5 KB · Affichages: 51
  • base.zip
    4.5 KB · Affichages: 48
  • base.zip
    4.5 KB · Affichages: 59
Dernière édition:

demarcj

XLDnaute Nouveau
Re : activation automatique commande SQL dans Excel

Sorry mais je dois avoir un petit soucis dans mon fichier xls...

j'ai rejoint le même fichier que le votre en remplaçant le xls par le mien et en ajustant le code et le doc...

c'est vraiment super sympa...

merci
 

Pièces jointes

  • Test.zip
    36.3 KB · Affichages: 47
  • Test.zip
    36.3 KB · Affichages: 40
  • Test.zip
    36.3 KB · Affichages: 40

Modeste

XLDnaute Barbatruc
Re : activation automatique commande SQL dans Excel

Bonjour,

il y a effectivement un petit souci au niveau de ta base en Excel: l'en-tête de la colonne "en cours" contient, en réalité, 5 espaces devant le texte lui-même.
J'ai continué de regarder la macro, par ailleurs. Si tu fermes automatiquement le document "Test.doc" en enregistrant les modifications, après le publipostage, je continue de dire que créer un modèle serait tout aussi efficace ... et plus simple à mettre en oeuvre (même si je comprends bien la logique de ce que tu veux faire) ... d'autant que le code ne semble pas encore fonctionner de manière optimale:confused:. Le fait même de fermer et sauvegarder le "test.doc" via la macro semble provoquer un problème avec le "base.xls" ... qui a l'air de rester "verrouillé".

Modeste
 

Catrice

XLDnaute Barbatruc
Re : activation automatique commande SQL dans Excel

Bonjour,

Bien vu Modeste.
Effectivement les espaces dans le nom de champ "en cours" posaient probleme.
Sans ces espaces, la macro que j'ai proposée fonctionne.
Je n'ai pas de probleme de verrouillage de la base à la fermeture du .Doc

Voir tes fichiers corrigés joints à tester
 

Pièces jointes

  • base.zip
    25.1 KB · Affichages: 71
  • base.zip
    25.1 KB · Affichages: 62
  • base.zip
    25.1 KB · Affichages: 70
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : activation automatique commande SQL dans Excel

Demarcj, Catrice,

Pour Catrice: c'est dans la macro de Jérôme qu'il y avait des lignes supplémentaires. Or comme il enregistrait le fichier, avant de le fermer, c'est toujours la même requête SQL qui est exécutée pour le publipostage ... d'où ma question sur l'intérêt d'une macro.

Bonne journée à tout le monde.
 

demarcj

XLDnaute Nouveau
Re : activation automatique commande SQL dans Excel

par quoi est ce que je peux la remplacer... il faut que lorsque le document est ouvert... il publiposte exécute la commande SQL pour slectionner certaine donnée puis ferme le fichier de base (de peur que quelqu'un en le modifie)...
 

demarcj

XLDnaute Nouveau
Re : activation automatique commande SQL dans Excel

oui et il me dit que le chemin d'accès de la base de donnée est incorrect (il conseille de vérifier l'orthographe) mais il est correct...

je commence à désespérer et je crois que je vais remettre une note sur chaque PC où le programme est utilisé pour bien rappeler qu'il fait cliquer sur OUi...

l'autre question que je pose c'est avec votre code... vous commencer par Sub test()...
dans ce cas il lance la macro quand...
 

demarcj

XLDnaute Nouveau
Re : activation automatique commande SQL dans Excel

ça marche pas...
j'ai juste copier ton code dans VB...
à l'ouverture il me demande "d'activer les macro"...
puis il ouvre word et il ne se passe rien...

si je modifie la macro pour lui demander de la lancer à l'ouverture du document il me dit qu'il ne trouvze pas la base de donnée
 

demarcj

XLDnaute Nouveau
Re : activation automatique commande SQL dans Excel

et voila la solution ...
Word 2003
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Options

"SQLSecurityCheck"=dword:00000000
Démarrez l'Éditeur du Registre.
Recherchez la clé de Registre suivante et cliquez dessus :
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Options
Cliquez sur Edition, pointez sur Nouveau, puis cliquez sur Valeur DWORD.
Sous Nom, tapez :
SQLSecurityCheck
Double-cliquez sur SQLSecurityCheck.
Dans la zone Données de la valeur, tapez :
00000000
Cliquez sur OK.
Retour au début
 

Catrice

XLDnaute Barbatruc
Re : activation automatique commande SQL dans Excel

Bonjour,

Ma solution fonctionne avec le code dans un autre document.
Ce code ouvre alors Test.doc avec le bon chemin.
On ne peut pas utiliser l'evenement Open du Doc car il est postérieur à la boite de dialogue SQL...

C'est bien si tu as trouvé une solution. Tu dois pouvoir faire un petit .reg pour executer sur chque machine ou le faire par macro ...
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo