XL 2010 Projet relance client automatisé

Mister57

XLDnaute Nouveau
Bonjour.

Dans le cadre d'un projet de relance facture clients je fait appel à vous pour m'aider.

Je dispose d'un fichier excel avec en feuille 1 les factures et ses infos, en feuille 2 la base de données. J'ai également 3 fichiers Word qui sont des lettres type de relance niveau 1 2 et 3.

Mon but est de tout automatisé. L'idéal serait que dans la colonne relance apparaisse le type de relance à effectuer (relance 1 après 30 jours, 2ème après 90 jours, 3ème après 180 jours) et lorsque je clique dessus s'ouvre le fichier Word correspondant avec toutes les infos compléter automatiquement (adresse, n° facture, date, montant : j'ai souligné à l'aide de tirets les infos et aux emplacement souhaités).

De plus : est-il possible de mettre une colonne avec le type de relance qui a été effectué et avec la date ?

Si cela est trop complexe, peut-être nous pouvons tout établir lettres + base de données + tableau factures sur des feuilles dans un classeur excel sans utilisé word ?

J'ai essayé de multiples manières, formules, publipostage (mais non directement lié à la ligne de excel) mais mon manque de connaissances n’empêche d'aller jusqu'au bout.

En vous remerciant d'avance, j'espère avoir été clair.
 

Pièces jointes

  • ExempleClasseur.xlsx
    13.1 KB · Affichages: 174
  • Relances.zip
    41.2 KB · Affichages: 170

Lone-wolf

XLDnaute Barbatruc
D'accord, mais dans ce cas, pourquoi vouloir automatiser tout ça? Un simple publipostage, même si c'est un peu fastidieu au départ, serait plus simple non? Et je doute que tu n'y arrive pas, sur internet il y à beaucoup de tutoriels à ce sujet, suffit de chercher.
 

Mister57

XLDnaute Nouveau
Merci de ton retour. Oui le publipostage avec le bloc adresse j'y arrive. Mais par exemple imaginons pour le client EXEMPLE1 je clique sur R1 qui me renvoie vers le document word Relance1, le publipostage ne prendra pas en compte directement le client EXEMPLE1 il faudra que je cherche parmis toute la liste la bonne adresse. De plus les numéros de factures et montant ne seront pas inscris sur le document word et je devrais alors le remplir manuellement. Je sais pas, si vous arrivez à me comprendre, c'est compliqué. Je pense que c'est possible que lorsque je clique sur R1 cela m'ouvre le fichier word avec toutes les infos du bon client, c'est cela que je ne sais pas par où commencer.
 

Lone-wolf

XLDnaute Barbatruc
Re

Je te propose ceci. Dans chaque document Word crée des signets (adresse, code postal, ville etc) + des signets pour la date de facture, date échéance, numéro de facture, somme etc. Ensuite

VB:
Sub WordDoc()
'Activer les références Microsoft Word et Outlook 14.0 Object Library
    Dim oApp As Word.Application, doc As Word.Document
  Range("A2").Select
    On Error Resume Next
    nf = ThisWorkbook.Path & "\modele.doc"
    Set oApp = CreateObject("Word.Application")
    oApp.Visible = True
    Set doc = oApp.Documents.Open(nf)
    If Err <> 0 Then
      MsgBox "Le fichier doit être dans " & ThisWorkbook.Path, , "Contacts Outlook"
      Exit Sub
    End If
    On Error GoTo 0        ' Annule la gestion d'erreur
    '--
    titre = TextBox1.Value
    nom = TextBox2.Value
    rue = TextBox3.Value
    codepostal = TextBox4.Value
    ville = TextBox5.Value
    civilité = TextBox1.Value
    '--
    With doc
      .Bookmarks("titre").Range.Text = titre
      .Bookmarks("civilité").Range.Text = titre
      .Bookmarks("nom").Range.Text = nom
      .Bookmarks("rue").Range.Text = rue
      .Bookmarks("codepostal").Range.Text = codepostal
      .Bookmarks("ville").Range.Text = ville
      .Bookmarks("title").Range.Text = titre
    End With
    nom_doc = ThisWorkbook.Path & "\" & nom & ".doc"
    doc.SaveAs nom_doc
        doc.ExportAsFixedFormat OutputFileName:= _
        ThisWorkbook.Path & "\Pdf-doc\" & nom, ExportFormat:=wdExportFormatPDF
    nom_pdf = ThisWorkbook.Path & "\Pdf-doc\" & nom & ".pdf"
    oApp.Quit
    '------------------------ envoi par mail
    Dim olApp As Outlook.Application
    Dim Objet As Object
    Dim Msg As MailItem
    Dim strline As String
    strline = "Bonjour" & " " & TextBox1 & ","
    Set olApp = New Outlook.Application
    Set Msg = olApp.CreateItem(olMailItem)
    Msg.To = TextBox9.Value
    Msg.Subject = ""
    Msg.Body = ""
    Msg.Attachments.Add Source:=nom_doc
    Msg.Display
    Set olApp = Nothing
    ActiveCell.Offset(1, 0).Select
  Set Objet = CreateObject("Scripting.FileSystemObject")
  Objet.movefile nom_doc, ThisWorkbook.Path & "\Word-doc\"
End Sub

Bien entendu le code devra être adapter à tes besoins.
 

Mister57

XLDnaute Nouveau
Merci pour ton retour. Je vais essayer de suite. Peut-tu m'expliquer ce que c'est que ce code ? Où l'insérer ? J'en ai jamais fait ni utilisé, il y a encore quelques mois je n'avais jamais utilisé excel de ma vie, je dois m'efforcer de comprendre et apprendre. Je suis désolé de t'en demander autant.

Merci beaucoup je vais chercher comment fonctionne tout cela.
 

Lone-wolf

XLDnaute Barbatruc
Une fois les signets créer, la macro se chargera de remplir les champs de Relance1 par exemple et fera une sauvegarde du document. On peux faire 2 macro une pour créer les document, l'autre pour la création et l'envois par Outlook. Pour les signets, attention à bien les nommer. Ici par exemple à la place de TextBox1 tu met

With Feuil1
titre = .Range("g2")
adresse= .Range("f4")
Etc.
End with
 

Mister57

XLDnaute Nouveau
Très bien je vais voir tout ça. Actuellement j'y comprends rien tu dois te dire que je suis vraiment débile lol. Je pense il me faut un peu de temps pour fouiller tout ça. La dans les signets j'ai juste un nom à mettre à ajouter et voilà je n'ai pas textbox1
 

Lone-wolf

XLDnaute Barbatruc
Mister, tu as lu mon précédent message? :rolleyes: Apparemment pas.

Voici pour commencer, le fichier qui permet d'ouvrir les relances. Pour ce faire, clique sur une de celle-ci pour afficher le document. Extrait le dossier sur le bureau.
 

Pièces jointes

  • Nouveau dossier.zip
    58.7 KB · Affichages: 136

Lone-wolf

XLDnaute Barbatruc
Oui et pour celà(et pour plus de facilité), j'ai modifier le fichier. Mis à part la colonne de date de relance, tu peux cliquer dans les colonnes A - C et D, ça vas filtrer les données, clique sur une cellule vide pour supprimer le filtre. En plus, le nom de la novelle société viendra s'incrire dans la colonne respective.

Dans la macro

VB:
With Sheets("BDD")
'Attention la cellule active doit être relance sinon erreur.
rw  = Application.Match(ActiveCell.value,  .Columns(1), 0)
nom = .Cells(rw, 2)
adresse=.Cells(rw, 3)
codepostal = .Cells(rw, 4)
Etc.
'Pour les dates et montants, avec,Offset, les colonnes coomence de 0 à 9, donc
'A = 0 - B = 1 - C = 3 - D = 4 - E = 5 etc.
factureNum = activecell.offset(0, 2)
DateFacture = ActiveCell.Offset(0, 4)
etc.
End with
 

Pièces jointes

  • ExempleClasseur.xlsm
    29 KB · Affichages: 105
Dernière édition:

Mister57

XLDnaute Nouveau
Merci pour tout, mais je dois avouer que je suis largué. Je sais très bien que tu as fait tout simplement ce que j'aurais aimer savoir faire mais là j'y comprends rien. Je suis désolé. Je sais pas ou faut que je fasse ce code, ce qu'il y a à remplacer, ou le mettre comment le faire marcher, l'enregistrer.
Les relances ne s'affichent désormais plus en fonction du nombre de jours de retards alors ?
Je pense que c'est d'un trop haut niveau pour moi ces histoires de signets, vba, macro je suis perdu désolé.
 

Mister57

XLDnaute Nouveau
1) J'ai placé les signets aux endroits auxquels j'aimerais qu'ils apparaissent sur les documents Words. Leurs dénominations correspondent à l'information qu'elle doivent prendre du tableau excel. (A noter que reference_facture1, reference_facture2, reference_facture3 sont la même info, la même référence c'est parce que je pouvais pas mettre le même signet à plusieurs endroits.)

2) J'ai indiqué dans le tableau excel ce que j'aimerais pour être le plus clair possible.

A ce soir. Encore merci de votre bonne volonté.
 

Pièces jointes

  • ExempleClasseur.xlsm
    28.9 KB · Affichages: 68
  • Docs Word.zip
    42.6 KB · Affichages: 56

Discussions similaires

Réponses
2
Affichages
745

Statistiques des forums

Discussions
312 920
Messages
2 093 639
Membres
105 768
dernier inscrit
Luc Juvénal YAMBASSA