Recopier automatiquement les informations d'un devis dans un autre devis ?
Bonjour à tous ! Je suis tombée sur ce merveilleux forum en me renseignant sur la faisabilité de mon projet, et je me demande si une âme charitable accepterait de m'aider ?.. Pour être parfaitement honnête, je viens seulement de découvrir l'existence des "macros", je manque donc cruellement d'expérience sur Excel.
J'aimerais savoir s'il est possible, via Excel, de remplir automatiquement un devis à partir d'un autre devis et si oui, comment je peux procéder.
Je vous explique ma situation : je vais recevoir des devis de la part d'une entreprise partenaire pour l'un de nos clients, et je dois, à partir de ce devis, élaborer un nouveau devis, au nom de mon entreprise, en insérant la commission que va prendre mon entreprise. Je devrai donc recopier les coordonnées du client et lignes intérieur du devis, puis ajouter dans l'une des lignes du devis la commission de prendra mon entreprise.
Est-ce que l'un d'entre vous saurait si ce process peut être automatisé via Excel ?
JE VOUS REMERCIE !!!!
Bonjour
Est-ce que l'un d'entre vous saurait si ce process peut être automatisé via Excel ?
Il faudrait analyser. Vous partez d'un devis modèle ?
Pouvez-vous mettre un fichier en ligne sans données confidentielles,
Cordialement
Je te remercie pour ta réponse !
En fait, les lignes intérieures du devis initial sont amenées à constamment changer selon le client, mais le devis se présenterait toujours de la même façon. Et, à partir de ce devis, je devrai en construire un autre qui reprendrait toutes les lignes du devis initial en ajoutant une ligne supplémentaire (correspondant à la rémunération que prendrait mon entreprise).
Je n'ai pas encore de modèle du devis initial étant donné que mon entreprise vient tout juste de nouer le partenariat avec l'entreprise qui nous enverrait les devis initiaux. Pour l'heure, je me renseigne donc juste sur la faisabilité de mon projet.
Vous pensez que je peux mettre en place une macro pour extraire les données du devis initial et de les recopier dans une nouvelle feuille de calcul (le nouveau devis) en y ajoutant une ligne pour la rémunération de mon entreprise (puis idéalement, est ce qu'il est possible de supprimer la feuille de calcul correspondant au devis initial pour la remplacer par la feuille comprenant le nouveau devis) ?
Re
Il faudrait avoir un devis modèle pour analyser mais au vu de votre réponse c'est faisable. Il suffirait de copier la feuille d'origine dans un nouveau fichier puis amender ce nouveau fichier.
Ne pensez pas aux macros pour l'instant car on risque de devoir tout modifier ou recommencer une fois que vous aurez un modèle du devis initial et vous allez peut être compliquer une macro qui sera tout simple à faire.
Essayez d'avoir un devis vierge de données que l'on puisse avoir déjà un premier aperçu
C'est tellement gentil de votre part ! je vous remercie !!!
Je reviens vers vous dès que j'ai exemple du devis initial.
Merci infiniment !
Bonjour,
Voici un modèle du devis initial et le template de mon devis (format PDF et format Excel). Dans le devis initial, des lignes peuvent être ajoutées selon le client, mais le devis se présentera toujours sous cette forme.
J'aimerais beaucoup apprendre à faire par moi même. Pouvez-vous me donner des conseils pour savoir comment m'y prendre et par où commencer ?..
Merci infiniment !
Très bon dimanche à tous
edit Dan : fichiers supprimés car contiennent des données confidentielles
Bonjour,
J'ai récupéré vos fichiers mais les ai supprimés car ils contiennent des données confidentielles.
En regardant votre devis Template, la première chose à ne pas faire c'est fusionner les cellules quand cela est possible. Le transfert du fichier devis exemple vers votre template va être plus compliqué et avec VBA c'est vraiment à éviter.
Exemple si vous supprimez les colonnes B,C,D,E et F, vous voyez que cela n'apporte pas de changement puisque tout est dans la colonne A. Il vous suffit d'élargir votre colonne A à 17.5 de largeur
Là je referais d'abord votre template en évitant au maximum les cellules fusionnées.
Le devis exemple sera toujours bien structuré de cette manière ? Cela c'est important à savoir aussi
Bonjour Dan, je vous remercie pour votre réponse !
J'ai avancé hier et voilà la VBA que j'ai réalisée, elle génère le devis automatiquement dans la feuille de calcul n°2 (en 12 seconde tout de même) :
Sub TEST2()
' TEST2 Macro
Sheets("Sheet2").Select
' format ligne corps du devis
Cells.Select
Selection.RowHeight = 13
Selection.ColumnWidth = 2.17
Rows("52:52").RowHeight = 5
Rows("54:54").RowHeight = 5
Rows("46:46").RowHeight = 5
Rows("48:48").RowHeight = 5
Rows("44:44").RowHeight = 5
Rows("41:41").RowHeight = 7
Columns("T:T").ColumnWidth = 3.67
Columns("U:U").ColumnWidth = 3.67
Columns("V:V").ColumnWidth = 6.17
Columns("W:W").ColumnWidth = 3.67
Columns("X:X").ColumnWidth = 6.17
Columns("M:M").ColumnWidth = 2.33
'Police générale :
Cells.Select
Range("L20").Activate
With Selection.Font
.Name = "Calibri"
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
'tableau devis police :
Range("A17:F37").Select
Selection.Font.Size = 9
'texte en 8 :
Range("I41,A49,A55").Select
Range("A55").Activate
Selection.Font.Size = 8
Range("A49:X51").Select
'gras :
Range("A47,A42").Select
Range("A42").Activate
Selection.Font.Bold = True
'mise en page
ActiveWindow.DisplayGridlines = False
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.6)
.RightMargin = Application.InchesToPoints(0.6)
.TopMargin = Application.InchesToPoints(0.25)
.BottomMargin = Application.InchesToPoints(0.1)
.HeaderMargin = Application.InchesToPoints(0.3)
.FooterMargin = Application.InchesToPoints(0.3)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintSheetEnd
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
'image
Range("X4").Select
ActiveSheet.Pictures.Insert("/Users/laurianefrancois/Downloads/AFAQ.png"). _
Select
Selection.ShapeRange.IncrementLeft -15
Selection.ShapeRange.IncrementTop -5
Range("A4").Select
ActiveSheet.Pictures.Insert( _
"/Users/laurianefrancois/Downloads/Vert clair.png").Select
Selection.ShapeRange.ScaleWidth 0.5370491624, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.5370491803, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.IncrementTop -9
'haut devis
Range("A7").Select
ActiveCell.FormulaR1C1 = "07 71 65 40 03 (disponible entre 9h30 et 18h30)"
Range("A8").Select
ActiveCell.FormulaR1C1 = "bornes@beev.co"
Range("A10").Select
ActiveCell.FormulaR1C1 = "Devis n° :"
Range("A11").Select
ActiveCell.FormulaR1C1 = "Date du devis : "
Range("A12").Select
ActiveCell.FormulaR1C1 = "Échéance du devis :"
Range("P5").Select
ActiveCell.FormulaR1C1 = "N° AFAQ Installateur 82652.2"
Range("P8:X13").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16449012
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'N° devis et échéance
Range("F11:K11").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("G12").Select
ActiveCell.FormulaR1C1 = "=EDATE(R[-1]C,1)"
Range("F12:K12").Select
Selection.NumberFormat = "m/d/yy"
Range("F10:K12").Select
Selection.Font.Bold = False
'Coordonnées clients:
Range("Q9").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-2]C[-16]"
Range("Q10").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-2]C[-14]"
Range("Q11").Select
ActiveCell.FormulaR1C1 = _
"=Sheet1!R[-2]C[-13] & "", "" & Sheet1!R[-2]C[-14] & "", France"""
'bas du devis :
Range("A64:X64").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
ActiveCell.FormulaR1C1 = _
"Beev - CODE NAF (APE) 6201Z - 792 514 176 R.C.S. Bobigny - SIRET: 85168280700017"
With Selection.Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0.499984740745262
End With
'signature & co
Range("A57").Select
ActiveCell.FormulaR1C1 = "Date : "
Range("G57").Select
ActiveCell.FormulaR1C1 = "Mode de paiement : "
Range("R57").Select
ActiveCell.FormulaR1C1 = _
"Signature (ajouter le cachet pour les entreprises) : "
Rows("57:57").Select
Selection.Font.Bold = True
' encadré pour signature
Range("A61").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.UnMerge
Range("G58:P61").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("R58:X61").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Rows("57:57").Select
Selection.RowHeight = 23
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A55").Select
ActiveCell.FormulaR1C1 = _
"Dater et faire précèder la signature de la mention ""Bon pour exécution des travaux"". Pour les professionnels, ajouter le cachet de l'entreprise."
'barre bleu
Range("A53:X53,A45:X45,A15:X15").Select
Range("A15").Activate
With Selection.Interior
.PatternColorIndex = xlAutomatic
.Color = 6578195
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'remplissage tableau devis :
ActiveCell.FormulaR1C1 = ""
Sheets("Sheet1").Select
Range("A13").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Sheet2").Select
Range("A17").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Range("G17").Select
ActiveCell.Formula2R1C1 = "=Sheet1!R[-4]C[-5]:R[12]C[-5]"
Range("T17").Select
ActiveCell.Formula2R1C1 = "=Sheet1!R[-4]C[-15]:R[12]C[-11]"
'encadré 2 :
Range("A49").Select
ActiveCell.FormulaR1C1 = _
"Tous travaux supplémentaires feront l'objet d'un devis additionnel accepté et signé par le client. Les taux de TVA sont les taux en vigueur au moment de la rédaction du présent devis. Tout changement législatif au niveau des taux de TVA sera répercuté au moment de la facturation s'il y a lieu.Installateur disposant d'une assurance Professionnelle Obligatoire souscri" & _
"te auprès de GENERALI, Contrat N°AP861749, valable en France Métropolitaine." & _
""
Range("A47").Select
ActiveCell.FormulaR1C1 = "Mode de paiement :"
Range("F47").Select
ActiveCell.FormulaR1C1 = "100% à la commande"
'fusionner cellules :
Range("A49:X51").Select
Selection.Merge
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
'encadré TVA
Range("A39:D40").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("E39:H40").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("I39:L40").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("A39:L39").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 6578195
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'encadré TVA fusionner cellules :
Range("A40:D40").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("E40:H40").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("I40:L40").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("A39:D39").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("E39:H39").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
Range("I39:L39").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
'bordure tableau total
Range("P39:X39").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 6578195
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("P42:X42").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 16449269
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'écriture sous le devis encadré 1
Range("A42").Select
ActiveCell.FormulaR1C1 = "Arrétè le présent devis à la somme de : "
'ECRIRE EN LETTRE :
Sheets("Sheet3").Select
Range("A2").Select
ActiveCell.FormulaR1C1 = "=UPPER(MID(R[96]C,1,1))&MID(R[96]C,2,168)"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=INT(R[-2]C/1000000)"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=INT((R[-3]C-R[-1]C*1000000)/1000)"
Range("A5").Select
ActiveCell.FormulaR1C1 = "=INT(R[-4]C-R[-2]C*1000000-R[-1]C*1000)"
Range("A6").Select
ActiveCell.FormulaR1C1 = _
"=ROUND(R[-5]C-R[-3]C*1000000-R[-2]C*1000-R[-1]C,2)*100"
Range("A7").Select
ActiveCell.FormulaR1C1 = "=R[-4]C-R[5]C*100"
Range("A9").Select
ActiveCell.FormulaR1C1 = "=R[-5]C-R[6]C*100"
Range("A10").Select
ActiveCell.FormulaR1C1 = "=ROUND(R[-5]C-R[8]C*100,0)"
Range("A11").Select
ActiveCell.FormulaR1C1 = "=R[-5]C"
Range("A12").Select
ActiveCell.FormulaR1C1 = "=INT(R[-9]C/100)"
Range("A13").Select
ActiveCell.FormulaR1C1 = "=INT((R[-10]C-R[-1]C*100)/10)"
Range("A15").Select
ActiveCell.FormulaR1C1 = "=INT(R[-11]C/100)"
Range("A16").Select
ActiveCell.FormulaR1C1 = "=INT((R[-12]C-R[-1]C*100)/10)"
Range("A17").Select
ActiveCell.FormulaR1C1 = "=R[-13]C-R[-2]C*100-R[-1]C*10"
Range("A17").Select
ActiveCell.FormulaR1C1 = "=R[-13]C-R[-2]C*100-R[-1]C*10"
Range("A18").Select
ActiveCell.FormulaR1C1 = "=INT(R[-13]C/100)"
Range("A18").Select
ActiveCell.FormulaR1C1 = "=INT(R[-13]C/100)"
Range("A19").Select
ActiveCell.FormulaR1C1 = "=INT((R[-14]C-R[-1]C*100)/10)"
Range("A20").Select
ActiveCell.FormulaR1C1 = "=R[-15]C-R[-2]C*100-R[-1]C*10"
Range("A21").Select
ActiveCell.FormulaR1C1 = "=INT(R[-15]C/10)"
Range("A22").Select
ActiveCell.FormulaR1C1 = "=ROUND(R[-16]C-R[-1]C*10,0)"
Range("A23").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-11]C=0,"""",IF(R[-11]C=1,"""",IF(R[-11]C=2,""deux "",IF(R[-11]C=3,""trois "",IF(R[-11]C=4,""quatre "",IF(R[-11]C=5,""cinq "",R[19]C))))))"
Range("A24").Select
ActiveCell.FormulaR1C1 = "=IF(R[-12]C=0,"""",IF(R[-12]C<2,""cent "",R[19]C))"
Range("A25").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-12]C=1,R[19]C,IF(R[-12]C=7,R[39]C,IF(R[-12]C=9,R[55]C,R[64]C)))"
Range("A26").Select
ActiveCell.FormulaR1C1 = ""
ActiveCell.FormulaR1C1 = _
"=IF(R[-19]C=11,"""",IF(R[-19]C=12,"""",IF(R[-19]C=13,"""",IF(R[-19]C=14,"""",IF(R[-19]C=15,"""",IF(R[-19]C=16,"""",R[19]C))))))"
Range("A27").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-24]C=0,"""",IF(R[-24]C<2,""million "",""millions ""))"
Range("A28").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-20]C=1,"""",IF(R[-13]C=0,"""",IF(R[-13]C=1,"""",IF(R[-13]C=2,""deux "",IF(R[-13]C=3,""trois "",IF(R[-13]C=4,""quatre "",IF(R[-13]C=5,""cinq "",R[18]C)))))))"
Range("A29").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-14]C=0,"""",IF(R[-14]C<2,""cent "",IF(R[3]C=""mille "",""cent "",R[18]C)))"
Range("A30").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-14]C=1,R[18]C,IF(R[-14]C=7,R[36]C,IF(R[-14]C=9,R[51]C,R[60]C)))"
Range("A31").Select
ActiveCell.FormulaR1C1 = "=IF(R[-27]C=1,"""",R[18]C)"
Range("A32").Select
ActiveCell.FormulaR1C1 = "=IF(R[-28]C>0,""mille "","""")"
Range("A33").Select
ActiveCell.FormulaR1C1 = _
"=IF(INT(R[-32]C)=0,""zéro "",IF(R[-15]C=0,"""",IF(R[-15]C=1,"""",IF(R[-15]C=2,""deux "",IF(R[-15]C=3,""trois "",IF(R[-15]C=4,""quatre "",IF(R[-15]C=5,""cinq "",R[17]C)))))))"
Range("A34").Select
ActiveCell.FormulaR1C1 = "=IF(R[-16]C=0,"""",IF(R[-16]C<2,""cent "",R[17]C))"
Range("A35").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-16]C=1,R[17]C,IF(R[-16]C=7,R[33]C,IF(R[-16]C=9,R[48]C,R[56]C)))"
Range("A36").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-26]C=11,"""",IF(R[-26]C=12,"""",IF(R[-26]C=13,"""",IF(R[-26]C=14,"""",IF(R[-26]C=15,"""",IF(R[-26]C=16,"""",R[17]C))))))"
Range("A37").Select
ActiveCell.FormulaR1C1 = "=IF(INT(R[-36]C<2),""Euro "",""Euros "")"
Range("A38").Select
ActiveCell.FormulaR1C1 = "=IF(R[-32]C>0,""et "","""")"
Range("A39").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-18]C=1,R[15]C,IF(R[-18]C=7,R[31]C,IF(R[-18]C=9,R[45]C,R[53]C)))"
Range("A40").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-29]C=11,"""",IF(R[-29]C=12,"""",IF(R[-29]C=13,"""",IF(R[-29]C=14,"""",IF(R[-29]C=15,"""",IF(R[-29]C=16,"""",R[15]C))))))"
Range("A41").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-35]C=0,"""",IF(R[-35]C<2,""centime"",""centimes""))"
Range("A42").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-39]C=0,"" "",IF(R[-30]C=6,""six "",IF(R[-30]C=7,""sept "",IF(R[-30]C=8,""huit "",IF(R[-30]C=9,""neuf "",)))))"
Range("A43").Select
ActiveCell.FormulaR1C1 = "=IF(R[-36]C>0,""cent "", ""cents "")"
Range("A44").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-37]C=10,""dix "",IF(R[-37]C=11,""onze "",IF(R[-37]C=12,""douze "",IF(R[-37]C=13,""treize "",IF(R[-37]C=14,""quatorze "",IF(R[-37]C=15,""quinze "",R[12]C))))))"
Range("A45").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-38]C=17,"""",IF(R[-38]C=18,"""",IF(R[-38]C=19,"""",R[12]C)))"
Range("A46").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-31]C=6,""six "",IF(R[-31]C=7,""sept "",IF(R[-31]C=8,""huit "",IF(R[-31]C=9,""neuf "",))))"
Range("A47").Select
ActiveCell.FormulaR1C1 = "=IF(R[-38]C>0,""cent "", ""cents "")"
Range("A48").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-39]C=10,""dix "",IF(R[-39]C=11,""onze "",IF(R[-39]C=12,""douze "",IF(R[-39]C=13,""treize "",IF(R[-39]C=14,""quatorze "",IF(R[-39]C=15,""quinze "",R[10]C))))))"
Range("A49").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-40]C=11,"""",IF(R[-40]C=12,"""",IF(R[-40]C=13,"""",IF(R[-40]C=14,"""",IF(R[-40]C=15,"""",IF(R[-40]C=16,"""",R[10]C))))))"
Range("A50").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-32]C=6,""six "",IF(R[-32]C=7,""sept "",IF(R[-32]C=8,""huit "",IF(R[-32]C=9,""neuf "",))))"
Range("A51").Select
ActiveCell.FormulaR1C1 = "=IF(R[-41]C>0,""cent "", ""cents "")"
Range("A52").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-42]C=10,""dix "",IF(R[-42]C=11,""onze "",IF(R[-42]C=12,""douze "",IF(R[-42]C=13,""treize "",IF(R[-42]C=14,""quatorze "",IF(R[-42]C=15,""quinze "",R[8]C))))))"
Range("A53").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-43]C=17,"""",IF(R[-43]C=18,"""",IF(R[-43]C=19,"""",R[8]C)))"
Range("A54").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-43]C=10,""dix "",IF(R[-43]C=11,""onze "",IF(R[-43]C=12,""douze "",IF(R[-43]C=13,""treize "",IF(R[-43]C=14,""quatorze "",IF(R[-43]C=15,""quinze "",R[8]C))))))"
Range("A55").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-44]C=17,"""",IF(R[-44]C=18,"""",IF(R[-44]C=19,"""",R[8]C)))"
Range("A56").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-49]C=16,""seize "",IF(R[-49]C=17,""dix-sept "",IF(R[-49]C=18,""dix-huit "",IF(R[-49]C=19,""dix-neuf "",R[8]C))))"
Range("A57").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-50]C=21,""et un "",IF(R[-50]C=31,""et un "",IF(R[-50]C=41,""et un "",IF(R[-50]C=51,""et un "",IF(R[-50]C=61,""et un "",R[8]C)))))"
Range("A58").Select
Range("A58").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-49]C=16,""seize "",IF(R[-49]C=17,""dix-sept "",IF(R[-49]C=18,""dix-huit "",IF(R[-49]C=19,""dix-neuf "",R[8]C))))"
Range("A59").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-50]C=17,"""",IF(R[-50]C=18,"""",IF(R[-50]C=19,"""",R[8]C)))"
Range("A60").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-50]C=16,""seize "",IF(R[-50]C=17,""dix-sept "",IF(R[-50]C=18,""dix-huit "",IF(R[-50]C=19,""dix-neuf "",R[8]C))))"
Range("A61").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-51]C=21,""et un "",IF(R[-51]C=31,""et un "",IF(R[-51]C=41,""et un "",IF(R[-51]C=51,""et un "",IF(R[-51]C=61,""et un "",R[8]C)))))"
Range("A62").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-51]C=16,""seize "",IF(R[-51]C=17,""dix-sept "",IF(R[-51]C=18,""dix-huit "",IF(R[-51]C=19,""dix-neuf "",R[8]C))))"
Range("A63").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-52]C=21,""et un "",IF(R[-52]C=31,""et un "",IF(R[-52]C=41,""et un "",IF(R[-52]C=51,""et un "",IF(R[-52]C=61,""et un "",R[8]C)))))"
Range("A64").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-57]C=70,""soixante-dix "",IF(R[-57]C=71,""soixante et onze "",IF(R[-57]C=72,""soixante-douze "",IF(R[-57]C=73,""soixante-treize "",IF(R[-57]C=74,""soixante-quatorze "",IF(R[-57]C=75,""soixante-quinze "",R[8]C))))))"
Range("A65").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-52]C=9,"""",IF(R[-52]C=7,"""",IF(R[-51]C=0,"""",IF(R[-51]C=1,""un "",IF(R[-51]C=2,""deux "",IF(R[-51]C=3,""trois "",IF(R[-51]C=4,""quatre "",IF(R[-51]C=5,""cinq "",R[8]C))))))))"
Range("A66").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-57]C=70,""soixante-dix "",IF(R[-57]C=71,""soixante et onze "",IF(R[-57]C=72,""soixante-douze "",IF(R[-57]C=73,""soixante-treize "",IF(R[-57]C=74,""soixante-quatorze "",IF(R[-57]C=75,""soixante-quinze "",R[8]C))))))"
Range("A67").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-58]C=21,""et un "",IF(R[-58]C=31,""et un "",IF(R[-58]C=41,""et un "",IF(R[-58]C=51,""et un "",IF(R[-58]C=61,""et un "",R[8]C)))))"
Range("A68").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-58]C=70,""soixante-dix "",IF(R[-58]C=71,""soixante et onze "",IF(R[-58]C=72,""soixante-douze "",IF(R[-58]C=73,""soixante-treize "",IF(R[-58]C=74,""soixante-quatorze "",IF(R[-58]C=75,""soixante-quinze "",R[8]C))))))"
Range("A69").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-50]C=9,"""",IF(R[-50]C=7,"""",IF(R[-49]C=0,"""",IF(R[-49]C=1,""un "",IF(R[-49]C=2,""deux "",IF(R[-49]C=3,""trois "",IF(R[-49]C=4,""quatre "",IF(R[-49]C=5,""cinq "",R[8]C))))))))"
Range("A70").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-59]C=70,""soixante-dix "",IF(R[-59]C=71,""soixante et onze "",IF(R[-59]C=72,""soixante-douze "",IF(R[-59]C=73,""soixante-treize "",IF(R[-59]C=74,""soixante-quatorze "",IF(R[-59]C=75,""soixante-quinze "",R[8]C))))))"
Range("A71").Select
ActiveCell.FormulaR1C1 = ""
ActiveCell.FormulaR1C1 = _
"=IF(R[-50]C=9,"""",IF(R[-50]C=7,"""",IF(R[-49]C=0,"""",IF(R[-49]C=1,""un "",IF(R[-49]C=2,""deux "",IF(R[-49]C=3,""trois "",IF(R[-49]C=4,""quatre "",IF(R[-49]C=5,""cinq "",R[8]C))))))))"
Range("A72").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-65]C=76,""soixante-seize "",IF(R[-65]C=77,""soixante-dix-sept "",IF(R[-65]C=78,""soixante-dix-huit "",IF(R[-65]C=79,""soixante-dix-neuf "",R[8]C))))"
Range("A73").Select
ActiveCell.FormulaR1C1 = ""
ActiveCell.FormulaR1C1 = _
"=IF(R[-60]C=9,"""",IF(R[-59]C=6,""six "",IF(R[-59]C=7,""sept "",IF(R[-59]C=8,""huit "",IF(R[-59]C=9,""neuf "",)))))"
Range("A75").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-59]C=9,"""",IF(R[-59]C=7,"""",IF(R[-58]C=0,"""",IF(R[-58]C=1,""un "",IF(R[-58]C=2,""deux "",IF(R[-58]C=3,""trois "",IF(R[-58]C=4,""quatre "",IF(R[-58]C=5,""cinq "",R[7]C))))))))"
Range("A76").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-66]C=76,""soixante-seize "",IF(R[-66]C=77,""soixante-dix-sept "",IF(R[-66]C=78,""soixante-dix-huit "",IF(R[-66]C=79,""soixante-dix-neuf "",R[7]C))))"
Range("A77").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-58]C=9,"""",IF(R[-57]C=6,""six "",IF(R[-57]C=7,""sept "",IF(R[-57]C=8,""huit "",IF(R[-57]C=9,""neuf "",)))))"
Range("A78").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-67]C=76,""soixante-seize "",IF(R[-67]C=77,""soixante-dix-sept "",IF(R[-67]C=78,""soixante-dix-huit "",IF(R[-67]C=79,""soixante-dix-neuf "",R[6]C))))"
Range("A79").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-58]C=9,"""",IF(R[-57]C=6,""six "",IF(R[-57]C=7,""sept "",IF(R[-57]C=8,""huit "",IF(R[-57]C=9,""neuf "",)))))"
Range("A80").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-73]C=90,""quatre-vingt-dix "",IF(R[-73]C=91,""quatre-vingt-onze "",IF(R[-73]C=92,""quatre-vingt-douze "",IF(R[-73]C=93,""quatre-vingt-treize "",IF(R[-73]C=94,""quatre-vingt-quatorze "",IF(R[-73]C=95,""quatre-vingt-quinze "",R[5]C))))))"
Range("A81").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-72]C=90,""quatre-vingt-dix "",IF(R[-72]C=91,""quatre-vingt-onze "",IF(R[-72]C=92,""quatre-vingt-douze "",IF(R[-72]C=93,""quatre-vingt-treize "",IF(R[-72]C=94,""quatre-vingt-quatorze "",IF(R[-72]C=95,""quatre-vingt-quinze "",R[5]C))))))"
Range("A82").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-66]C=9,"""",IF(R[-65]C=6,""six "",IF(R[-65]C=7,""sept "",IF(R[-65]C=8,""huit "",IF(R[-65]C=9,""neuf "",)))))"
Range("A83").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-73]C=90,""quatre-vingt-dix "",IF(R[-73]C=91,""quatre-vingt-onze "",IF(R[-73]C=92,""quatre-vingt-douze "",IF(R[-73]C=93,""quatre-vingt-treize "",IF(R[-73]C=94,""quatre-vingt-quatorze "",IF(R[-73]C=95,""quatre-vingt-quinze "",R[4]C))))))"
Range("A84").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-73]C=90,""quatre-vingt-dix "",IF(R[-73]C=91,""quatre-vingt-onze "",IF(R[-73]C=92,""quatre-vingt-douze "",IF(R[-73]C=93,""quatre-vingt-treize "",IF(R[-73]C=94,""quatre-vingt-quatorze "",IF(R[-73]C=95,""quatre-vingt-quinze "",R[4]C))))))"
Range("A85").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-78]C=96,""quatre-vingt-seize "",IF(R[-78]C=97,""quatre-vingt-dix-sept "",IF(R[-78]C=98,""quatre-vingt-dix-huit "",IF(R[-78]C=99,""quatre-vingt-dix-neuf "",R[4]C))))"
Range("A86").Select
ActiveCell.FormulaR1C1 = ""
ActiveCell.FormulaR1C1 = _
"=IF(R[-77]C=96,""quatre-vingt-seize "",IF(R[-77]C=97,""quatre-vingt-dix-sept "",IF(R[-77]C=98,""quatre-vingt-dix-huit "",IF(R[-77]C=99,""quatre-vingt-dix-neuf "",R[4]C))))"
Range("A87").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-77]C=96,""quatre-vingt-seize "",IF(R[-77]C=97,""quatre-vingt-dix-sept "",IF(R[-77]C=98,""quatre-vingt-dix-huit "",IF(R[-77]C=99,""quatre-vingt-dix-neuf "",R[4]C))))"
Range("A88").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-77]C=96,""quatre-vingt-seize "",IF(R[-77]C=97,""quatre-vingt-dix-sept "",IF(R[-77]C=98,""quatre-vingt-dix-huit "",IF(R[-77]C=99,""quatre-vingt-dix-neuf "",R[4]C))))"
Range("A89").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-76]C=2,""vingt "",IF(R[-76]C=3,""trente "",IF(R[-76]C=4,""quarante "",IF(R[-76]C=5,""cinquante "",R[4]C))))"
Range("A90").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-74]C=2,""vingt "",IF(R[-74]C=3,""trente "",IF(R[-74]C=4,""quarante "",IF(R[-74]C=5,""cinquante "",R[4]C))))"
Range("A91").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-72]C=2,""vingt "",IF(R[-72]C=3,""trente "",IF(R[-72]C=4,""quarante "",IF(R[-72]C=5,""cinquante "",R[4]C))))"
Range("A92").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-71]C=2,""vingt "",IF(R[-71]C=3,""trente "",IF(R[-71]C=4,""quarante "",IF(R[-71]C=5,""cinquante "",R[4]C))))"
Range("A93").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-80]C=6,""soixante "",IF(R[-86]C=80,""quatre-vingts "",IF(R[-80]C=8,""quatre-vingt-"","""")))"
Range("A94").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-78]C=6,""soixante "",IF(R[-85]C=80,""quatre-vingts "",IF(R[-78]C=8,""quatre-vingt-"","""")))"
Range("A95").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-76]C=6,""soixante "",IF(R[-85]C=80,""quatre-vingts "",IF(R[-76]C=8,""quatre-vingt-"","""")))"
Range("A96").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-75]C=6,""soixante "",IF(R[-85]C=80,""quatre-vingts "",IF(R[-75]C=8,""quatre-vingt-"","""")))"
Range("A98").Select
ActiveCell.FormulaR1C1 = _
"=(R[-75]C&R[-74]C&R[-73]C&R[-72]C&R[-71]C&R[-70]C&R[-69]C&R[-68]C&R[-67]C&R[-66]C&R[-65]C&R[-64]C&R[-63]C&R[-62]C&R[-61]C&R[-60]C&R[-59]C&R[-58]C&R[-57]C)"
Range("A74").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-65]C=76,""soixante-seize "",IF(R[-65]C=77,""soixante-dix-sept "",IF(R[-65]C=78,""soixante-dix-huit "",IF(R[-65]C=79,""soixante-dix-neuf "",R[7]C))))"
Range("A14").Select
ActiveCell.FormulaR1C1 = "=R[-11]C-R[-2]C*100-R[-1]C*10"
Sheets("Sheet2").Select
Range("A43").Select
ActiveCell.FormulaR1C1 = "=UPPER(Sheet3!R[-41]C)"
'mise en forme intérieur tableau devis
Range("A15:F37").Select
Selection.Merge True
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
Range("A17:F37").Select
Selection.Copy
Range("G17:G33").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("G17:G37").Select
Selection.Copy
Range("T17:X37").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'remplacer caractères speciaux
Cells.Select
Selection.Replace What:="È", Replacement:="é", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, FormulaVersion:=xlReplaceFormula2
Selection.Replace What:="Ä", Replacement:="€", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, FormulaVersion:=xlReplaceFormula2
'encadrement tableau
Range("A15:X37").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
'tableau devis colonnes
Range("A16:F37").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("G16:T37").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("V16:V37,X16:X37").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Range("T16:T37").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
'retrait texte tableau devis
Range("A16:S37").Select
Selection.InsertIndent 1
'centrer texte dans colonne tableau devis
Range("T16:T37,U16:U37,W16:W37").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
'alignement texte dans tableau
Range("A15:F37,V16:V37,X16:X37").Select
Range("X16").Activate
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
'enlever les 0
Range("T16:X37").Select
Selection.NumberFormat = "0;-0;;@"
'automatisation calculs
Range("X39").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[-22]C+R[-13]C+R[-11]C"
Range("X40").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-15]"
Range("X42").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[-3]C+R[-2]C"
Range("X43").Select
Sheets("Sheet3").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "=Sheet2!R[41]C[23]"
Sheets("Sheet2").Select
'encadré TVA:
Range("E40:H40").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[-1]C[19]"
Range("I40:L40").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=RC[-8]*RC[-4]"
Range("I41").Select
'colonne 1texte
Range("A16:F37").Select
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
End Sub
Là j'essaye de créer une boite de dialogue pour demander si l'adresse de facturation est différente de l'adresse de l'installation et le cas échéant pour saisir l'adresse de facturation (car dans le devis initial il y a seulement l'adresse de livraison alors que l'adresse de facturation doit apparaitre dans le devis final si les adresses de facturation et de livraison sont différentes).
Dans cette boite de dialogue, j'aimerais aussi demander si "le client est un professionnel" pour ajuster le montant de la TVA (20% pour professionnel contre 5,5% pour les particuliers).
Des idées ?
Merci infiniment pour votre temps
Voilà ce que ça donne dans le fichier excel :
Ok je comprends que cela ralentisse. Le code est à revoir
Vous faites le template par code ?? Si oui, pourquoi ?
Autre question : vous êtes sous MAC si je ne me trompe
Oui j'ai créé le template en VBA parce que je savais pas trop comment procéder autrement.. Et oui je suis sur Mac.
Par hasard, savez-vous s'il est possible de demander à excel "si l'une des lignes de telle selection = "quelque chose", alors..." ?
Merci beaucoup
Pour moi, vous devriez partir de la sheet 2 vide considérée comme modèle vide de données. Ensuite on le complète sur base du devis que je vois en feuille 1.
Par hasard, savez-vous s'il est possible de demander à excel "si l'une des lignes de telle selection = "quelque chose", alors..." ?
Oui
Le principal est de savoir comment vous allez fonctionner d'abord.
Puis comme je vous le répète, attention à éviter les cellules fusionnées quand vous le pouvez surtout avec excel MAC. Pour cette raison j'aurais plutot revu un peu votre template
Pour créer le template, vous faites une feuille vide de données (en mettant les données de votre société qui ne change pas). Puis on fait le code pour mettre les données du devis. Ensuite vous enregistrez votre fichier excel vide comme fichier modèle XLTM
Edit : je vous conseille d'y aller pas à pas sans quoi vous pourriez devoir tout recommencer
Bonjour Dan, je te remercie pour tes conseils ! J'ai réussi à faire ce que je voulais avec un SI+recherchev.
Dernière petite question et après j'en ai fini :
J'aimerais créer une macro qui m'affiche une boite dialogue avec "voulez vous sauvegarder" (oui / non), et qui ensuite enregistre en format PDF seulement la deuxième feuille de calcul (et pas tout le fichier). La difficulté c'est que j'aimerais l'enregistrer dans un dossier et un sous dossier bien précis qui dépendent du nom du fichier (qu'il faudra d'ailleurs renommer dans la macro). Le fichier (soit la deuxième feuille de calcul) doit s'appeler DEV-"le n°du devis"- "la date du devis" (exemple DEV-2-090321 pour le devis n°2 en date du 9 mars 2021.) Le numéro du devis est inscrit en F10 et la date du devis en F11 (sur la deuxième feuille de calcul). J'aimerais enregistrer ce fichier dans le dossier "devis borne" ("/Users/laurianefrancois/Desktop/devisborne/) qui contient des sous dossiers correspondant au mois de l'année (01-21, 02-21, 03-21, 04-21 ... 12-21) et je voudrais que le fichier soit enregistrer dans le dossier correspondant au bon mois. (exemple : le devis avec comme date 9 mars 2021 => dans le dossier /devis borne/03-21/
Aussi (si possible) j'aimerais trouver un moyen pour qu'à chaque fois qu'un devis soit enregistré, le numéro du devis change automatiquement.
Voilà une piste de réflexion mais avec un InputBox
Accepterais-tu de m'aider stp ?
Bonjour
Hum vous êtes sous PC là et pas sous MAC
J'aimerais créer une macro qui m'affiche une boite dialogue avec "voulez vous sauvegarder" (oui / non)
Une macro combinée au lien ci-dessous
If MsgBox("voulez-vous sauvegarder le document", vbYesNo + vbDefaultButton2) = vbYes Then
'...code pour la sauvegarde
End IfSauvegarde avec ce lien --> https://forum.excel-pratique.com/s/goto/177929
Pour les sous dossiers mois année, evitez les sous dossiers et structurez bien le nom de votre devis. Une bête recherche via l'explorateur windows, va vous retrouver le devis demandé. Sous mac, avec Spotlight cela devrait le faire encore mieux. Imaginez que vous avez 1000 devis placés dans une multitude de dossier et sous dossier. cela risque de devenir ingérable.
Pour le nom du devis --> DEV-2-090321, je ferais plutot ceci :
- préférez toujours de commencer par l'année, mois puis jour -- 210309
- numéro du devis, prévoyez 3 ou 4 caractères au lieu d'un seul --> 002, 020, 200
Ce qui donnerait DEV-002-210309
Sinon vous pouvez aussi, mettre tout simplement incrémenter un numéro d'ordre. Exemple : 100000, 100001, 100002... De votre coté vous savez que tout ce qui est numéroté 100000 concerne des devis. Ce qui est encore plus pratique, si vous faite une base de données de vos devis un jour
Cordialement
Merci Dan pour ces conseils ! C'est très clair !
Peux-tu m'expliquer ce qu'est Spotlight stp ? Je ne connais pas.
Re bonjour Dan,
je me suis inspirée de la macro que tu as créée pour créer ma macro de sauvegarde. Cependant elle ne fonctionne pas...
Est-ce que tu voudrais bien me la corriger stp ?
Voilà la macro :
Sub enregistrementfeuille2PDF()
'Boite de dialogue
If MsgBox("voulez-vous sauvegarder le devis", vbYesNo + vbDefaultButton2) = vbYes Then
'Isoler feuille 2 :
Sheets("Sheet2").Select
Sheets("Sheet2").Copy
'sauvegarde
Dim dossierSauvegarde As String, nomFichier As String, LaDate As String
On Error GoTo fin
With ThisWorkbook.Sheets("sheet2")
LaDate = Format(Date, «yyyyddmm)
dossierSauvegarde = "/Users/laurianefrancois/Desktop/DEVIS Borne/"
nomFichier = "DEV_" & LaDate & ".pdf"
sauvegarde = dossierSauvegarde & "\" & nomFichier
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=sauvegarde, _
Quality:= _
xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
MsgBox "Le devis a bien été enregistré"
Exit Sub
fin: MsgBox "Problème de sauvegarde ! Le devis n'est pas enregistré"
End If
End Sub
J'ai décidé de nommer le devis : "DEV_"date du devis", avec la date du devis au format année/mois/jour (comme tu me l'as conseillé). J'ai aussi abandonné l'idée de classer les devis dans des sous dossiers correspondant au mois et à l'année (comme tu me l'as conseillé aussi).
Etant donné que je souhaite enregistrer seulement la feuille de calcul n°2, je l'ai copier dans un nouveau fichier excel ( d'où la commande :
Sheets("Sheet2").SelectSheets("Sheet2").Copy )
Idéalement, j'aimerais que la macro ferme tous les fichiers excels une fois que le devis est enregistré, mais je ne sais comment faire...
Accepterais-tu te me donner un coup de main encore une fois ?
Je te remercie infiniment pour ton temps !
Je viens de remarquer une petite erreur sur une ligne ( LaDate = Format(Date, "yyyyddmm") ), je l'ai corrigée, mais la macro ne fonctionne toujours pas :(
Bonjour
Pour le Spotlight --> Regardez l'explicatif ici --> https://support.apple.com/fr-be/HT204014
Une question : Vous copiez votre feuille 2 dans un nouveau classeur puis vous la sauvegardez en PDF ?
Vous faites cela sous MAC je vois ou sous PC et MAC ?
Merci pour votre réponse.
En toute honnêteté, je ne sais pas comment procéder... J'aimerais juste enregistrer la feuille de calcul n°2 en format PDF puis fermer mon fichier.
Re
Plus besoin puisque vous avez la réponse dans l'autre fil.
Comme je vous ai dit vous dupliquez les fils inutilement --> https://forum.excel-pratique.com/excel/msgbox-voulez-vous-sauvegarder-sauvegarde-en-pdf-154224