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.
> 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 !
> 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
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
> @+
J'ai essayé les 2 et finalement la liste dans winphone s'avère la
meilleure solution (1 seul accès depuis XL).
>
> 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, _
SendeFax = ""
Exit Function
'on error execution jumps here
ErrSendFax:
'Message is sent back to calling function
SendeFax = "n"
End Function
> --
@+
Zappy.