format différent

  • Initiateur de la discussion Manon
  • Date de début
M

Manon

Guest
Bonsoir à tous

J'aurais encore une fois besoin de votre aide.

Comment formater avec macro ?

Sur la feuil3 - j'ai une série de 9 lignes suivie d'une ligne vide.

Je cherche à mettre en gras la 1ere ligne de la série (info1, info10 etc...)
et toute les autres ligne avec un indent.

Exemple:

info 1 EN GRAS
info 2
info 3
info 4
info 5
info 6
info 7
info 8
info 9
ligne vide-----------------------------peu importe car elle est vide
info 10 EN GRAS
info 11
info 12

Merci à tous
Manon
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Manon, bonsoir à toutes et à tous :)

Euh... Je comprends pas trop là :ermm:

Je suppose déjà que 'info 1' correspond à un texte quelconque, de même que 'info 10' et que l'on ne peut se baser sur ces données pour formater les cellules, right ?

Sinon, peux-tu nous indiquer à partir de quelle ligne commence ton tableau et quelles sont les colonnes à mettre en gras ? :huh:

EDITION : Et 'pour les autres lignes un indent', kezako ???

A+ ;)

Message édité par: Charly2, à: 13/03/2006 00:56
 
M

Manon

Guest
Bonsoir à tous

Bonsoir Charly2

Tu as bien compris.

J'ai 2 colonnes dans ma feuille.

La colonne A et B contiennent des infos. Elles sont toutes différentes.

Ce que je souhaite obtenir:

Nomclient1(en gras) Nomclient20(en gras)
---infoclient1 ---infoclient20
---autreinfo2 ---autreinfo20

(au total 9 lignes pour chaque client) puis une ligne vide pour les séparer.

Si tu préfères, je peux te poster une feuille.

Merci
Manon
 

Gérard DEZAMIS

XLDnaute Accro
Bonjour Manon

Salut Charly

En attendant que Charly se soit fait éjecter de sa couette, qu'il retrouve ses esprits et son café préféré pour venir (voler, se précipiter, se ruer) à ton secours (Charly a toujours été très prévenant avec les drôles de dames...) je te propose une petite solution mixte VBA-MFC (un peu bancale .... mais je ne sais pas faire mieux)

En attendant le chef qui est peut-être dans la salle de bain avec son dico et sa brosse à dent pour voir le rapport possible entre l'indentation et la dentition... :lol:
@+GD [file name=Manon_20060313074403.zip size=38270]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Manon_20060313074403.zip[/file]
 

Pièces jointes

  • Manon_20060313074403.zip
    37.4 KB · Affichages: 11

pierrejean

XLDnaute Barbatruc
bonjour Manon
salut Charly2

vois si cela te conviens

[file name=manon1.zip size=10033]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/manon1.zip[/file]

quasi collision
bonjour G Dezamis

Message édité par: pierrejean, à: 13/03/2006 07:47
 

Pièces jointes

  • manon1.zip
    9.8 KB · Affichages: 6

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Manon, Charly, Gérard, Pieere-Jean, le Forum

Une autre appriche, telle que je l'ai interprétée, avec les dents et sans les mains !

Option Explicit

Sub TheBolderatorAndIndentator()
Dim Plage As Range, Cell As Range
Dim L As Integer

Set Plage = Range(Range('A1'), Range('A65536').End(xlUp))

For Each Cell In Plage

   
If Cell.Row = 1 Or Cell.Row Mod 11 = 0 Then
        Range(Cell, Cell.Offset(0, 1)).Font.Bold =
True
   
Else
       
        Range(Cell, Cell.Offset(0, 1)).InsertIndent 1
   
End If
   
Next

End Sub

Bonne Journée
[ol]@+Thierry[/ol]
 

Gérard DEZAMIS

XLDnaute Accro
Bonjour à Tous
Salut Thierry

Comme dans un livre ! Bien joué. Charly va en avaler son dentifrice !
Mais... car il y a un mais ...
Il va falloir que tu y mettes les mains car Manon dixit :
'(au total 9 lignes pour chaque client) puis une ligne vide pour les séparer.'

Alors ? Koik t'en a fé d'la ligne ?
N'abusons pas des lignes mais quand même ...

Bien cordialement
@+GD
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour Manon, Gérard, pierrejean et Thierry,
Bonjour à toutes et à tous

Bon, ben... je vois que Manon est tirée d'affaires et a l'embarras du choix. Quand j'ai vu toutes ces propositions, j'en ai bouffé mon dentifrice et cassé ma brosse à dent. :)

En plus, je constate que vous donnez tous à Manon des sources, euh... des codes source ! :p

Gérard, t'es presque à la Mod, si je dis 'presque', c'est parce qu'en voyant ta formule de MFC, je me suis dis qu'on pouvait l'être un peu plus en écrivant :

=MOD(LIGNE()-1,10)=0

Allez, à bientôt :silly:
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour Gérard et Charly et Manon et Pierre Jean !

Gérard, je pense que si on compte ainsi avec cette ligne de Code à la Mod !!! :
If Cell.Row = 1 Or Cell.Row Mod 11 = 0 Then


LINE 1 = Nom Client (Bold)(Ligne 1)
LINE 2 = Info (Indent) (Ligne 2)
LINE 3 = Info (Indent)(Ligne 3)
LINE 4 = Info (Indent)(Ligne 4)
LINE 5 = Info (Indent)(Ligne 5)
LINE 6 = Info (Indent)(Ligne 6)
LINE 7 = Info (Indent)(Ligne 7)
LINE 8 = Info (Indent)(Ligne 8)
LINE 9 = Info (Indent)(Ligne 9)
LINE 10 = Ligne VIDE

Soit le Nom Client Suivant est en Ligne 11
LINE 11 = Nom Client (Bold)(Ligne 1)
etc...

Mais peut-être moi y a pas bon !
Bonne Journée
[ol]@+Thierry[/ol]
 

pierrejean

XLDnaute Barbatruc
bonjour tous et notamment nos grands maitres

alerté par Gerard je m'offre un luxe inouî :
reprendre une macro de Thierry

en effet a partir de la 3eme serie de 10 le mod11
ne donne plus le resultat escompté

J'ais egalement ajouté une variable permettant à Manon de modifier le 'A1' de debut de sa plage

de meme pour eviter de faire des indentations successives en cas de reiteration de la macro j'ais indent level=1 plutot qu'inseet indent

Sub TheBolderatorAndIndentator()
Dim Plage As Range, Cell As Range
Dim L As Integer
Dim M As Integer

Set Plage = Range(Range('A3'), Range('A65536').End(xlUp))
M = Plage.Row
For Each Cell In Plage
' ligne modifiée suite post de Charly
If (Cell.Row - M) Mod 10 = 0 Then
Range(Cell, Cell.Offset(0, 1)).Font.Bold = True
Else
Range(Cell, Cell.Offset(0, 1)).IndentLevel = 1
End If
Next

End Sub

Message édité par: pierrejean, à: 13/03/2006 10:14

Message édité par: pierrejean, à: 13/03/2006 11:07
 

Charly2

Nous a quittés en 2006
Repose en paix
re bonjour Manon, Gérard, pierrejean et Thierry,

pierrejean, tu peux même économiser une condition dans ton If, car si tu as Cell.Row = M, cela signifie que Cell.Row - M = 0, or 0 Mod 10 = 0.

D'ailleurs, c'est toujours le cas et quelle que soit la ligne de début, si tu dois effectuer une action toutes les n lignes (ou colonnes), tu peux écrire :

If (LigneActuelle - LigneDébut) Mod n = 0 Then
  ' Ton code
End If

Voili voilà :)

A+
 
M

Manon

Guest
Bonjour à tous

Un gros merci à Charly, Gérard, Pierre Jean et Thierry .

J' ai l'impression d'avoir déclanché quelque chose ... !
Tant de gens pour une drôle de dame.


J' ai opté pour le code de Pierre Jean en rajoutant mon autre colonne.

Je vous remercie tous, vous faites du bon boulot.

Manon
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir à tous


Je vous prie de m'excuser, mais j'ai passé une journée entre medeçins et autres secretaires et je n'ai probablement pas la tête à tout ça, mais je ne suis pas cette histoire de mettre un mélange avec une ce 'M' (M = Plage.Row) pas du tout besoin de ceci dans mon idée de base...

Mais bon ! l'évènement du jour restera un retour de Vériland sur ce Forum !!!!

Big Bisou
[ol]@+Thierry[/ol]
 

pierrejean

XLDnaute Barbatruc
bonjour Thierry
Heureux de te savoir à nouveau ici

avec ta macro d'origine le mod s'interesse au numero de ligne absolu (si j'ose dire) avec row(1) necessairement en A1
Si la plage concernée commence en A3 par exemple la 10eme ligne de Manon aura le numero 13 (et c'est bien la 14eme qu'il faudra mettre en gras)

Pierre
 

Discussions similaires

Réponses
17
Affichages
938

Statistiques des forums

Discussions
312 609
Messages
2 090 202
Membres
104 451
dernier inscrit
scp9990