Ouverture fichier word conditionnelle

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 !

incubus20851

XLDnaute Occasionnel
Bonjour à toute et à tous,

Je vient vers vous car j'ai une petite question :

J'aimerais qu'à partir d'Excel a chaque ligne remplie si une cellule genre (D61) est supérieur à 21 qu'un fichier word s'ouvre.

Quelqu'un a une idée de comment il faudrait faire ?

J'ai trouvé le code pour ouvrir un fichier word en appuyant sur un bouton liée à une macro. Mais je ne sais pas lancer une macro en fonction d'un nombre dans une cellule, surtout qu'il faudrait que la règle s'applique sur les lignes suivantes (D62) (D63) (D64) et ainsi de suite.

Merci d'avance pour votre réponse
A bientôt
 
Dernière édition:
Re : Ouverture fichier word conditionnelle

Bonjour,
Très bizarre le fonctionnement de ton fichier.
Si tu ouvres ton doc word pour modification parce que la valeur en G est supérieure à 20, c'est bien ce que tu demandais précedemment, pourquoi créer une nouvelle macro ?
Donc avec la macro précédente, il suffit de rajouter qq lignes
Code:
Sub OuvrirDocWordExistant()
'necesite d'activer la reference Microsoft Word xx.x Object Library
Dim appWrd As Word.Application
Dim docWord As Word.Document
Set appWrd = CreateObject("Word.Application")
appWrd.Visible = True
Set docWord = appWrd.Documents. _
Open("C:\Documents and Settings\ARU346\Bureau\Lettre Assistante Sociale.doc", ReadOnly:=True)
With docWord
    .Bookmarks("Signet1").Range.Text = Cells(ActiveCell.Row, 1)
    .Bookmarks("Signet2").Range.Text = Cells(ActiveCell.Row, 2)
    .Bookmarks("Signet3").Range.Text = Cells(ActiveCell.Row, 6)
End With
[I]'....Impression, fermeture...[/I]
End Sub
A toi de voir s'il faut ensuite imprimer et fermer word automatiquement
Pour la question subsidiaire, là non plus je ne pige pas car il y a une formule dans la colonne M.
A+
kjin
 
Re : Ouverture fichier word conditionnelle

Bonjour,

La réponse a pourquoi crée une autre macro, c'est que je ne savais pas comment l'intégrer dans la premiere macro tout simplement.

J'ai essayer ton code et il me renvoi l'erreur :
"Erreur d'execution '6028' : Impossible de supprimer la plage." Pourtant mon formulaire word je l'ai pas protégé et j'ai essayé avec le read only true et false

Dans le debogage il bloque sur ça :
Code:
.Bookmarks("Signet1").Range.Text = Cells(ActiveCell.Row, 1)

Y'a t-il une solution ?

Merci encore pour ta réponse.

Pour le deuxieme point, pour mettre "FAIT LE" dans la colonne M c'est vrai qu'il y a une formule, mais est ce qu'il est possible d'intégrer dans le code de la macro comme quoi après avoir ouvert le document word, supprimer ce qu'il y a dans la cellule et inscrire "FAIT LE" + avec la date du jour.

Faisable ??

Merci beaucoup
A toute à l'heure !
 
Re : Ouverture fichier word conditionnelle

Voici le fichier doc word avec le formulaire.

J'ai utilisé les signets pour que les gens puissent quand même le modifié si ils le veulent, mais je connais pas trop la différence entre l'utilisation de Signet et de publipostage.

Merci !
 

Pièces jointes

Re : Ouverture fichier word conditionnelle

Re,
Il s'agit en fait de champs "Texte" de formulaire, et non de véritables signets
Dans le module de la feuille COM 2009
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 5 Or Target.Column = 6 Then
    If IsNumeric(Cells(Target.Row, 7)) And Cells(Target.Row, 7) > 20 Then
        [B][COLOR="Blue"]ExportWord[/COLOR][/B]
        Cells(Target.Row, 13) = "Fait le " & Date
    End If
End If

End Sub
Dans un module standard
Code:
Sub [B][COLOR="Blue"]ExportWord[/COLOR][/B]()
'necesite d'activer la reference Microsoft Word xx.x Object Library
Dim appWrd As Word.Application
Dim docWrd As Word.Document
On Error Resume Next
Set appWrd = GetObject(, "Word.Application")
If Err.Number <> 0 Then
    Set appWrd = CreateObject("Word.Application")
End If
On Error GoTo 0
appWrd.Visible = True
Set docWrd = appWrd.Documents. _
Open("C:\Documents and Settings\ARU346\Bureau\Lettre Assistante Sociale.doc")
With docWrd
    .FormFields("Signet1").Result = Cells(ActiveCell.Row, 2)
    .FormFields("Signet2").Result = Cells(ActiveCell.Row, 1)
    .FormFields("Signet3").Result = "Date de fin " & Cells(ActiveCell.Row, 6)
End With
'docWrd.PrintOut 'imprimer
docWrd.Close True 'ferme le document word en sauvegardant les données
appWrd.Quit 'ferme la session Word

Set docWrd = Nothing
Set appWrd = Nothing

End Sub
J'ai ajouter le contrôle d'erreur pour le cas où le fichier serait déjà ouvert
Sans info de ta part, le fichier est enregistré avec les nouvelles valeurs donc les anciennes sont écrasées (?!)
A+
kjin
 
- 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

Discussions similaires

J
Réponses
1
Affichages
2 K
A
Réponses
30
Affichages
6 K
S
Réponses
13
Affichages
2 K
sanae_J
S
C
Réponses
1
Affichages
4 K
Conrad13
C
G
Réponses
6
Affichages
1 K
GiuMon
G
D
Réponses
4
Affichages
1 K
diroz
D
Retour