Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
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 08/04/2011, 18h34   #1
Invité de passage
 
Inscription : avril 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 10
Points : 1
Points : 1
Par défaut macro de suppression du retour chariot

Bonjour,

Quelqu'un aurait une bonne idée pour supprimer un retour chariot via une macro word ?

Voici le bout de code que j'ai fait :

Code :
1
2
3
4
If UserForm1.CheckBox1.Value = True Then
    RemplirSignet "C1", "La date des soins et le(s) code(s) acte(s)," & Chr(13)
Else: RemplirSignet "C1", Replace(Chr(13), "")
End If
Sachant que j'avais trouvé la macro suivante qui semblait prometteuse :
Code :
1
2
3
Sub SupprimerRetourLigne()
ActiveDocument.Formfields(1).Result = Replace(ActiveDocument.FormField(1).Result,Chr(13),"")
End Sub
Dans mon cas, ça ne fonctionne pas. Erreur de syntaxe sans doute.

Merci pour vos suggestions
Akane42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 19h13   #2
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Bonjour,
Le premier paramètre de la fonction Replace est le texte initial, mais je n'en vois aucun dans le code
Code :
RemplirSignet "C1", Replace(Chr(13), "")
Il faudrait écrire
Code :
RemplirSignet "C1", Replace(XXX, Chr(13), "")
avec XXX = le texte dans lequel il faut remplacer les retours à la ligne.
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 12h29   #3
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

Je pense que remplir signet est une procédure, ce serait pas mal de l'avoir aussi ?

Si j'ai bien suivi, c'est supprimer une marque de paragraphe qui serait contenue dans un champ de formulaire ?
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 21h07   #4
Invité de passage
 
Inscription : avril 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 10
Points : 1
Points : 1
Bonjour,

Merci pour vos réponses, je vais tester ça demain.
Heureux-oli, en fait, c'est encore pour faire une lettre type.
Dans le courrier, il y a des zones de formulaire. Mais comme ma phrase fait plus que 25 caractères et que ça génère des problèmes de mise en page (je suis sous word 2003 et le retour à la ligne ne se fait pas. Apparemment d'après ce que j'ai pu lire le problème serait réglé dans word 2007), j'ai inséré un signet dans le corps du texte à l'endroit où je souhaite que le texte s'affiche.
Ensuite j'affiche une userform qui me permet de sélectionner les phrases qui vont bien et de les intégrer dans le texte via des signets.

Je ne sais pas si je suis très claire dans mes explications. Mais donc pour moi, les signets ne font pas partie vraiment du formulaire puisqu'ils ne sont pas intégrés dans un champ à remplir ou à sélectionner du formulaire.

Merci encore pour vos réponses et reviendrait vous dire si ça fonctionne.
bonne soirée
Akane42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 12h57   #5
Invité de passage
 
Inscription : avril 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 10
Points : 1
Points : 1
Bonjour,

ça ne marche pas
du coup j'ai changé mon fusil d'épaule.

Voici le code que j'utilise :
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Private Sub CommandButton1_Click()
' = Bouton Annuler
' Lui affecter la propriété Cancel à True
' pour bénéficier de la touche Echap (ESC)
    Me.Hide
End Sub
 
Private Sub CommandButton2_Click()
' = Bouton OK
 
'Désactiver la protection du document
If ActiveDocument.ProtectionType <> wdNoProtection Then
    ActiveDocument.Unprotect Password:="xxx"
End If
 
    ' Les données de la UserForm : déclaration de variables
 
    Selection.GoTo What:=wdGoToBookmark, Name:="TEXTE"
 
    If UserForm1.CheckBox1.Value = True Then
        Selection.TypeText Text:="Texte1" + Chr$(13)
        Else: Selection.TypeText Text:=""
    End If
 
    If UserForm1.CheckBox2.Value = True Then
        Selection.TypeText Text:="texte2" + Chr$(13)
    End If
 
    If UserForm1.CheckBox3.Value = True Then
        Selection.TypeText Text:="texte3," + Chr$(13)
    End If
 
    If UserForm1.CheckBox4.Value = True Then
        Selection.TypeText Text:="texte4" + Chr$(13)
    End If
 
    If UserForm1.CheckBox5.Value = True Then
        Selection.TypeText Text:="texte5" + Chr$(13)
    End If
 
    ActiveDocument.Fields.Update ' màj des champs pour le renvoi sur Titre
 
    ' Fermer la Userform
 
    Me.Hide
 
'Activer la protection du document
If ActiveDocument.ProtectionType = wdNoProtection Then
    ActiveDocument.Protect Password:="xxx"
        Type:=wdAllowOnlyFormFields, NoReset:=True
End If
 
End Sub
Le code pour la non destruction des signets dans un module nommé signets:
Code :
1
2
3
4
5
6
7
8
9
10
11
Public Sub RemplirSignet(S As String, T As String)
 
' Remplit le signet S avec le texte T sans détruire S
    On Error GoTo rien
    Dim Place As Long
    Place = ActiveDocument.Bookmarks(S).Range.Start
    ActiveDocument.Bookmarks(S).Range.Text = T
    ActiveDocument.Bookmarks.Add Name:=S, _
    Range:=ActiveDocument.Range(Place, Place + Len(T))
rien:
End Sub
Maintenant mon soucis c'est que le signet une fois qu'il a été rempli, ne se vide plus et ne fait que se rajouter...

pouvez-vous m'aider ?

Merci d'avance
Akane42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 14h29   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

Là ? http://www.developpez.net/forums/d48...truire-signet/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 15h37   #7
Invité de passage
 
Inscription : avril 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 10
Points : 1
Points : 1
Merci pour ta réponse Heureux-Oli,

donc le premier code tu le mets dans le module signet (après adaptation bien sûr) et le 2ème code tu le mets dans la userform ?
Akane42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 16h18   #8
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 321
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 321
Points : 29 220
Points : 29 220
Salut,

Je suis un peu perdu dans tes demandes, si bien que j'ai un peu de mal à donner une réponse claire.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 21h18   #9
Invité de passage
 
Inscription : avril 2011
Messages : 10
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 10
Points : 1
Points : 1
Salut,

Merci beaucoup Heureux-Oli, j'ai récupéré le code que tu m'as montré et il marche super bien.
C'est exactement ce que je souhaitais faire.
(Pas pu supprimer le retour chariot, mais j'ai pu faire le nécessaire pour afficher les phrases que je souhaitais et remettre à zéro les signets après le re-lancement de la macro).

Merci en tous cas de votre aide très précieuse.
Akane42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h33.


 
 
 
 
Partenaires

Hébergement Web