VBA SaveAs plusieurs Sheets & Value
Bonjour à toutes et à tous, après avoir parcouru plusieurs forums et des heures de test, je viens vous demander de l'aide !
J'ai un "document de base" en .xlsm qui doit s'enregistrer sous grâce à VBA avec un nom de fichier qui utilise les informations saisies dans ce "document de base". Le code suivant fonctionne mais seulement avec le premier "& Sheets", et donc pas avec les suivants... Ce qui me donne actuellement un nom de fichier "XXX - .xlsm", il me manque donc des informations... Merci d'avance pour vos lumières ;)
Code:
1 2 3 4
| Sub Enregistrer()
ActiveWorkbook.SaveAs Filename:="C:\Users\XXX\Desktop\Entreprise\Clients\Base de données\" _
& Sheets("Fiche technique (1)").Range("C5").Value & Sheets("Fiche technique (1)").Range("F5").Value & " - " & Sheets("Fiche technique (1)").Range("C6").Value & Sheets("Facture").Range("A3").Value & ".xlsm"
End Sub |
Conservation mise en forme source Save.As
Bonjour,
Et oui encore moi !
Mon document est fonctionnel et répond parfaitement à mes attentes d'un point de vu technique.
En revanche, lorsque j'enregistre le nouveau document, les différentes mises en formes ne sont plus présentes (date longue, comptabilité, standard, etc).
P.S. : je ne sais pas s'il y a un quelconque impact mais des cellules verrouillées sont présentes sur mon document source...
Merci d'avance pour votre aide ! Je vous met ici mon code pour rappel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Sub Enregistrer()
'
' Touche de raccourci clavier : Ctrl + p
'
Dim CA As String
Dim C1 As String
Dim C2 As String
Dim C3 As String
Dim C4 As String
CA = "C:\Users\XXX\Desktop\XXX\Clients\Base de données\"
With Sheets("Fiche technique (1)")
C1 = CStr(.Range("C5").Value)
If C1 = "" Then
MsgBox "Civilité vide."
.Activate
.Range("C5").Select
Exit Sub
End If
C2 = CStr(.Range("F5").Value)
If C2 = "" Then
MsgBox "Nom vide."
.Activate
.Range("F5").Select
Exit Sub
End If
C3 = CStr(.Range("C6").Value)
If C3 = "" Then
MsgBox "Numéro de devis vide."
.Activate
.Range("C6").Select
Exit Sub
End If
End With
With Sheets("Facture")
C4 = CStr(.Range("J7").Value)
If C4 = "" Then MsgBox "Numéro de facture vide."
End With
ActiveWorkbook.SaveAs Filename:=CA & C1 & " " & C2 & " - D" & C3 & " - F" & C4 & ".xlsm"
End Sub |