Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2011, 17h26   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Macro VBA de création de PDF automatique depuis un fichier EXCEL

Bonjour,

Je suis finalement arrivée à bout d'une macro qui me permet de générer de manière automatique depuis un fichier EXcel une multitude de fichier PDF remplissant la condition mise dans mon code VBA ci-dessous. Le seul problème et pas des moindres, c'est que le libellé pris pour enregistrer les PDF est parfois tronqué et de manière aléatoire. Je n'ai aucune idée pourquoi. Quelque soit le libellé, il est tronqué! Exemple de libellé testé "ARRONDISSEMENT BAGNERES DE BIGORRE" ou encore "ZONAGE A FACON 01" ou encore "01". Bref, j'ai tout essayé et je ne vois pas pourquoi il va me retirer dans "ARRONDISSEMENT BAGNERES DE BIGORRE" le "ARROND".
QUelqu'un a t-il une idée sur ce problème ou peut-être même l'aurait déjà rencontré. Merci par avance pour votre aide. Virginie


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
Sub CREATION_ZONAGE_SPECIFIQUE()
'
' CREATION_ZONAGE_SPECIFIQUE Macro
' Macro enregistrée le 22/11/2011 par C481604
'
' Touche de raccourci du clavier: Ctrl+q
'
 
 
Dim mois, annee As String
    mois = Month(Sheets("plages graph").Range("A4"))
    annee = Year(Sheets("plages graph").Range("A4"))
 
Dim chemin As String
Dim nom As String * 34
Dim i As Integer
 
chemin = "S:\"
 
For i = 2 To 37
 
If Sheets("zones").Cells(i + 2, 19) > 0 Then
 Sheets("Synthèse").Range("E6") = Sheets("zones").Cells(i + 2, 18)
 nom = Sheets("zones").Cells(i + 2, 20).Value
 bandeau
 zonetXT
 Sheets("Zonage à façon specifique").Select
 ThePath = chemin
 TheFullName = nom
 SendKeys = ThePath & TheFullName
 SendKeys ("{ENTER}")
 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=False, ActivePrinter:="Adobe PDF"
 
 
End If
Next
End Sub
virgie31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 09h18   #2
Membre Expert
 
Avatar de hunteshiva
 
Homme eric Maitre
Étudiant
Inscription : février 2010
Messages : 954
Détails du profil
Informations personnelles :
Nom : Homme eric Maitre
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 954
Points : 1 166
Points : 1 166
Bonjour,

je commence par deux points importants:
  • Merci de ne pas oublier les balises de CODE *le code est vraiment plus lisible*
  • Le VBA n'est pas du vb.net Microsoft Office > Excel > Macros et VBA Excel


Pour ton code, j'aimerais comprendre à quoi servent les deux lignes suivantes:
Code :
1
2
3
nom = Sheets("zones").Cells(i + 2, 20).Value
bandeau
zonetXT
ensuite as tu regardé si "TheFullName " contenait la bonne valeur *exemple*:
hunteshiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 10h22   #3
Invité de passage
 
Inscription : novembre 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 2
Points : 0
Points : 0
Bonjour,

Les lignes suivantes :
Code :
1
2
3
nom = Sheets("zones").Cells(i + 2, 20).Value
bandeau
zonetXT
permettent, pour la 1ère, de créer une variable qui prend la valeur d'une cellule incrémentée par un compteur i et cette valeur correspond à une zone géographique. Les commandes "bandeau" et "zonetXT" font appel à deux macros nommée "bandeau" et "zonetXT" qui permettent d'insérer dans un bandeau une zone de texte dans laquelle on affiche le libellé de la zone géograhique.
Concernant la valeur prise par TheFullName, elle est bien correcte car certains PDF sont bien crée avec le nom pris pour la valeur de TheFullName.
Cdt.
Virgie31
virgie31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 11h34   #4
Membre Expert
 
Avatar de hunteshiva
 
Homme eric Maitre
Étudiant
Inscription : février 2010
Messages : 954
Détails du profil
Informations personnelles :
Nom : Homme eric Maitre
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 954
Points : 1 166
Points : 1 166
si tu dit que le nom s'imprime de façon aléatoire,
j'ai envie de dire que ça peut venir du fait que la macro n'attend pas la confirmation
Code :
SendKeys (ThePath & TheFullName,TRUE)
http://msdn.microsoft.com/en-us/libr...ice.10%29.aspx

PS: merci de faire l'effort de mettre les balises de code dans tes réponse ou tu te verra sans réponse la prochaine fois.
hunteshiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h29.


 
 
 
 
Partenaires

Hébergement Web