Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Word Code VBA Excel sur Word

Achille_1

XLDnaute Nouveau
Bonjour,
Je souhaite rédiger un rapport d'une application que j'ai créé sur Excel et je ne sais pas s'il y a un moyen de mettre du code avec un format correct.
Quelque chose du même genre que sur le forum :
VB:
Private Sub cb_créa_dossier_Click()
Recherche_brut.Show 0
Unload Me
'Opérations.Aide_2.Visible = False
'Opérations.cb_insert_réf.Visible = False
Opérations.Frame2.Visible = False
Opérations.modèle1.Visible = False
Opérations.modèle2.Visible = False
Opérations.raz.Visible = False
Opérations.supp_réf.Visible = False
Opérations.dossier_réf.Visible = False
Opérations.result2.Visible = False

End Sub

Merci d'avance pour les réponses !

Achille
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Achille_1

•>Achille_1
Issu de mes archives anglophones
Je te laisse tester
Et si tu as des questions, n'hésites pas.
(ou sois un tantinet curieux (if you see what I mean) )
VB:
Sub VBA_TextFormat()
'PURPOSE: Format selected text similar to VBE appearance
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim MySelection As Range
Dim MySelection_Limit As Range
Dim BlueArray As Variant

BlueArray = Array("End Sub", "End If", "For ", "In ", "Do While", "Sub ", "Set ", "As ", _
  "As Single", "Dim ", "With ", "End With", "If ", "Else ", "ElseIf ", "On Error GoTo ", _
  "On Error GoTo 0", "Sub ", "Exit Sub", "For Each ", "Next ", "Private Sub ", " True", _
  " False", " To ", " LBound", " UBound", "Wend", "While ", " Then", "Preserve ")

Set MySelection = Selection.Range
Set MySelection_Limit = MySelection.Duplicate

'Adjust font type and font size
  MySelection.Font.Name = "Courier New"
  MySelection.Font.Size = 10

'Loop through words that should be blue
  For x = LBound(BlueArray) To UBound(BlueArray)

  Set MySelection = Selection.Range
  Set MySelection_Limit = MySelection.Duplicate

  With MySelection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = BlueArray(x)
    .Replacement.Text = BlueArray(x)
    .Forward = True
    .Wrap = wdFindStop
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    .Replacement.Font.Color = wdColorDarkBlue

    While .Execute
      If MySelection.InRange(MySelection_Limit) Then
        MySelection.Font.Color = wdColorDarkBlue
        MySelection.Collapse wdCollapseEnd
      End If
    Wend
  End With
    
Next x

'Look for a Quote and changes the rest of that line's font color to Green
  With Selection.Find
    .ClearFormatting
    .Text = "'[!^13""""]@[^13]"
    .Replacement.ClearFormatting
    .Replacement.Text = ""
    .Replacement.Font.Color = wdColorGreen
    .Format = True
    .Forward = True
    .Wrap = wdFindStop
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
    .Execute Replace:=wdReplaceAll
  End With
End Sub
 

Pounet95

XLDnaute Occasionnel
Bonsoir,
Comme quoi les reliques ou archives, ça sert !
Je ne maîtrise pas Word et donc j'ai la quasi majorité des mots soulignés par une vague rouge, mais ça fonctionne bien ( en ajoutant quelques mots clés manquants ).
Si j'ai bien compris , il faut importer dans Word le texte des modules, le sélectionner et exécuter le code ?
A la fin de l'exécution, le texte est formaté à l'image du VBE. Super !
 

Staple1600

XLDnaute Barbatruc
Bonsoir Pounet95

Pour les mots soulignés en rouge, il suffit de désactiver la correction orthographique automatique.
Le code doit s’exécuter à partir de Word.
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…