Bonjour à toutes et tous
je suis totalement novice dans excel et encore plus en VBA, je vais donc essayer d'expliquer au mieux mon soucis
Alors voila j'ai créer un bon de commande d'articles pour les agents dont j'ai la charge
la macro que j'ai assemblé au mieux de petit morceaux chopés à droit à gauche et lancé depuis un bouton sur mon fichier elle permet de:
- Copier le bon de commande initial
- renommer le bon de commande initial sous la forme "bon de commande" avec le nom de l'agent pris dans la cellule C4 (afin de le garder en sauvegarde)
- un nouveau bon de commande est généré à partir de la copie et les données saisi y sont effacés
- et un PDF du fichier initial est créer afin de pouvoir être imprimé
Sur la version initiale du fichier cela fonctionne comme il faut
mais des que j'ai remplie à partir de la copie j'ai droit a une erreur 400 juste après l'affichage de "InputBox" pour choisir le nom de la prochaine feuille
vu mes connaissances mon code doit être totalement foireux et lors de la reproduction ça doit merder quelques part mais je sèche complétement la :/
j’espère avoir été suffisamment clair dans mes explications je vous met le code et le fichier
et m'excuse par avance si ça pique les yeux
Merci d'avance
je suis totalement novice dans excel et encore plus en VBA, je vais donc essayer d'expliquer au mieux mon soucis
Alors voila j'ai créer un bon de commande d'articles pour les agents dont j'ai la charge
la macro que j'ai assemblé au mieux de petit morceaux chopés à droit à gauche et lancé depuis un bouton sur mon fichier elle permet de:
- Copier le bon de commande initial
- renommer le bon de commande initial sous la forme "bon de commande" avec le nom de l'agent pris dans la cellule C4 (afin de le garder en sauvegarde)
- un nouveau bon de commande est généré à partir de la copie et les données saisi y sont effacés
- et un PDF du fichier initial est créer afin de pouvoir être imprimé
Sur la version initiale du fichier cela fonctionne comme il faut
mais des que j'ai remplie à partir de la copie j'ai droit a une erreur 400 juste après l'affichage de "InputBox" pour choisir le nom de la prochaine feuille
vu mes connaissances mon code doit être totalement foireux et lors de la reproduction ça doit merder quelques part mais je sèche complétement la :/
j’espère avoir été suffisamment clair dans mes explications je vous met le code et le fichier
et m'excuse par avance si ça pique les yeux
Merci d'avance
VB:
Sub dupliquerSavePDF()
'partie copie du fichier'
Dim numFacture As String ' Création d'une nouvelle variable de type string (= chaîne de caractères) afin d'y stocker des caractères alphanumériques
nameBdC = InputBox("Nommez le nouveau Bon de commande", Title:="Nommez le nouveau bon de Commande Vierge", Default:="Bon de Commande ") ' Présentation d'une zone de saisie pour demander le numéro du bon de commande à l'utilisateur
ActiveSheet.Name = "Bon de commande " & Range("C4")
Sheets("Bon de commande " & Range("C4")).Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = nameBdC ' Assignation du nom de la feuille
'partie effacement des données nommé Saisi de la nouvelle feuille'
For Each cell In ActiveSheet.Range("Saisi")
cell.MergeArea.ClearContents
Next cell
'generation du PDF'
Dim Chemin As String
Dim texte As String
With ThisWorkbook
Chemin = .Path & Application.PathSeparator
With .Sheets("Bon de commande " & Range("C4"))
titre = "Bon de commande " & Range("C4") 'Nom du fichier avec le nom de l'agent pour creation du fichier
fichier = "Le Bon de commande de " & Range("C4") & ".pdf" 'Nom du fichier avec le nom de l'agent et extension pour messagebox
Application.DisplayAlerts = False
.ExportAsFixedFormat Type:=xlTypePDF, _
FileName:=Chemin & titre & ".pdf", _
Quality:=xlQualityMinimum, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
End With
MsgBox fichier & (" a été sauvegardé dans le dossier.")
End Sub