Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

envoyer données par fax ...par macro

6 réponses
Avatar
zappy
Bonjour à tous,

je cherche depuis pas mal de temps à finaliser un code vba qui envoie
automatiquement une feuille excel par fax...
Exemple, en feuille1, en A1:A10 des noms de correspondants, en B1:B10 leur
numéro de fax, plus 1 feuille pour chaque correspondant.
Mon rêve est donc d'appuyer sur un CommandButton, et voili-voilà, 1 feuille
personnalisée est envoyée par fax à chaque correspondant...
Mon environnement et celui supposé du futur utilisateur : windows XP, Excel
2002 et le Microsoft Shared Fax Driver inclus dans windows XP. (et un modem
analogique bien sûr).

J'ai cherché un bout de code sur vb codes-sources sans succès, surfé sur
Msdn microsoft qui m'incite à créer un composant COM (j'en suis incapable).
De retour dans le VBE, j'ai trouvé une référence à un composant (ou une
bibliothèque ?) nommé "faxcomLib" avec des class, propiétés et méthodes que
je ne sais pas trop utiliser.

exemple : "Function Send() As Long
Membre de FAXCOMLib.FaxDoc
Send a single fax"

Quelqu'un sait-il utiliser ce composant ?
Pensez-vous qu'il existe un moyen plus simple (en gardant l'automatisation,
svp, les correspondants seront en réalité plutot 200 que 10) ?

Merci d'avance,
Zappy.

6 réponses

Avatar
Christian Herbé


J'ai cherché un bout de code sur vb codes-sources sans succès, surfé sur
Msdn microsoft qui m'incite à créer un composant COM (j'en suis incapable).
De retour dans le VBE, j'ai trouvé une référence à un composant (ou une
bibliothèque ?) nommé "faxcomLib" avec des class, propiétés et méthodes que
je ne sais pas trop utiliser.



Confronté à ce Pb il y a quelques années, je l'ai résolu en pilotant
winphone (comme une imprimante).
Au préalable, j'avais constitué une liste de n° de Fax et fait en sorte
qu'il envoie chaque exemplaire à la liste.

C'est la methode "bucheron" mais elle fonctionne !

Avatar
zappy
"Christian Herbé" a écrit



Confronté à ce Pb il y a quelques années, je l'ai résolu en pilotant
winphone (comme une imprimante).
Au préalable, j'avais constitué une liste de n° de Fax et fait en sorte
qu'il envoie chaque exemplaire à la liste.

C'est la methode "bucheron" mais elle fonctionne !

Merci Christian de m'avoir répondu.

Ce n'est pas très clair pour moi : ta liste de numéros était dans excel ou
le carnet de Winphone ?
(si tu t'en souviens). Enfin, je vais essayer cette piste...
A bientôt,
Zappy.


Avatar
Papyty
Bonjour zappy (et @ tous)

Quelqu'un sait-il utiliser ce composant ?
Pensez-vous qu'il existe un moyen plus simple (en gardant
l'automatisation,

svp, les correspondants seront en réalité plutot 200 que 10) ?


Peut être cette soluce de *eshwar g* trouvée sur le net mais pas eu le
temps de tester.
Ne pas oublié de cocher la reference:

_____________________________________________________
'Faxcom 1.0 Type Library

'ServName name of your computer
'DocName document which you want to send, in your case it’s Report
'FaxNo Fax number where you want the fax to be delivered

Public Function SendFax(ServName As String, DocName As String, _
FaxNo As String, RecName As String) As String

'varable for FAX Server
Dim FaxServer As FAXCOMLib.FaxServer
Dim FaxDoc As FAXCOMLib.FaxDoc

'on error execution jumps to lable ErrSendFax
On Error GoTo ErrSendFax

'Create FaxServer object...
Set FaxServer = CreateObject("FaxServer.FaxServer")
'...and connect to it - no empty name allowed
FaxServer.Connect (ServName)
'Attaches document for sending FAX
Set FaxDoc = FaxServer.CreateDocument(DocName)

'Recepent FAX Number
FaxDoc.FaxNumber = FaxNo
'Recepent Name
FaxDoc.RecipientName = RecName
'Sends FAX using telephone which must be connected to FAX MODEM
FaxDoc.Send
'Kills FaxDoc Object
Set FaxDoc = Nothing
'Connection is Terminated
FaxServer.Disconnect
'Kills FaxServer object
Set FaxServer = Nothing
'Message is sent Back to calling function
SendFax = ""
Exit Function
'on error execution jumps here
ErrSendFax:
'Message is sent back to calling function
SendFax = "n"
End Function
____________________________________________________________________

Tiens nous au courant.
--
@+
Thierry
20/01/2004 21:20:10

Avatar
zappy
"Papyty" a écrit
Bonjour zappy (et @ tous)

Peut être cette soluce de *eshwar g* trouvée sur le net mais pas eu le
temps de tester.
Ne pas oublié de cocher la reference:


Merci Thierry pour cette réponse!
Je me penche sur cette fonction très bientôt


Tiens nous au courant.
--


Sûr ! Prévoir qq jours avant la réponse ;)

Merci encore à tous.
Zappy
@+


Avatar
Christian Herbé
"Christian Herbé" a écrit

Ce n'est pas très clair pour moi : ta liste de numéros était dans excel ou
le carnet de Winphone ?



J'ai essayé les 2 et finalement la liste dans winphone s'avère la
meilleure solution (1 seul accès depuis XL).

Avatar
zappy
"Papyty" a écrit
Bonjour zappy (et @ tous)
Peut être cette soluce de *eshwar g* trouvée sur le net mais pas eu le
temps de tester.
Ne pas oublié de cocher la reference:


Tiens nous au courant.


Bon voilà...
D'abord un grand merci, ta réponse m'a permis une grande avancée...
Je n'ai pas encore essayé sur un vrai num. de fax, mais la fonction
déclenche bien le service de fax de windows Xp, et la fonction se termine
sans erreur. D'ailleurs c'est là un nouveau pb et un nouveau travail de
recherche pour moi, car je dois trouver comment gérer les éventuelles lignes
occupées, abonné absent , etc...

Sub essailafoncfax()
Call SendeFax("", "c:test.txt", "0102030405", "coco")
End Sub


'Faxcom 1.0 Type Library

'ServName name of your computer
'DocName document which you want to send, in your case it's Report
'FaxNo Fax number where you want the fax to be delivered

Public Function SendeFax(ServName As String, DocName As String, _
FaxNo As String, RecName As String) As String

'varable for FAX Server
Dim FaxServer As FAXCOMLib.FaxServer
Dim FaxDoc As FAXCOMLib.FaxDoc

'on error execution jumps to lable ErrSendFax
On Error GoTo ErrSendFax

'Create FaxServer object...
Set FaxServer = CreateObject("FaxServer.FaxServer")
'...and connect to it - no empty name allowed
FaxServer.Connect (ServName)

'Attaches document for sending FAX
Set FaxDoc = FaxServer.CreateDocument(DocName)

'Recepent FAX Number
FaxDoc.FaxNumber = FaxNo

'Recepent Name
FaxDoc.RecipientName = RecName

'Sends FAX using telephone which must be connected to FAX MODEM
FaxDoc.Send
'Kills FaxDoc Object
Set FaxDoc = Nothing
'Connection is Terminated
FaxServer.Disconnect
'Kills FaxServer object
Set FaxServer = Nothing
'Message is sent Back to calling function
SendeFax = ""
Exit Function
'on error execution jumps here
ErrSendFax:
'Message is sent back to calling function
SendeFax = "n"
End Function
--
@+

Zappy.