bonjour,
je travaille sur la réalisation d’un formulaire devis sur Excel, je vous signale que je suis novice en VBA
j’ai réalisé une macro, en cherchant sur internet, qui doit me permettre :
d’enregistrer les données de chaque devis dans un tableau sur une feuille excel. ce fichier se trouve sur Teams pour être partagé entre tous les collaborateurs
d’imprimer le formulaire devis rempli pour l’archivage
d’imprimer le formulaire devis en pdf dans un dossier sur Teams
de vider les cellules du formulaire devis
d’incrémenter le numéro de devis
et entre les opérations je désactive et réactice les protections des feuilles
et tout ça avec un seul bouton…
cette macro fonctionne dans certains cas, mais j’ai la plupart du temps des bugs et je commence à désespérer. il doit y avoir beaucoup d’erreurs, c’est l’enregistrement des données sur Teams qui me pose le plus de problème.
voici le code de cette macro
pouvez-vous m’aider ??
Sub enregistrement()
’
’ enregistrement Macro
’
’
'ouvrir fichier « enregistrement devis » sur teams
Workbooks.Open Filename:= _
« https://…sharepoint.com/…enregistrement devis.xlsm » 'adresse imcompl?te volontairement
'enlever protection feuilles
Windows("formulaire devis AP.xlsm").Activate
Sheets("devis").Select
ActiveSheet.Unprotect "titi"
Windows("enregistrements devis.xlsm").Activate
Sheets("bdd").Select
ActiveSheet.Unprotect "titi"
ActiveWorkbook.LockServerFile
'enregistrement donn?es tableau
ligne = Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("A2").End(xlDown).Row + 1
Sheets("bdd").Range("B" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("E3")
Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("C" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("E4")
Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("D" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("D37")
Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("E" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("C8")
Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("F" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("C11")
Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("G" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("C9")
Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("H" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("B14")
Workbooks("enregistrements devis.xlsm").Sheets("bdd").Range("I" & ligne).Value = Workbooks("formulaire devis AP.xlsm").Sheets("devis").Range("D27")
'enregistrer et fermer fichier
Windows("enregistrements devis.xlsm").Activate
Sheets("bdd").Select
ActiveWorkbook.Save
ActiveSheet.Protect "titi", True, True, True
ActiveWorkbook.Close
'imprimer devis
Sheets("devis").PrintOut From:=1, To:=1
'pdf_enregistrement
'd?claration des variables
Dim NomFichier As String
'Dim Chemin As String
'Nom de dossier
NomFichier = Range("E3").Value & ".pdf"
Chemin = "https://.....sharepoint.com........./devis/" & NomFichier 'adresse imcompl?te volontairement
'enregistrement au format pdf
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
'bo?te de dialogue
MsgBox ("cliquer sur OK pour nouveau devis")
'suppression donn?es
Range("C8:C10").ClearContents
Range("B13:B14").ClearContents
Range("A17:A26").ClearContents
Range("B17:B26").ClearContents
Range("C17:C26").ClearContents
Range("E17:E26").ClearContents
'incr?mentation num?ro
Sheets("devis").Select
Sheets("donn?es").Visible = True
If Range("E10") <> "" Then
If Range("E10") = Format(Date, "yyyy") * 1 Then
Range("G10") = Range("G10") + 1
Else
Range("G10") = 1
Range("E10") = Format(Date, "yyyy")
End If
Else
Range("G10") = 1
Range("E10") = Format(Date, "yyyy")
End If
Sheets("donn?es").Select
ActiveWindow.SelectedSheets.Visible = False
'protection feuille
Windows("formulaire devis AP.xlsm").Activate
Sheets("devis").Select
ActiveSheet.Protect "titi", True, True, True
End Sub