Excel Downloads
Forum

Précédent   Excel Downloads Forums > Archives > Forum Excel Downloads - Archives


 
 
LinkBack Outils de la discussion
Vieux 16/12/2004, 09h54   #1 (permalink)
imanuelga
Guest
 
Messages: n/a
Par défaut function modifiant le format

Bonjour à tous et toutes,

j'aimerais créé une function permettant de mettre en gras certains caractères d'une autre cellule. Est-ce possible ?

j'ai essay quelque chose du style :


Function gras(cellule, début, longueur)

gras = cellule.Characters(début, longueur).Font.FontStyle = "Gras"

End Function


Mais excel ne semble pas comprendre ce que je veux dire.....

Merci à tous pour ce super site !

Imanuelga
 
ANNONCES
Vieux 16/12/2004, 10h09   #2 (permalink)
Pascal76
Guest
 
Messages: n/a
Par défaut Re: function modifiant le format

Bonjour

ça faisait longtemps qu'on s'était croisé

bon voici une macro qui devrait faire le taf sur la cellule active

Sub toto()

Dim cellule As String, debut As Integer, longueur As Integer

cellule = ActiveCell.Address
debut = InputBox(" debut")
longueur = InputBox("longueur")

Range(cellule).Characters(Start:=debut, Length:=longueur).Font.FontStyle = "Gras"

End Sub

Bon courage

Pascal
 
Vieux 16/12/2004, 10h35   #3 (permalink)
imanuelga
Guest
 
Messages: n/a
Par défaut Re: function modifiant le format

Bonjour Pascal76,

oui oui je me souviens bien de t'avoir croisé !
Pour tout dire, j'espérais bien te retrouver à nouveaux car comme je ne viens pas souvent ici (pas assez à mon goût mais...) cela fait plaisir de retrouver une connaissance !

Merci pour ta réactivité, c'est vraiment impressionnant et super sympa !

Bien, tu vas trouvé que je ne suis jamais totalement satisfait, mais j'aimerais plutôt passer par une fonction que par une macro car à l'intérieur de ma macro principale, je voudrais éviter de passer par une boucle pour remplir une colonne (un champ, en terme d'access ), ce fameux champ où je mets en forme du texte.

Bien qu'une function personalisée soit plus lente qu'une fonction excel d'origine, j'imagine que cela sera quand même plus rapide qu'une boucle...

Je remplirais donc mon champ au final comme ceci :

With range("x2:x"&nl)
.formular1c1="=gras(rc9;début;longueur)"
.value=.value
end with

Bien amicalement,
Manuel
 
Vieux 17/12/2004, 13h36   #4 (permalink)
Pascal76
Guest
 
Messages: n/a
Par défaut Re: function modifiant le format

Re

excuse de ne pas avoir répondu plus tôt

Ce que tu essaye de faire je ne vois pas comment tu puisses le fairavec une fonction comme tu l'appelles car c'est de la mise en forme

donc une boucle du style fera très bien l'affaire

for each cell in range("x2:x"&nl)
cell.Characters(Start:=debut, Length:=longueur).Font.FontStyle = "Gras"
next

Pascal
 
Vieux 17/12/2004, 14h52   #5 (permalink)
imanuelga
Guest
 
Messages: n/a
Par défaut Re: function modifiant le format

Merci Pascal,

effectivement, je pense que ce que j'avais demandé n'était pas possible pour la raison que tu donnes.

J'ai donc mis une boucle pour le format et ça va trés vite finalement.


For i = 2 To nl

L = Len(Cells(i, 14))

If L <> 0 Then

S = Len(Cells(i, 15)) - L
Cells(i, 15) = Left(Cells(i, 15), S) & Chr(10) & Right(Cells(i, 15),L)
Cells(i, 15).Characters(Start:=S + 1, Length:=L+1).Font.
FontStyle = "Gras"

End If

Next i

J'ai testé avec for each et pour une fois cela a marché ( j'ai tjrs eu des pblm avec for each ... :-( )

For Each cell In Range(Cells(2, nc + 1), Cells(nl, nc + 1))

L = Len(cell.Offset(0, -1))

If L <> 0 Then
S = Len(cell) - L
cell.Value = Left(cell, S) & Chr(10) & Right(cell, L)
cell.Characters(Start:=S + 1, Length:=L + 1).Font.FontStyle
= "Gras"
End If

Next

la boucle est lègèrement plus lente.

A bientôt, j'ai d'autres questions à poser ;-)
 
ANNONCES
 

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 13h52.


(C) 2006 Excel Downloads