Supprimer espace et conserver gras

Résolu/Fermé
goodsayan - 12 nov. 2007 à 11:47
 Carine - 24 avril 2008 à 11:39
Bonjour,
J'ai un petit soucis avec des nombres précédés d'un espace. J'utilise donc la fonction REMPLACER(Cell,1,1,"") qui fonctionne bien mais malheureusement cela ne me conserve pas les caractères en gras.
J'ai essayé également en faisant "convertir" qui donne le même résultat que la fonction REMPLACER mais qui aussi ne me conserve pas les nombres en gras...
Comment faire pour supprimer cet espace et surtout conserver le gras initial?
Merci
A voir également:

20 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
13 nov. 2007 à 10:13
Bonjour,

La macro présente dans le fichier ci-joint remet tes données correctement.
http://www.cijoint.fr/cij112130563231611.xls
Sélectionner la zone à traiter (dans n'importe quel classeur ouvert) et lancer la macro nbrGras().
Si ton exemple était représentatif de tes données ça doit être ok, il ne te reste plus qu'à choisir le format d'affichage.

eric
2
Raymond PENTIER Messages postés 58760 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 décembre 2024 17 253
12 nov. 2007 à 11:55
as-tu essayé la mise en forme conditionnelle ? ç a devrait marcher.
0
P4board Messages postés 33 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 9 août 2022 26
12 nov. 2007 à 12:01
Un nombre précédé d'un espace sous Excel n'est plus un nombre, mais du texte même si on peut y effectuer une opération, c'est à éviter.
A ma connaissance impossible de copier une mise en forme dans une autre cellule à moins de faire du copier->collage special -> Formats
ou plus idiot : mise en forme conditionnelle : si la valeur de la cellule est différente de "" alors mettre en gras...

Une solution directe à ton problème est de faire Edition -> Remplacer -> (espace) par (rien) sur toutes les cellues sélectionnés. Regarde si tu n'a pas le caractère ' en début de ligne qui signifie que c'est du texte, mais qui n'est pas afficher dans la cellule.
0
Le probleme c'est que seulement quelques chiffres sont en gras et pas tous... donc la solution "mise en forme conditionnelle" n'est pas bonne.
J'ai deja testé l'autre solution Edition -> Remplacer -> (espace) par (rien) mais excel ne trouve pas de correspondance...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
12 nov. 2007 à 12:55
Bonjour
Si la configuration de votre tableau le permet, vous pouvez peut être simplement faire un copier collé format, soit de la colonne d'entrée vers la colonne résultat, soit de l'ensemble de l'entreé sur l'enesmeble ds résultats si ls tableaux ont la même configuration:
Le meilleu moyen à mon avis:
recréer une feuille avec votre formule REMPLACER en correspondance directe avec les cellules de la feuille d'entrée
faite un copier /coller /format sur l'ensemble de la feuille, vous retrouverez la configuration intiale
Eventuellement avec une simple macro si vos tableaux doivent évoluer.
BCRDLMNT
--

Science sans conscience n'est que ruine de l'Ame
0
Raymond PENTIER Messages postés 58760 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 décembre 2024 17 253
12 nov. 2007 à 15:04
Ton explication n'est pas suffisamment précise pour que nous puissions t'aider : Tu vois bien qu'à chaque solution qu'on te propose tu ajoutes une caractéristique nouvelle ! Qu'est-ce qui est en gras ? certaines cellules ? seulement quelques chiffres sont en gras et pas tous.
Et pourquoi dois-tu supprimer l'espace des nombres précédés d'un espace ? Pour concaténer plusieurs données ?
Le mieux serait que tu mettes en ligne ton fichier en utilisant http://cjoint.com/
0
P4board Messages postés 33 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 9 août 2022 26
12 nov. 2007 à 15:34
goodsayan,

Edition remplacer espace par rien doit forcément fonctionner... sinon il n'y a pas d'espace et ta fonction =Remplacer ne marcgerais pas...

Il y a peut-être un autre problème...

Peut-tu nous copier coller ce qu'il y a dans une cellule avec blanc (copie la barre de formule et non la cellule) ? Ca nous aidera.

En tout cas il n'est pas possible de faire 2 manips en même temps : supprimer les blancs et copier le format.
0
P4board Messages postés 33 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 9 août 2022 26
12 nov. 2007 à 16:13
Si tu aime le VB voici un truc qui marche :

If Cells(1, 1).Font.Bold Then
Cells(1, 2).Font.Bold = "true"
Else
Cells(1, 2).Font.Bold = "false"
End If

Tu fait une boucle pour toutes tes cellules genre :

For i = 1 To 10
For j = 1 To 10
If Cells(i, j).Font.Bold Then
Cells(i + 10, j).Font.Bold = "true"
Else
Cells(i + 10, j).Font.Bold = "false"
End If
Next j
Next i
0
Merci pour vos idées mais ca marche toujours pas...
J'ai pas essayé le vba car j'y connais trop rien.
Je joins un bout de fichier.
https://www.cjoint.com/?lmqN2271Qw
0
P4board Messages postés 33 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 9 août 2022 26
12 nov. 2007 à 18:04
Simple :
Ton espace n'est pas un espace, mais un espace insécable.

Sélectionne une cellule qui contient un espace, copie le et fait Edition Remplacer : colle le caractère en mémoire et fait remplacer tout.

Sinon autre point, les chiffres sont avec des points et ne sont donc pas considérés comme des nombres car mon système régional est à virgule. Je ne sais si c'est ton cas, mais en remplaçant les . par des , je pouvais alors faire toute sortes d'opérations.
0
Bonjour,
Voici la fonction qui supprime les espaces et en ce qui concerne le gras initial , il faut utiliser une macro

comme le message 7


=SUPPRESPACE(A2)
0
J'ai bien les "." comme séparateur et non une ","

Toutes les manip proposées sous excel me supprime le gras...
J'ai donc essayé la macro du message 7

Sub gras ()
For i = 1 To 10
For j = 1 To 10
If Cells(i, j).Font.Bold Then
Cells(i + 10, j).Font.Bold = "true"
Else
Cells(i + 10, j).Font.Bold = "false"
End If
Next j
Next i
End Sub

Cela me change juste la cellule A13 qui devient non gras mais cela ne m'enleve pas les espaces insécables devant les nombres...
D'ailleurs je ne comprends pas vraiment ce programme.
Que veut dire Cells(i + 10, j).Font.Bold = "true" ? Si la cellule i+10 est en gras alors vrai? Mais ca sert a quoi?
C'est ou dans les instructions que l'on supprime les espaces?
Merci
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 247
13 nov. 2007 à 00:25
Bonsoir,

J'ai regardé ton fichier et ce ne sont pas les cellules qui sont en gras mais les caractères à partir du 2nd.
Ca peut se récupérer par macro mais si tu en as peu c'est plus simple de le faire à la main.

eric
0
goodsayan Messages postés 61 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 8 décembre 2014 12
13 nov. 2007 à 00:40
Justement je travaille sur un fichier de 2000 lignes...
Je l'ai fait jusqu'a présent à la main mais si on peut trouver une solution je serais le plus heureux ;-)
0
Raymond PENTIER Messages postés 58760 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 décembre 2024 17 253
13 nov. 2007 à 03:58
Cet "espace" qui te dérange est l'emplacement du signe "+". Il n'y a donc aucune raison, a priori, de vouloir le supprimer. S'il en existe une, peux-tu nous l'exposer ?
0
P4board Messages postés 33 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 9 août 2022 26
13 nov. 2007 à 10:49
Heu un edition remplacer tout a parfaitement marché pour moi, et cela reste vraiment plus simple que la macro surtout si tu n'as pas l'habitude. Il suffit juste de mettre le bon caractère pour la recherche ; comme ce n'est pas un espace mais un espace insécable, il faut copier le caractère et le coller dans ta recherche. Tu auras l'impression d'avoir un espace (blanc), mais en fait cela correspond à l'espace que word met avant les doubles ponctuation : ; ? ... Pour t'en convaincre, colle ce caractère dans word, et tu verras apparaitre un petit rond.
Donc ne t'embête pas avec les macros et les fonction, un edition remplacer tout te fait le boulot en 10 secondes maxi pour tes 2000 lignes sans te préocupper du gras et pas gras.
0
Bravo, je n'aurai jamais imaginé copier l'espace, en effet ça simplifie beaucoup les choses. Merci encore.
0
P4board Messages postés 33 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 9 août 2022 26
13 nov. 2007 à 11:04
Le raccourcis clavier pour ce caractère "espace" : ALT+0160

Donc pas de fonction, pas de macros, tu fais edition -> remplacer
Dans "rechercher" tu enfonces la touche Alt puis sans la relacher tu tapes 0160 sur ton pavé numérique (un espace aparait)
Dans "remplacer par" tu ne mets rien
Puis fait "remplacer tout"

Et voilou.
0
P4board Messages postés 33 Date d'inscription dimanche 29 octobre 2006 Statut Membre Dernière intervention 9 août 2022 26
13 nov. 2007 à 11:17
Autant pour moi, le carcactère espace insécable n'est pas en gras, donc le remplacement fait perdre tout formatage...
Seul la macro N°15 pourra te sauver.
0
Bonjour,
Merci beaucoup pour la macro n°15 ca a l'air de fonctionner!
0
goodsayan Messages postés 61 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 8 décembre 2014 12
13 nov. 2007 à 16:34
Sub NbrGras()
For Each Cel In Selection
If Cel.Characters(Start:=2, Length:=1).Font.FontStyle = "Gras" Then
Cel.Font.Bold = True
End If
If IsEmpty(Cel.Value) Or IsError(Cel.Value) Then
' rien faire
ElseIf Asc(Cel.Value) = 160 Then
Cel.Value = Mid(Cel.Value, 2) * 1
ElseIf IsNumeric(Cel.Value) Then
Cel.Value = Cel.Value * 1
End If
Next Cel
End Sub
0