Enregister sous / texte par defaut / texte d'une zone de texte / pdf

GADENSEB

XLDnaute Impliqué
Bonjour,
Je débute en macro Word

J'ai un CV que j'enregistre sous différente en fonction du titre du cv que je change à chaque fois
Je voudrais créer un bouton qui fait :
- Fichier / enregistrer sous (je choisirais moi mm le dossier d'enregistrement)
- Avec un nom par défaut "MON NOM - CV - "
- Rajouter au nom de fichier par défaut le titre du CV contenu dans une zone de texte --> "MON NOM - CV - TITRE DU CV"
- Le tout en majuscule

Merci par avance
Bonne Journée

Seb
 

GADENSEB

XLDnaute Impliqué
Re : Enregister sous / texte par defaut / texte d'une zone de texte / pdf

Bonsoir,
Voila la premiére partie du futur code ! ;)

Code:
 ChangeFileOpenDirectory "D:\DOSSIER A DEFINIR\"
    ActiveDocument.SaveAs2 FileName:="MON NOM - CV - TITRE POSTE.docx", _
        FileFormat:=wdFormatXMLDocument, LockComments:=False, Password:="", _
        AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, _
        EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData _
        :=False, SaveAsAOCELetter:=False, CompatibilityMode:=14

Comment récupérer le contenu d'une zone de texte ?

Bonne nuit

Seb
 

Staple1600

XLDnaute Barbatruc
Re : Enregister sous / texte par defaut / texte d'une zone de texte / pdf

Re

Testes ce code sur un document Word vierge
et inspires-toi en pour récupérer : "le contenu d'une zone de texte"
Code:
Sub TestWord()
Dim shpA As Shape, shpB As Shape, vStr1$, vStr2$, i%, X
ActiveDocument.Shapes.SelectAll
Selection.Delete
Set shpA = ActiveDocument.Shapes.AddTextbox(1, 85, 95#, 100, 100) 'TextBox
shpA.Visible = True: shpA.Left = 35
shpA.TextFrame.TextRange.Text = "TEST"
MsgBox shpA.TextFrame.TextRange.Text 'affiche contenu TextBox
Set shpA = Nothing
Set shpB = ActiveDocument.Shapes.AddLabel(1, 35, 10, 75, 75) 'Label
shpB.Visible = True: shpB.Left = 70
shpB.TextFrame.TextRange.Text = Application.UserName
MsgBox shpB.TextFrame.TextRange.Text ' affiche contenu Label
Set shpB = Nothing
With ActiveDocument
X = .Shapes.Count
MsgBox X & " forme(s) sur le document actif."
For i = 1 To X
MsgBox "NOM Forme " & i & ": " & .Shapes(X).Name, vbInformation
Next
vStr1 = .Shapes(1).TextFrame.TextRange.Text 'contenu Shape1 dans une variable
vStr2 = .Shapes(2).TextFrame.TextRange.Text ''contenu Shape2 dans une variable
End With
MsgBox UCase(vStr1), vbInformation, "VARIABLE 1"
MsgBox LCase(vStr2), vbInformation, "VARIABLE 2"
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Enregister sous / texte par defaut / texte d'une zone de texte / pdf

Bonsoir à tous


Et comme ceci, tu es moins perdu ?
Testes d'abord sur un document Word vierge
(Pour la mise en œuvre voir ci-dessous
(MEO que tu pouvais trouver seul avec un simple moteur de recherche ;))
Créer ou enregistrer une macro - Word

Code VB:
Const MONNOM As String = "Nom Prénom"
Sub TestSimple()
'Rajouter au nom de fichier par défaut le titre du CV contenu dans une zone de texte
'--> "MON NOM - CV - TITRE DU CV"
'Le tout en majuscule
Dim oSh As Shape, oShZT As Shape, ContenuZoneTexte$, NomFichier$
'si besoin, je supprime toutes les Shapes
ActiveDocument.Shapes.SelectAll: Selection.Delete

'//////ici j'ajoute juste une TextBox pour l'exemple
Set oSh = ActiveDocument.Shapes.AddTextbox(1, 100, 100, 135, 95)
oSh.TextFrame.TextRange.Text = "titre posteY"
'///// chez toi, cette zone de texte existera déjà
oSh.Name = "TITRE"

'[[[[[[[[[[[[[PARTIE DU CODE QUE TU ADAPTERAS]]]]]]]]]]]]]]]]]
'Ici à la place de TITRE , mettre le nom de ta TextBox
'que tu auras nommé au préalable
Set oShZT = ActiveDocument.Shapes("TITRE")
ContenuZoneTexte = oShZT.TextFrame.TextRange.Text
NomFichier = UCase(MONNOM & "_CV_" & ContenuZoneTexte) + ".docx"
If InStr(NomFichier, vbCr) <> 0 Then
NomFichier = Trim(Left(NomFichier, InStr(NomFichier, vbCr) - 1))
End If
ChangeFileOpenDirectory "D:\Tempo\" 'ici adapter nom répertoire
ActiveDocument.SaveAs2 NomFichier
'[[[[[[[[[[[[[PARTIE DU CODE QUE TU ADAPTERAS]]]]]]]]]]]]]]]]]
End Sub

 

GADENSEB

XLDnaute Impliqué
Re : Enregister sous / texte par defaut / texte d'une zone de texte / pdf

Hello
Je viens enfin de prendre le temps de regarder ton code !
Au poil, c'est ce que je chercher.


Dernier challenge :
Là le fichier s'enregistre en ".docx." --> Comment faire la conversion en pdf sachant que j'ai Acrobat Reader XI pro ?

Merci bonne journée

Seb
 

Staple1600

XLDnaute Barbatruc
Re : Enregister sous / texte par defaut / texte d'une zone de texte / pdf

Bonsoir à tous

Dernier challenge :
Là le fichier s'enregistre en ".docx." --> Comment faire la conversion en pdf sachant que j'ai Acrobat Reader XI pro ?
Commencer par être un peu curieux et utiliser l'enregistreur de macros...:rolleyes:
Code:
Sub Macro1()
' Macro1
    ActiveDocument.ExportAsFixedFormat OutputFileName:="C:\Temp\TEST.pdf", _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
        wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
        Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
        CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
        BitmapMissingFonts:=True, UseISO19005_1:=True
    ChangeFileOpenDirectory "C:\Temp\"
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia