Enregistrement feuille excel

Fermé
gislain99 - 28 août 2013 à 11:38
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 29 août 2013 à 17:52
Bonjour,
j'ai une feuille Excel qui me sert de bon de livraison elle se numérote se nome
et s'imprime automatiquement je voudrais aussi quelle se range automatiquement dans un classeur défini après l'impression c'est la que sa coince je ne vois pas du tous l'erreur que j'ai.

Ci dessous mon code

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False
ActiveSheet.Name = ("BL-") & Range("J4").Text
Range("n°_BL").Value = Range("n°_BL").Value + 1
Application.ScreenUpdating = False
ThisWorkbook.ActiveSheet.Copy
extension = ".xls"
chemin = "C:\Wartsïla"
nomfichier = ActiveSheet.Range("BL-") & Range("J4") & extensionWith ActiveWorkbook
    .ActiveSheet.DrawingObjects(1).Delete
    .SaveAs Filename:=nomfichier
    .Close
End With
End Sub


L'erreur ce trouve sur la ligne surligné en gras
"Erreur d'exécution '1004':"
"Erreur définie par l'application ou par l'objet"

A voir également:

4 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
28 août 2013 à 12:29
Bonjour,

"BL-" ne semble pas être une cellule ni une plage nommée.
Apparemment tu veux sauvegarder tout le fichier dans un dossier (d'après ton code) et non insérer l'onglet dans un classeur existant (d'après ton texte). Tu définis chemin sans l'utiliser, tu risques d'avoir des mauvaises surprises à ce niveau là...

A+
0
Bonjour,

Oui "BL-" est la racine que je veut pour nommer toutes mes feuilles suivie du numéro récupérer dans la cellule J4.

au final je veux enregistrer ma feuille dans le dossier "C:\Wartsïla"

je ne voie pas comment donner l'instruction pour aller ranger ma feuille.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
28 août 2013 à 13:42
Il doit y avoir 500 sujets qui ont déjà résolu ton problème.
Si tu veux que le fichier porte le nom de l'onglet, pourquoi ne pas utiliser :
nomfichier = ActiveSheet.Name & extension ???
Pour sauvegarder dans le bon dossier, je te laisse chercher.
0
bonjour,
excuser moi mais il faudrait lire correctement la question
pour nommer la feuille je n'ais aucun souci pour l'imprimer non plus
mon problème est d'enregistrer ma feuille dans un classeur dédier c'est ce bout de code que je n'arrive pas a réaliser cela fait plusieurs jour que je cherche sur le net et que je ne trouve pas de solution.
si j'avais trouver une solution je ne demanderais pas d'aide .

merci d'avance
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
28 août 2013 à 14:08
Je vois bien que le début du code est correct, mais la ligne en erreur ne rime à rien. Ma proposition de tout à l'heure devrait corriger le bug. Il me paraît incroyable d'arriver à nommer correctement un onglet et à ne pas arriver à stocker dans une variable ce même nom. M'enfin, puisqu'il faut tout mâcher...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False
ActiveSheet.Name = ("BL-") & Range("J4").Text
Range("n°_BL").Value = Range("n°_BL").Value + 1
Application.ScreenUpdating = False
ThisWorkbook.ActiveSheet.Copy
extension = ".xls"
chemin = "C:\Wartsïla"
nomfichier = ActiveSheet.Name & extension
With ActiveWorkbook
    .ActiveSheet.DrawingObjects(1).Delete
    .SaveAs Filename:=chemin & "\" & nomfichier
    .Close
End With
End Sub
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
28 août 2013 à 14:10
0
Bonjour,
Je n'avais pas bien lu la modification que tu avais apporté a mon code en définitive
il fonctionne très bien maintenant.

Par contre j'ais un petit souci lors de l'impression je veux imprimer la feuille qui se nome automatiquement avec deux autres feuilles nommées "Dem." et "Pré." mais je n'y arrive pas je ne sait pas ou intégrer cette action.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
29 août 2013 à 17:52
D'après https://www.developpez.net/forums/d1021162/logiciels/microsoft-office/excel/macros-vba-excel/imprimer-plusieurs-feuilles/ (grâce à notre ami Google),
le code suivant devrait faire l'affaire :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
ActiveSheet.Name = ("BL-") & Range("J4").Text
Sheets(Array("Dem.", "Pré.",ActiveSheet.Name)).PrintOut Copies:=1, Collate:=False
Range("n°_BL").Value = Range("n°_BL").Value + 1
Application.ScreenUpdating = False
ThisWorkbook.ActiveSheet.Copy
extension = ".xls"
chemin = "C:\Wartsïla"
nomfichier = ActiveSheet.Name & extension
With ActiveWorkbook
    .ActiveSheet.DrawingObjects(1).Delete
    .SaveAs Filename:=chemin & "\" & nomfichier
    .Close
End With
End Sub
0