Génération log compta
Bonjour
j'ai besoin d'aide sur ma macro svp !
en fait je souhaite que lorsque j'enregistre ma facture pdf via ma maco cf onglet "facture"
les données indiquées sur l'onglet base CA en colonne Z à AC viennent s’incrémenter sur la ligne correspondante au numéro de facture indiqué en celluleC4 via un equivalent de recherchev du numéro de facture indiqué en cellule I2 de l'onglet facture .
une grand merci au pro !
Bonjour Biguetf,
Je te propose la solution suivante:
-On donne un nom à chaque cellule de la feuille "Facture" dont les valeurs sont à récupérer soit :
"NFacture" pour J2
"DateFacture" pour K2
"Montant_HT" pour F51
"Montant_TVA" pour I51
"Montant_TTC" pour J51
-On créé la macro suivante :
Sub MajBase() 'Proposition GVS
Dim oSheet As Worksheet, oRange As Range
Dim sNFacture As String, dDateFacture As Date, dblMontant_HT As Double, dblTVA As Double, dblMontant_TTC As Double
Dim lRow As Long
'On récupère les données de la facture
sNFacture = ThisWorkbook.Names("NFacture").RefersToRange.Value
dDateFacture = ThisWorkbook.Names("DateFacture").RefersToRange.Value
dblMontant_HT = ThisWorkbook.Names("Montant_HT").RefersToRange.Value
dblTVA = ThisWorkbook.Names("Montant_TVA").RefersToRange.Value
dblMontant_TTC = ThisWorkbook.Names("Montant_TTC").RefersToRange.Value
'On recherche la ligne de facture dans la feuille "Base CA"
Set oSheet = ThisWorkbook.Worksheets("Base CA")
Set oRange = oSheet.UsedRange.Columns("C").Find(sNFacture, , xlValues, xlWhole, , , False)
If Not oRange Is Nothing Then
'Si on la trouve, on renseigne la ligne avec les données
lRow = oRange.Row
oSheet.Cells(lRow, 26).Value = dDateFacture
oSheet.Cells(lRow, 27).Value = dblMontant_HT
oSheet.Cells(lRow, 28).Value = dblTVA
oSheet.Cells(lRow, 29).Value = dblMontant_TTC
End If
End Sub
-On modifie la macro "AVOIRPDF" pour exécuter la macro "MajBase" :
Sub AVOIRPDF()
Dim Chemin As String, NomFichier As String
NomFichier = Range("H16").Value & "_" & Range("H2").Value & "_" & Range("I2").Value & ".pdf"
'NomFichier = Range("H16").Value & "_" & Range("I2").Value & "_Passation" & ".pdf"
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then ' Clic sur Ok
Chemin = .SelectedItems(1)
Else
' Clic sur Annuler
Exit Sub
End If
End With
Sheets("FACTURE").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & NomFichier, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
Range("AI1") = Chemin
CreateObject("WScript.Shell").Run "taskkill.exe /IM AcroRd32.exe /T /F", 0
MajBase 'Ajout GVS
End Sub
Je joins mon EXCEL de test.