OVH Cloud OVH Cloud

Excel et Publisher

6 réponses
Avatar
v
Bonjour,

J'ai une application Excel qui fait appel à Word, donc j'utilise
Word.Application
Mais avec Publisher ?


Merci

6 réponses

Avatar
Clément Marcotte
Bonjour,

Me semble que c'est publisher.application


"v" a écrit dans le message de news:
43d653ae$0$19689$
Bonjour,

J'ai une application Excel qui fait appel à Word, donc j'utilise
Word.Application
Mais avec Publisher ?


Merci


Avatar
v
Bonjour,

Me semble que c'est publisher.application



Est-ce que celà veut dire que si je veux utiliser Publisher à la place
de Word dans tout mon code j'ai juste a remplacer Word par Publisher
(publisher.application à la place de word.appliaction, ... ?) ?

Merci





"v" a écrit dans le message de news:
43d653ae$0$19689$

Bonjour,

J'ai une application Excel qui fait appel à Word, donc j'utilise
Word.Application
Mais avec Publisher ?


Merci







Avatar
Clément Marcotte
Bonjour,

Pas sur. Les modèles d'objets sont différents. Si tu te limites "au tronc
commun" de VBA, je dirais oui, mais si tu veux utiliser des objets
spécifiques aux applications, je dirais non.

Ceci dit, la "mécanique" est la même.


"v" a écrit dans le message de news:
43d658ed$0$20169$
Bonjour,

Me semble que c'est publisher.application



Est-ce que celà veut dire que si je veux utiliser Publisher à la place de
Word dans tout mon code j'ai juste a remplacer Word par Publisher
(publisher.application à la place de word.appliaction, ... ?) ?

Merci





"v" a écrit dans le message de news:
43d653ae$0$19689$

Bonjour,

J'ai une application Excel qui fait appel à Word, donc j'utilise
Word.Application
Mais avec Publisher ?


Merci








Avatar
Clément Marcotte
Bonjour,

Si tu n'as pas Publisher sur ta machine:

L'aide de VBA pour Publisher:

http://www.microsoft.com/downloads/details.aspx?FamilyIDñ410bd2-a46a-49e2-80f8-23a36fdf3af3&displaylang=en
(2003)



"v" a écrit dans le message de news:
43d658ed$0$20169$
Bonjour,

Me semble que c'est publisher.application



Est-ce que celà veut dire que si je veux utiliser Publisher à la place de
Word dans tout mon code j'ai juste a remplacer Word par Publisher
(publisher.application à la place de word.appliaction, ... ?) ?

Merci





"v" a écrit dans le message de news:
43d653ae$0$19689$

Bonjour,

J'ai une application Excel qui fait appel à Word, donc j'utilise
Word.Application
Mais avec Publisher ?


Merci








Avatar
v
Bonjour,

Pas sur. Les modèles d'objets sont différents. Si tu te limites "au tronc
commun" de VBA, je dirais oui, mais si tu veux utiliser des objets
spécifiques aux applications, je dirais non.

Ceci dit, la "mécanique" est la même.



Parce que j'ai un problème de code si je veux remplacer "word" en
"publisher" :




Private Sub CommandButton3_Click()


Dim monApp As Publisher.Application

Dim lettre As Publisher.Document


Dim myRange As Range
Dim ref As String
Dim nomFic As String
Dim reponse1 As Integer
Dim reponse2 As Integer
Set myRange = Excel.Range("A1", "Y8")
g = 2
i = 2
reponse1 = MsgBox("Voulez vous videz ce tableux a la fin de
l'application ? ", 4)
reponse = MsgBox("Voulez vous (en plus de les créer) imprimer toutes ces
lettres maintenant?", 4, "IMPRESSION")
'on recupere la premiere ref courrier
firstRef = Cells(2, 17).Value
'tant que tout ouvrefic pas parcouru
Do While Not Cells(i, 2).Value = ""
firstRef = Cells(g, 17).Value
lastRef = Cells(i, 17).Value
'tant que meme ref courrier on passe a la ligne suivante
Do While firstRef = lastRef
i = i + 1
lastRef = Cells(i, 17).Value
Loop
'on ouvre la lettre type ref
Set monApp = New Publisher.Application
Set lettre = monApp.Documents("C:PUBLIPOSTrelance" & firstRef &
".pub")


'on fusionne
With lettre.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource "C:PUBLIPOSTouvrefic2.xls", ReadOnly:=True,
Connection:="myRange"
'on selectionne que les ligne qui nous interresse
.DataSource.FirstRecord = g - 1
.DataSource.LastRecord = i - 2
.Destination = wdSendToNewDocument
.Execute pause:=True
'on sauve au nom de la lettre ref
.Application.ActiveDocument.SaveAs ("C:PUBLIPOSTresultat" &
firstRef & ".pub")
End With
With lettre.MailMerge
If reponse = 6 Then
.Application.ActiveDocument.PrintOut
End If
.Application.ActiveDocument.Close
End With
monApp.Documents.Close
g = i
Loop
MsgBox "Toute les relances ont été générées."
If reponse1 = 6 Then
'on vide ouvrefic
Range("A2", "Y" & i & "").Value = ""
MsgBox "Toutes les valeurs ont été supprimées."
End If





End Sub

Private Sub CommandButton4_Click()
'Tri automatique sur une colonne déterminée

Cells.Select

'Sélection sur la "Référence Courrier"
Selection.Sort Key1:=Range("Q2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

'Information
MsgBox "Opération terminée"

End Sub




























"v" a écrit dans le message de news:
43d658ed$0$20169$


Bonjour,

Me semble que c'est publisher.application



Est-ce que celà veut dire que si je veux utiliser Publisher à la place de
Word dans tout mon code j'ai juste a remplacer Word par Publisher
(publisher.application à la place de word.appliaction, ... ?) ?

Merci





"v" a écrit dans le message de news:
43d653ae$0$19689$


Bonjour,

J'ai une application Excel qui fait appel à Word, donc j'utilise
Word.Application
Mais avec Publisher ?


Merci











Avatar
Clément Marcotte
Cela revient à ce que j'ai dit. Les modèles objets sont différents, la macro
ne peut pas être transposée directement.

Par exemple, dans Publisher, on n'écrit pas directement dans le document,
mais dans une zone de texte qui est dans le document.


"v" a écrit dans le message de news:
43d65d93$0$29227$
Bonjour,

Pas sur. Les modèles d'objets sont différents. Si tu te limites "au tronc
commun" de VBA, je dirais oui, mais si tu veux utiliser des objets
spécifiques aux applications, je dirais non.

Ceci dit, la "mécanique" est la même.



Parce que j'ai un problème de code si je veux remplacer "word" en
"publisher" :




Private Sub CommandButton3_Click()


Dim monApp As Publisher.Application

Dim lettre As Publisher.Document


Dim myRange As Range
Dim ref As String
Dim nomFic As String
Dim reponse1 As Integer
Dim reponse2 As Integer
Set myRange = Excel.Range("A1", "Y8")
g = 2
i = 2
reponse1 = MsgBox("Voulez vous videz ce tableux a la fin de l'application
? ", 4)
reponse = MsgBox("Voulez vous (en plus de les créer) imprimer toutes ces
lettres maintenant?", 4, "IMPRESSION")
'on recupere la premiere ref courrier
firstRef = Cells(2, 17).Value
'tant que tout ouvrefic pas parcouru
Do While Not Cells(i, 2).Value = ""
firstRef = Cells(g, 17).Value
lastRef = Cells(i, 17).Value
'tant que meme ref courrier on passe a la ligne suivante
Do While firstRef = lastRef
i = i + 1
lastRef = Cells(i, 17).Value
Loop
'on ouvre la lettre type ref
Set monApp = New Publisher.Application
Set lettre = monApp.Documents("C:PUBLIPOSTrelance" & firstRef &
".pub")


'on fusionne
With lettre.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource "C:PUBLIPOSTouvrefic2.xls", ReadOnly:=True,
Connection:="myRange"
'on selectionne que les ligne qui nous interresse
.DataSource.FirstRecord = g - 1
.DataSource.LastRecord = i - 2
.Destination = wdSendToNewDocument
.Execute pause:=True
'on sauve au nom de la lettre ref
.Application.ActiveDocument.SaveAs ("C:PUBLIPOSTresultat" &
firstRef & ".pub")
End With
With lettre.MailMerge
If reponse = 6 Then
.Application.ActiveDocument.PrintOut
End If
.Application.ActiveDocument.Close
End With
monApp.Documents.Close
g = i
Loop
MsgBox "Toute les relances ont été générées."
If reponse1 = 6 Then
'on vide ouvrefic
Range("A2", "Y" & i & "").Value = ""
MsgBox "Toutes les valeurs ont été supprimées."
End If





End Sub

Private Sub CommandButton4_Click()
'Tri automatique sur une colonne déterminée

Cells.Select

'Sélection sur la "Référence Courrier"
Selection.Sort Key1:=Range("Q2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

'Information
MsgBox "Opération terminée"

End Sub




























"v" a écrit dans le message de news:
43d658ed$0$20169$


Bonjour,

Me semble que c'est publisher.application



Est-ce que celà veut dire que si je veux utiliser Publisher à la place de
Word dans tout mon code j'ai juste a remplacer Word par Publisher
(publisher.application à la place de word.appliaction, ... ?) ?

Merci





"v" a écrit dans le message de news:
43d653ae$0$19689$


Bonjour,

J'ai une application Excel qui fait appel à Word, donc j'utilise
Word.Application
Mais avec Publisher ?


Merci