Nombre de retrait à la ligne dans un label

Bonjour à tous,

Petite question
Je remplis un Label de la façon suivante

       usf_arbre.Lb_epoux2 = Chr(10) & "     est né le " & .Cells(k, 6) & " à " & .Cells(k, 7) & " " & "son père étant " & .Cells(k + 2, 4) _
       & " " & .Cells(k + 3, 5) & " " & .Cells(k + 3, 16) & " lui même étant " & " " & .Cells(k, 16) _
       & Chr(10) & "     Les témoins à sa naissance sont " & .Cells(k + 6, 4) & " " & .Cells(k + 6, 5) _
       & ", agé de " & Cells(k + 6, 8) & ", demeurant à " & .Cells(k + 6, 17) & _
       " et " & .Cells(k + 7, 4) & " " & .Cells(k + 7, 5) & ", agé de " & .Cells(k + 7, 8) _
       & " demeurant à " & .Cells(k + 7, 17) & Chr(10) _
        etc ......

afin de rendre mon code plus visible et plus compréhensible j'utilise des retraits à la ligne (" _", passage à la ligne) mais je suis limité en nombre de ces retraits à la ligne alors que mon code est assez long, que puis y faire si ce n'est que les éviter et de ce fait me déplacer avec l'ascenceur horzontal pour aller voir ce qui est hors de l'écran, ce qui n'est pas très agréable.

Bonne soirée


Bonsoir,

pourquoi ne pas faire une structure lisible ligne par ligne avec un ajout de la ligne à une variable ?

a = a & " est né le " & .Cells(k, 6)
a = a & " à " & .Cells(k, 7)
a = a & " son père étant " & .Cells(k + 2, 4) & " " & .Cells(k + 3, 5) & " " & .Cells(k + 3, 16)
a = a & " lui même étant " & " " & .Cells(k, 16) & Chr(10)
a = a & " Les témoins à sa naissance sont " & .Cells(k + 6, 4) & " " & .Cells(k + 6, 5)
a = a & ", agé de " & Cells(k + 6, 8)
a = a & ", demeurant à " & .Cells(k + 6, 17)
a = a & " et " & .Cells(k + 7, 4) & " " & .Cells(k + 7, 5)
a = a & ", agé de " & .Cells(k + 7, 8)
a = a & " demeurant à " & .Cells(k + 7, 17)
usf_arbre.Lb_epoux2 = a

Il faudra entre chaque ligne mettre le retour chariot "CHR(10)" au bon endroit afin d'avoir une représentation visuelle voulue. Mais au niveau du code VBA vous pourriez alors avoir une ligne par donnée ce qui facilite la lecture du code et permet de mieux cibler les données à aller chercher.

@ bientôt

LouReeD

Bonjour LouReed,

Excellente idée et de plus ainsi je peus
ajouter des commentaires
et mettre des conditions, exemple si il me manque une donnée, par exemple sa profession, afin d'éviter un texte contenant des "trous"

lui même étant , les témoins ......

en ecrivant, la cellule Cells(k, 16) étant vide

if Cell(k, 16) <> "" Then a = a & " lui même étant " & " " & .Cells(k, 16) & Chr(10)

je rends le texte plus propre

merci LouReed, je te rejoins dans la journée en MP

Bonjour,

merci de votre retour (avec un peu de retard) !

J'ajouterais qu'avec l'instruction iif vous pouvez avoir ce type de code

if Cell(k, 16) <> "" Then a = a & " lui même étant " & " " & .Cells(k, 16) & Chr(10)

par:

a = a & iif(Cell(k, 16) <> "" ,  & " lui même étant " & " " & .Cells(k, 16) & Chr(10) , "")

en effet le iif représente le SI sous une feuille Excel : iif( test , si test est vrai , si test est faux)

@ bientôt

LouReeD

Bonjour LouReed,

Je connais l'instruction iif mais je n'y avais pas pensé
Merci de me rafraichir la mémoire

@bientôt

Jacky

Rechercher des sujets similaires à "nombre retrait ligne label"