Selectionner la premiere cellule de la ligne suivante dans un tableau word
cs_brau
Messages postés19Date d'inscriptionmardi 14 octobre 2008StatutMembreDernière intervention15 décembre 2014
-
4 nov. 2008 à 17:27
cs_brau
Messages postés19Date d'inscriptionmardi 14 octobre 2008StatutMembreDernière intervention15 décembre 2014
-
4 nov. 2008 à 22:31
Bonjour,
je voudrais parcourir un tableau word, et tester à chaque fois le contenu de la première cellule pour savoir si le contenu à + de 2 caractères ou pas. Si c'est le cas, je sélectionne la ligne complète et applique un style au texte.
Seulement mon code ne fonctionne pas, et n'étant pas développeur, j'avoue que je galère un peu...
Mon code ne marche pas très bien...
voici le code :
Dim derniereLigne As Long, ligneCourante As Long
Dim suppr As Boolean
' positionner le curseur au début du document
Selection.HomeKey Unit:=wdStory
Do
Sleep 20
' descendre d'une ligne
Selection.MoveDown Unit:=wdLine, Count:=1
derniereLigne = ligneCourante
' sélectionner toute la ligne
Selection.Expand wdCell
If (Len(Selection.Text) > 2) Then
Selection.Expand wdRow
With Selection.Font
.Bold = True
.BoldBi = True
End With
With Selection.Font
.NameAscii = "Times New Roman"
End With
With Selection.Cells
With .Shading
.Texture = wdTextureNone
.ForegroundPatternColor = wdColorAutomatic
.BackgroundPatternColor = wdColorGray30
End With
End If
' recupérer le numéro de ligne
ligneCourante = Selection.Information(wdFirstCharacterLineNumber)
' le curseur ne descend plus : fin
Loop Until derniereLigne = ligneCourante
Merci d'avance pour les conseils que vous m'apporterez.
brau
A voir également:
Selectionner la premiere cellule de la ligne suivante dans un tableau word
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 4 nov. 2008 à 19:49
Bonjour brau, content de te retrouver sur vbfrance
J'ai testé ton code, il ne marche pas si mal !
_________________________
Deux soucis -mineurs-, malgré tout :
a) je suis sous word 2003 et l'instruction sleep n'est pas reconnue
b) il manque un End With dans ta proc.
_________________________
J'ai aussi deux remarques :
a) Si ton tableau est tout en haut du document, la première ligne du tableau sera ignorée. En effet, la première chose que fait ta boucle est de descendre d'une ligne. Il faut alors que tu modifies ton programme ou, plus simplement, que tu mettes quelquechose au-dessus du tableau ; une marque de paragraphe, par exemple.
b) Tu dis "je voudrais parcourir un tableau word", mais ta macro, elle, parcourt tout le document. C'est cohérent, à condition qu'il n'y ait rien d'autre que ton tableau dans le document.
_________________________
Ton problème vient peut-être du fait que le contenu d'une cellule de tableau word se termine toujours par deux caractères de contrôle invisibles. Il faut que tu en tiennes compte, et que tu remplaces ton instruction
If (Len(Selection.Text) > 2) Then
par
If (Len(Selection.Text) > 4) Then
_________________________
Voilà. Essaie déjà avec ces informations. Si ça ne fonctionne toujours pas, précise ce qui ne va pas, parce que mon code ne fonctionne pas... Mon code ne marche pas très bien, ça n'aide pas vraiment...
cs_brau
Messages postés19Date d'inscriptionmardi 14 octobre 2008StatutMembreDernière intervention15 décembre 2014 4 nov. 2008 à 20:13
Salut Orohena,
encore merci pour l'aide que tu m'avais donnée ! J'ai un peu évolué en vba depuis, enfin j'ai surtout appris a bidouiller avec ce qu'on m'a donné ;)
Concernant le code, il manque un end with, car j'ai supprimé quelques lignes de commentaire avant de coller le code ici, il a dû être supprimer en même temps ;)
le problème qui persiste, c'est lorsque j'ai une cellule (dans la 3 eme colonne par exemple) qui est remplie au point que ça tienne sur 2 pages. Du coup, lorsque la boucle recommence, la sélection se fait sur la 3 eme colonne...
Et pareil, s'il y a du texte après le tableau, le code plante... ça craint ;)
Un document peut contenir un ou plusieurs tableaux, avec du texte ou pas entre.
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 4 nov. 2008 à 21:55
Ta cas est complexe et spécifique. Je ne sais pas si cela vaut la peine de continuer cette discussion ou s'il ne vaudrait pas mieux traiter le problème en privé.
Pourrais-tu m'envoyer un document type ? S'il y a des choses confidentielles, remplace-les par des gribouillages.
Aussi j'aimerais connaître la provenance de tes documents. Ont-ils été saisis ou importés ? S'ils ont été importés, il sera peut-être plus facile de travailler sur les sources. Le cas échéant, peut-être que tu pourrais m'en envoyer une ?