Bonjour
J'ai quelques questions à poser en rapport avec du publipostage tout d'abord.
J'ai automatisé un publipostage qui va me chercher automatiquement dans un tableau excel les valeurs choisies et me les exporte dans un document word fusionné. Le problème c'est que l'exportation ouvre le fichier final (avec les champs fusionnés) et le brouillon (avec par exemple "nom", "prenom",...)
Je voulais savoir si il y avait un moyen de n'ouvrir que le fichier final
mon code est le suivant :
Deuxièmement, j'ai un problème d'arrondis qui se répète dans le publipostage.
En fait mon programme propose des taux d'intérets d'emprunts selon plusieurs variables. Or ces taux je les ai rentrés à la main (ils ne sont pas issus de calculs) mais quand je demande de les afficher dans une cellule excel, le chiffre a plusieurs décimales après la virgule et cela se répète dans le publipostage. Par exemple, pour un taux de 5 %, il m'affiche 5,0000000745058%.
J'ai essayé la commande Round en VBA mais bizarrement elle ne marche que dans un cas particulier.
Voici la partie de mon code concernée
Les variables ont bien été déclarées et je ne sais pas pourquoi ça ne marche que dans certains cas.
Merci à ceux qui se pencheront sur ce problème
J'ai quelques questions à poser en rapport avec du publipostage tout d'abord.
J'ai automatisé un publipostage qui va me chercher automatiquement dans un tableau excel les valeurs choisies et me les exporte dans un document word fusionné. Le problème c'est que l'exportation ouvre le fichier final (avec les champs fusionnés) et le brouillon (avec par exemple "nom", "prenom",...)
Je voulais savoir si il y avait un moyen de n'ouvrir que le fichier final
mon code est le suivant :
Code:
Private Sub accepte_Click()
Dim docWord As Word.Document
Dim appWord As Word.Application
Dim NomBase As String
NomBase = "F:\Tmp\clamm0062\Bureau\VBA\Banque.xls"
'Ouverture du document publipostage
Application.ScreenUpdating = False
Set appWord = New Word.Application
appWord.Visible = True
Set docWord = appWord.Documents.Open("F:\Tmp\clamm0062\Bureau\VBA\Publibanque.doc")
With docWord.mailMerge
.OpenDataSource Name:=NomBase, _
Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
"DBQ=" & NomBase & "; ReadOnly=True;", _
SQLStatement:="SELECT * FROM [Publi$]"
With .DataSource
.firstRecord = wdDefaultFirstRecord
.lastRecord = wdDefaultLastRecord
End With
.Execute pause:=False
End With
Application.ScreenUpdating = True
End Sub
Deuxièmement, j'ai un problème d'arrondis qui se répète dans le publipostage.
En fait mon programme propose des taux d'intérets d'emprunts selon plusieurs variables. Or ces taux je les ai rentrés à la main (ils ne sont pas issus de calculs) mais quand je demande de les afficher dans une cellule excel, le chiffre a plusieurs décimales après la virgule et cela se répète dans le publipostage. Par exemple, pour un taux de 5 %, il m'affiche 5,0000000745058%.
J'ai essayé la commande Round en VBA mais bizarrement elle ne marche que dans un cas particulier.
Voici la partie de mon code concernée
Code:
If logement.Text = "Rien" Or logement.Text = "" And Dem < 10000 Then
Select Case Range("n14")
Case Is <= 5
Range("n15").Select
ActiveCell.Value = 5
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
Case Is <= 10
Range("n15").Select
ActiveCell.Value = 5.3
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
Case Is <= 20
Range("n15").Select
ActiveCell.Value = 5.5
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
End Select
ElseIf logement.Text = "Rien" Or logement.Text = "" And Dem <= 20000 Then
Select Case Range("n14")
Case Is <= 5
Range("n15").Select
ActiveCell.Value = 5.5
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
Case Is <= 10
Range("n15").Select
ActiveCell.Value = 5.7
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
Case Is <= 20
Range("n15").Select
ActiveCell.Value = 5.9
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
End Select
ElseIf logement.Text = "Rien" Or logement.Text = "" And Dem > 20000 Then
Select Case Range("n14")
Case Is <= 5
Range("n15").Select
ActiveCell.Value = 5.9
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
Case Is <= 10
Range("n15").Select
ActiveCell.Value = 6.2
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
Case Is <= 20
Range("n15").Select
ActiveCell.Value = 6.6
Interet = ActiveCell.Value / 100
taux.Caption = ActiveCell.Value & " %"
End Select
ElseIf logement.Text = "Partie" Then
Range("n9").Select
taux.Caption = ActiveCell.Value * 100 + 0.3 & " %"
Interet = ActiveCell.Value + 0.3 / 100
ElseIf logement.Text = "Tout" Then
Range("n9").Select
taux.Caption = ActiveCell.Value * 100 & " %"
Interet = ActiveCell.Value
End If
Range("l22").Select
ActiveCell.Value = assur.Caption
Range("l23").Select
ActiveCell.Value = taux.Caption
Range("l24").Select
ActiveCell.Value = demande.Value
Range("l25").Select
ActiveCell.Value = dure.Value
Range("n26").Select
mensualite.Caption = ActiveCell.Value & " €"
Range("n28").Select
cout.Caption = ActiveCell.Value & " €"
Sheets("Publi").Select
Range("h2").Select
'L'erreur survient à ce niveau je pense
ActiveCell.Value = Round((Assr + Interet) * 100, 2)
Range("i2").Select
ActiveCell.Value = Temps
Range("j2").Select
ActiveCell.Value = mensualite.Caption
Range("k2").Select
ActiveCell.Value = cout.Caption
Sheets("Particuliers").Select
accepte.Visible = True
End Sub
Les variables ont bien été déclarées et je ne sais pas pourquoi ça ne marche que dans certains cas.
Merci à ceux qui se pencheront sur ce problème