Plante d'un code

marbeval - 13 mars 2013 à 13:13
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 13 mars 2013 à 19:21
Bonjour à tous,

J'ai créer un code pour sauvegarder une feuille excel d'un fichier après conversion en pdf sous un chemin d'accés bien précis.
J'ai défini auparavent trois variables: Refbon, Nomsave et Chemin qui définissent le nom du fichier selon certaines valeurs de cellules et l'endroit où le fichier sera enregistré.
Le problème est que mon code plante au moment de la sauvegarde. Par contre ci je remplace ma variable par le chemin en fixe dans le code, je n'ai pas de problème de plantage.
Est ce que quelqu'un aurais une idée?
Merci d'avance pour votre aide.
Voici mon code:
Dim Refbon As String
Dim Chemin As String
Dim Nomsave As String


Refbon = Sheets("Bon de Commande BL").Range("F13").Value & " " & Sheets("Bon de Commande BL").Range("G7").Value & " " & Sheets("Bon de Commande BL").Range("G8").Value & ".pdf"
Chemin = "S:\BusinessControl\Department\BUDGET CDES USINE\BUDGET\Commandes 2013\Responsable technique"
Nomsave = Chemin & Refbon

Sheets("Bon de Commande BL").Select
Sheets("Bon de Commande BL").Copy

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Nomsave, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True

Application.DisplayAlerts = False

ActiveWindow.Close

End Sub

6 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
13 mars 2013 à 13:21
Bonjour,

Et ton code, il plante avec quel message d'erreur?
Quand tu postes, merci d'utiliser la coloration syntaxique pour ton code (3eme icone en partant de la droite) et de sélectionner le bon forum (vba)

Si tu affiches ta variable nomsave est-ce qu'elle a la fonne forme?


L'expérience, c'est une connerie par jour, mais jamais la même..
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mars 2013 à 14:10
Salut

Catégorie modifiée Visual Basic 6 > Langages dérivés > VBA

Plus précisément, que vaut Refbon ?

Merci d'utiliser le coloriage syntaxique la pochaine fois quand tu colles du code (3ème icone à droite) = plus lisible.

Amélioration de présentation et de simplification d'écriture, donc de clarté :
With Sheets("Bon de Commande BL")
    Refbon = .Range("F13").Value & " " & _
             .Range("G7").Value & " " & _
             .Range("G8").Value & ".pdf" 
End With

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mars 2013 à 14:13
Au cas où ...
Méthode de débogage :
- F9 sur une ligne de code; elle change de couleur
Le programme s'y arrêtera au prochain passage.
Lors de l'arrêt, survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement
0
Bonjour Jack et lolokum,

Merci pour vos msg. C'est la première fois que je fais cette démarche et je vous promets de repecter les codes a respecter dans ces forums.
Grace à toi jack j'ai pu voir que j'avais un prb dans une variable. en effet, la cellule F13 contenait un caractére spécial "/" qui n'est pas accepté lors des sauvegardes!!!!
Autre petite question: je souhaite en plus de de sauvegarder ce document pdf, l'envoyer par mail dont l'adresse mail ce trouve dans la cellule G13 de ma feuille excel.
Auriez vous une idée?

Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mars 2013 à 19:19
Tout dépend de ta version de Excel.

Un truc simple :
Option Explicit
Sub EnvoiMail()
    If IsNull(Application.MailSession) Then
        Application.MailLogon "toto@monFAI.fr", "secret", False
    End If
    If Not IsNull(Application.MailSession) Then
        ActiveWorkbook.SendMail Recipients:="kiki@ailleurs.fr", _
                                Subject:="Test envoi classeur", _
                                ReturnReceipt:=True
    End If
End Sub
Même pas sûr qu'il faille ouvrir une session.

Rappelle toi que les logiciels de mails sont sécurisés et qu'il faudra, à un moment ou un autre, valider l'interaction entre Excel et ton gestionnaire de mails.
Sinon, il faut s'adresser directement au serveur de mail et c'est largement plus complexe.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 mars 2013 à 19:21
PS : Ca enverra le classeur entier en pièce jointe.
0
Rejoignez-nous