Bonjour,
J'ai une base de d'adresse sous excel.
Depuis un menu (UserForm), je peux cr=E9er diff=E9rents=20
documents qui reprennent les donn=E9es.=20
J'aimerais =E9galement, par un click sur mon UserFrom,=20
pouvoir cr=E9er des =E9tiquettes (soit une page par adresse,=20
soit une page avec les adresses compl=E8tes).
A votre avis, est-ce possible ?
Je scrute les questions et r=E9ponses sur ce sujet, je=20
teste le code que je peux r=E9cup=E9rer.
GetObject, par exemple, est abordable avec excel, mais=20
d=E8s que je veux l'utiliser avec word c'est le plantage=20
avec les d=E9clarations, ...
Si quelqu'un peut m'indiquer le code pour 1) ouvrir un=20
fichier word existant et 2) cr=E9er et sauvarder un fichier=20
word, =E7a m'aiderait beaucoup.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clément Marcotte
Bonjour,
Depuis un menu (UserForm), je peux créer différents documents qui reprennent les données. J'aimerais également, par un click sur mon UserFrom, pouvoir créer des étiquettes (soit une page par adresse, soit une page avec les adresses complètes). A votre avis, est-ce possible ?
Pour tes étiquettes, fais un publipostage à partir de Word, avec ton classeur Excel comme source de données. Cela va être bien moins de trouble. Même pas besoin de macro
Ceci dit:
Si quelqu'un peut m'indiquer le code pour 1) ouvrir un fichier word existant et 2) créer et sauvarder un fichier word, ça m'aiderait beaucoup.
Avec quelques commentaires et un peu de gestion d'erreurs: (Attention aux coupures de lignes qui pourraient survenir à l'insu de mon plein gré)
Sub OuvrirWordAvecExcel() Dim AppWord As Object On Error GoTo piegeerreur 'Essaie de récupérer l'instance de Word 'active au cas où Word serait ouvert 'Si Word n'est pas ouvert, cela génère 'l'erreur numéro 429 'Dans ce cas, c'est le gestionnaire d'erreur "piegeerreur" 'qui prend le relais et qui ouvre Word Set AppWord = GetObject(, "Word.Application") AppWord.Visible = True AppWord.Documents.Add AppWord.ActiveDocument.SaveAs "LeNouveauDocument.doc" 'Sortie de routine, pour éviter le gestionnaire d'erreurs Exit Sub 'Gestionnaire d'erreurs piegeerreur: Select Case Err.Number Case 429 'Word n'est pas ouvert 'Ouverture de Word et reprise 'du programme à la ligne suivant 'celle où s'est produit l'erreur Set AppWord = CreateObject("Word.Application") Resume Next Case 5153 'Le fichier "DOC" existe déjà. 'Fin du programme. 'Au lieu de terminer le programme, on pourrait 'mettre à laplace la possibilité de changer le 'nom du fichier, mais là, je n'ai pas le temps MsgBox "Le fichier existe déjà. Fin du programme et retour à Word" Case Else MsgBox "Erreur imprévue. Fin du programme et retour à Word" End End Select End Sub
Bonjour,
Depuis un menu (UserForm), je peux créer différents
documents qui reprennent les données.
J'aimerais également, par un click sur mon UserFrom,
pouvoir créer des étiquettes (soit une page par adresse,
soit une page avec les adresses complètes).
A votre avis, est-ce possible ?
Pour tes étiquettes, fais un publipostage à partir de Word, avec ton
classeur Excel comme source de données. Cela va être bien moins de
trouble. Même pas besoin de macro
Ceci dit:
Si quelqu'un peut m'indiquer le code pour
1) ouvrir un fichier word existant
et 2) créer et sauvarder un fichier
word, ça m'aiderait beaucoup.
Avec quelques commentaires et un peu de gestion d'erreurs:
(Attention aux coupures de lignes qui pourraient survenir
à l'insu de mon plein gré)
Sub OuvrirWordAvecExcel()
Dim AppWord As Object
On Error GoTo piegeerreur
'Essaie de récupérer l'instance de Word
'active au cas où Word serait ouvert
'Si Word n'est pas ouvert, cela génère
'l'erreur numéro 429
'Dans ce cas, c'est le gestionnaire d'erreur "piegeerreur"
'qui prend le relais et qui ouvre Word
Set AppWord = GetObject(, "Word.Application")
AppWord.Visible = True
AppWord.Documents.Add
AppWord.ActiveDocument.SaveAs "LeNouveauDocument.doc"
'Sortie de routine, pour éviter le gestionnaire d'erreurs
Exit Sub
'Gestionnaire d'erreurs
piegeerreur:
Select Case Err.Number
Case 429
'Word n'est pas ouvert
'Ouverture de Word et reprise
'du programme à la ligne suivant
'celle où s'est produit l'erreur
Set AppWord = CreateObject("Word.Application")
Resume Next
Case 5153
'Le fichier "DOC" existe déjà.
'Fin du programme.
'Au lieu de terminer le programme, on pourrait
'mettre à laplace la possibilité de changer le
'nom du fichier, mais là, je n'ai pas le temps
MsgBox "Le fichier existe déjà. Fin du programme et
retour à Word"
Case Else
MsgBox "Erreur imprévue. Fin du programme et retour à
Word"
End
End Select
End Sub
Depuis un menu (UserForm), je peux créer différents documents qui reprennent les données. J'aimerais également, par un click sur mon UserFrom, pouvoir créer des étiquettes (soit une page par adresse, soit une page avec les adresses complètes). A votre avis, est-ce possible ?
Pour tes étiquettes, fais un publipostage à partir de Word, avec ton classeur Excel comme source de données. Cela va être bien moins de trouble. Même pas besoin de macro
Ceci dit:
Si quelqu'un peut m'indiquer le code pour 1) ouvrir un fichier word existant et 2) créer et sauvarder un fichier word, ça m'aiderait beaucoup.
Avec quelques commentaires et un peu de gestion d'erreurs: (Attention aux coupures de lignes qui pourraient survenir à l'insu de mon plein gré)
Sub OuvrirWordAvecExcel() Dim AppWord As Object On Error GoTo piegeerreur 'Essaie de récupérer l'instance de Word 'active au cas où Word serait ouvert 'Si Word n'est pas ouvert, cela génère 'l'erreur numéro 429 'Dans ce cas, c'est le gestionnaire d'erreur "piegeerreur" 'qui prend le relais et qui ouvre Word Set AppWord = GetObject(, "Word.Application") AppWord.Visible = True AppWord.Documents.Add AppWord.ActiveDocument.SaveAs "LeNouveauDocument.doc" 'Sortie de routine, pour éviter le gestionnaire d'erreurs Exit Sub 'Gestionnaire d'erreurs piegeerreur: Select Case Err.Number Case 429 'Word n'est pas ouvert 'Ouverture de Word et reprise 'du programme à la ligne suivant 'celle où s'est produit l'erreur Set AppWord = CreateObject("Word.Application") Resume Next Case 5153 'Le fichier "DOC" existe déjà. 'Fin du programme. 'Au lieu de terminer le programme, on pourrait 'mettre à laplace la possibilité de changer le 'nom du fichier, mais là, je n'ai pas le temps MsgBox "Le fichier existe déjà. Fin du programme et retour à Word" Case Else MsgBox "Erreur imprévue. Fin du programme et retour à Word" End End Select End Sub