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 12/04/2007, 22h05   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 53
Points : 11
Points : 11
Par défaut Copier une ligne sous Word - VBA

Bonjour, je cherche à copier une ligne jusqu'au caractère "saut de ligne" sous word en VBA. Je cherche aussi comment fermer un fichier word en VBA. Merci d'avance pour votre aide.
aaliyan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 23h14   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Code :
1
2
3
4
5
6
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend 'Sélection de la ligne, saut de ligne compris
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, _
               Extend:=wdExtend 'Retrait du saut de ligne
    Selection.Copy
    Selection.TypeParagraph 'Ajoute un saut de ligne
    Selection.PasteAndFormat (wdPasteDefault) 'colle la ligne
Fait en enregistrant. En bleu, le paramètre qui permet la sélection, et Endkey jusqu'à la fin de la ligne.

PS - Pour enregistrer en quittant
Code :
    ActiveDocument.Close True
Pour quitter sans enregistrer, tu remplaces True par False
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 09h47   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 53
Points : 11
Points : 11
En fait, je me place sur un signet.
Et après, je veux selectionner toute ligne qui reste après le signet.

Voilà mon début de code.

Code :
1
2
3
  If MyDoc.Bookmarks.Exists("Expert") = True Then
     MyDoc.Bookmarks("Expert").Select
  End If
aaliyan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 09h54   #4
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 53
Points : 11
Points : 11
Je fais la macro sous access. J'ouvre le document word et je me place sur le signet.
aaliyan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 10h00   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Donc, tu es sur le signet sélectionné. Alors tu commences par te placer après le signet
Code :
Selection.MoveRight Unit:=wdCharacter, Count:=1
et ensuite, tu mets le code que je t'ai mis
Je ne sais pas comment tu as instancié Word mais n'oublie pas de faire précéder Selection de cette instance.
ex : WD.Selection...

Citation:
Envoyé par aaliyan
Je fais la macro sous access. J'ouvre le document word et je me place sur le signet.
Merci de préciser seulement ici que tu es dans Access.
Si tu avais mis [VBA-A] devant ton sujet, on l'aurait su plus tôt
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 10h10   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 53
Points : 11
Points : 11
Je n'y arrive pas, cela ne marche pas voila mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Fichier = rs.Fields("titre")
 
  Chemin = "C:\" & Fichier & ".doc"
 
  Set Wd = CreateObject("Word.Application")
  With Wd
      .Visible = True
      .Documents.Open Chemin
      .Activate
  End With
 
If MyDoc.Bookmarks.Exists("DateMaJ") = True Then
     MyDoc.Bookmarks("DateMaJ").Select
  End If  
 
  MyDoc.Selection.EndKey Unit:=wdLine, Extend:=wdExtend 'Sélection de la ligne, saut de ligne compris
  MyDoc.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend 'Retrait du saut de ligne
Ca plante la dessus

MyDoc.Selection.EndKey Unit:=wdLine, Extend:=wdExtend 'Sélection de la ligne, saut de ligne compris
MyDoc.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend 'Retrait du saut de ligne
aaliyan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 15h25   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 53
Points : 11
Points : 11
Par défaut [Resolu] Copier une ligne sous Word vers ACCESS

Code :
1
2
3
4
5
6
If Wd.ActiveDocument.Bookmarks.Exists("Nom") = True Then
    Wd.ActiveDocument.Bookmarks("Nom").Select
  End If
  Call Wd.Selection.MoveDown(wdLine, 1, wdExtend)
  Call Wd.Selection.MoveLeft(wdCharacter, 2, wdExtend)
  Selection.Copy

Voila la solution.
aaliyan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 17h47   #8
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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
Sub CopierTextDansWord()
Dim Wrd As Word.Application
Dim i As Long, LeText As String
    Set Wrd = CreateObject("Word.Application")
    Wrd.Documents.Open Filename:="""d:\doc\anisr.doc"""
    DoEvents
 
    With Wrd.Selection
        If .Bookmarks.Exists("DateMaJ") = True Then
             .Goto What:=wdGoToBookmark, Name:="DateMaJ"
        endif
    End With
 
    Wrd.Selection.MoveRight Unit:=wdCharacter, Count:=1 'tu sors du signet
    Wrd.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Wrd.Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
 
    LeText = Wrd.Selection 'Par une variable, ça me paraît plus simple
    'Ton code pour placer LeText dans Access (???) Je n'ai pas le code
    'Si tu copies, je pense que tu devras passer par le presse papier mais là,
    'tu te compliques la vie
    Wrd.Quit 'Fermeture de word
    Set Wrd = Nothing
End Sub
J'avais compris que la ligne à copier était avant le signet... mais comme décidément j'avais tout faux, je crois que je répondais à une autre discussion
Tu testes et tu dis
A+

PS - Dans Excel, cette syntaxe serait correcte
ouskel'n'or 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 13h29.


 
 
 
 
Partenaires

Hébergement Web