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 26/01/2012, 20h18   #1
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
Par défaut Selection d'une plage

Bonjour,

Dans ma macro, je recherche une plage donnée dont j'ai identifié le numéro du premier caractère et le numéro du dernier.

Du coup, comme je veux mettre la plage en surbrillance, je fais:

Code :
ActiveDocument.Range(posdeb - 1, posfin).HighlightColorIndex = 11
Mais ca ne marche pas quand j'ai des retours à la ligne alors que les numéros sont bons....

Du coup, je voulais spécifer en dur en mettant ActiveDocument.Characters(posedeb) et ActiveDocument.Characters(posefin) à la place des positions, mais, du coup, il plante parce que je lui indique un caractère (genre a, b, c) et non une position....

Quelqu'un saurait-il comment faire svp?

MErci
malaka81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 21h19   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
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 345
Points : 29 255
Points : 29 255
Salut,

Je ne sais pas pourquoi ça coince, mais chez moi, avec ou sans retour à la ligne le texte est bien modifié.
Essaie avec des signets ?

Code :
ActiveDocument.Range(ActiveDocument.Bookmarks("S1").Start, ActiveDocument.Bookmarks("S2").End).HighlightColorIndex = wdBrightGreen
__________________
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 26/01/2012, 21h27   #3
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
Mrci de ce conseil! MAis... (il y a toujours un mais!)

En mettant:
Code :
ActiveDocument.Range(ActiveDocument.Bookmarks("posdeb").Start, ActiveDocument.Bookmarks("posfin").End).HighlightColorIndex = 4
j'ai le message d'erreur 5941 : le membre de la collection requis n'existe pas

Et ce avec ou sans les guillemets....
malaka81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 09h38   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
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 345
Points : 29 255
Points : 29 255
Salut,

Question idiote, mais as-tu ajouté les signets dans ton document ?
__________________
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 27/01/2012, 09h55   #5
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
C'est effectivement une tres bonne question!

Euh.... Je me suis autoforme alors, je maitrise pas tout le vocabulaire! Donc, question debile, c'est quoi un signet? La declaration des variables dans ma macro?

Si c'est le cas, posdeb et posfin sont bien declarees et ont une valeur (la position des caracteres de debut et fin de chaine)...

Dsl d'etre un boulet!!!
malaka81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 12h19   #6
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 345
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 345
Points : 29 255
Points : 29 255
Salut,

Un signet est une position dans le document qui peut être vide ou contenir du texte ou un objet ou encore les deux, ....

On ajoute un signet par l'onglet Insertion => Signet

On obtient une boîte de dialogue qui permet d'ajouter un signet sur la sélection.

Dans mon exemple de code, j'ai ajouté le signet S1 au début de ma plage et S2 à la fin.
__________________
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 30/01/2012, 11h04   #7
Invité de passage
 
Inscription : janvier 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2012
Messages : 4
Points : 0
Points : 0
OK, j'ai résolu mon problème ! J'avance (un peu !) dans ma macro !
Merci

Edit
Juste une simple question! Étant donné que je travaille avec un userform, comment faire en sorte que ce userform se lance automatiquement à l'ouverture du doc?
J'ai teste de créer un module dans le fichier et d'y insérer la sub suivante

Code :
1
2
3
4
Private Sub Document_Open()
Load UserForm1
UserForm1.Show
End Sub
Qu'est-ce que j'aurais raté ?
malaka81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 00h36   #8
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Salut malaka81,

Heureux-Oli a écrit une série de tutoriels sur l'utilisation des formulaires dans Word, sur le VBA et les champs et sur le VBA pour Office (en général).

Ils devraient t'aider.

@+
Sepia 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 20h43.


 
 
 
 
Partenaires

Hébergement Web