Accueil > Forum > > > > Mise en forme cellule Excel
Mise en forme cellule Excel
jeudi 23 novembre 2006 à 17:27:16 |
Mise en forme cellule Excel

Fianchetto
|
Bonjour à tous,
je cherche à pouvoir effectuer une mise en forme assez avancée d'une cellule Excel via le code VBA. Cela inclut principalement des : - sauts à la ligne, - tabulations, - alignements (gauche, droite), - choix du gras, italique, souligné.
Pour le retour chariot, Chr(10) fait bien l'affaire, pour les tabulations je n'ai pas trouvé la commande alors je passe par des espaces. Pour l'alignement et le choix du gras, mon problème pour une fonction comme : MaCellule.Font.FontStyle = "Bold" c'est qu'elle met toute la cellule à gras. Il existe donc la fonction MaCellule.Characters(debut, longueur).Font.FontStyle = "Bold" qui permet de passer seulement les caractères choisis en gras. Mais je ne peux pas savoir les variables debut et longueur à l'avance ! Mais je sais quelle partie du texte je souhaite changer.
Bref, je cherche une astuce du genre html comme <bold>mon texte à mettre en gras</bold>.
Quelqu'un aurait il une idée ? Merci d'avance 
|
|
jeudi 23 novembre 2006 à 17:33:33 |
Re : Mise en forme cellule Excel

Drikce06
|
Salut pour bold essaye de voir avec la fonction InStr() et pour la tabulation VbTab.  Drikce 06
|
|
jeudi 23 novembre 2006 à 17:42:38 |
Re : Mise en forme cellule Excel

Drikce06
|
Private Sub CommandButton1_Click() Dim TaString As String Dim TaStringBold As String Dim debut As Integer Dim longueur As Integer TaString = Range("O2").Value 'ici "salut les gens" TaStringBold = "les" debut = InStr(1, TaString, TaStringBold, vbTextCompare) longueur = Len(TaStringBold) Range("O2").Characters(debut, longueur).Font.FontStyle = "Bold" End Sub
Drikce 06
|
|
jeudi 23 novembre 2006 à 18:49:47 |
Re : Mise en forme cellule Excel

mortalino
|
Salut, je confirme, vbTab pour la Tabulation mais PAS Chr(10) pour le saut de ligne, c'est vbCrLf Chr(10) = nouvelle ligne alors que vbCrLf = Chr(10) + Chr(13) = nouvelle ligne + retour chariot Pour l'alignement, gras, italique, etc... rien ne vaut un enregistrement en direct grâce à l'enregistreur de macro. @++
--Mortalino-- Le mystérieux chevalier, "Provençal, le Gaulois" /DIV>
|
|
vendredi 24 novembre 2006 à 13:43:32 |
Re : Mise en forme cellule Excel

Fianchetto
|
Ok, merci à vous pour les précisions notamment sur les vbCrLf et vbTab. Je n'avais pas pensé à la solution de Drike pour la recherche dans une chaine de caractères avec InStr, donc c'est un bon point. Mais seulement pour les chaines fixes en fait.Le top serait d'avoir des expressions régulières, mais je ne crois pas que VB puisse le faire. A savoir ce que je cherche à faire par exemple, c'est mettre en gras une partie d'un texte de ce genre :
texte normal texte normal texte normal texte normal texte normal texte normal TexteAMettreEnGrasQuiEstToujoursIdentique1 TexteVariableAMettreEnGras TexteAMettreEnGrasQuiEstToujoursIdentique2 texte normal texte normal texte normal texte normal texte normal texte normal Pour prendre un exemple bidon, on pourrait avoir cela : texte normal : Bonjour Monsieur TexteAMettreEnGrasQuiEstToujoursIdentique1 : Aujourd'hui n'oubliez pas notre rdv à TexteVariableAMettreEnGras : Saint Cuq les deux Eglises à 14h30 TexteAMettreEnGrasQuiEstToujoursIdentique2 : chez notre client.
C'est pourquoi je peux difficilement passer par l'enregistreur de macro et par la fonction InStr( sauf si celle-ci accepte des caractères génériques). Je sèche un peu  ...
|
|
vendredi 24 novembre 2006 à 13:50:19 |
Re : Mise en forme cellule Excel

Drikce06
|
Réponse acceptée !
J'ai pas essayé, mais ça ne marche pas quelque chose dans ce genre:
Dim TaString As String Dim TaStringBold As String Dim debut As Integer Dim longueur As Integer TaString = Range("TaCellule").Value debut = InStr(1, TaString, TexteAMettreEnGrasQuiEstToujoursIdentique1, vbTextCompare) longueur = Len(TexteAMettreEnGrasQuiEstToujoursIdentique1) Range("O2").Characters(debut, longueur).Font.FontStyle = "Bold"
TaString = Range("TaCellule").Value debut = InStr(1, TaString, TexteVariableAMettreEnGras , vbTextCompare) longueur = Len(TexteVariableAMettreEnGras ) Range("O2").Characters(debut, longueur).Font.FontStyle = "Bold"
TaString = Range("TaCellule").Value debut = InStr(1, TaString, TexteAMettreEnGrasQuiEstToujoursIdentique2 , vbTextCompare) longueur = Len(TexteAMettreEnGrasQuiEstToujoursIdentique2 ) Range("O2").Characters(debut, longueur).Font.FontStyle = "Bold"
Drikce 06
|
|
vendredi 24 novembre 2006 à 14:04:15 |
Re : Mise en forme cellule Excel

Fianchetto
|
oui tu as peut etre raison  ... en fait debut = InStr(1, TaString, TexteVariableAMettreEnGras , vbTextCompare) devrait ressemble a quelque chose dans le genre : debut = InStr(1, TaString, mavariable1 & " et " & mavariable2 , vbTextCompare) par contre, je dois faire cela sur plusieurs centaines (ptet milliers) de lignes de mon tableau Excel, et chaque ligne ayant une cellule contenant le texte bien compliqué qui précede, ca risque de pas être du gateau, vu toutes les opération de recherche InStr faisant intervenir des variables ! Merci 
|
|
vendredi 24 novembre 2006 à 14:14:18 |
Re : Mise en forme cellule Excel

Drikce06
|
Ce sera mieux sous forme de sub que tu appelles quand tu veux :
Private Sub CommandButton1_Click() Call StringBold(Range("A1"), Range("A1").Value, "bonjour") End Sub Sub StringBold(ByVal RangeCellule As Range, ByVal TaString As String, ByVal TaStringBold As String) Dim debut As Integer Dim longueur As Integer debut = InStr(1, TaString, TaStringBold, vbTextCompare) longueur = Len(TaStringBold) RangeCellule.Characters(debut, longueur).Font.FontStyle = "Bold" End Sub Drikce 06
|
|
vendredi 24 novembre 2006 à 14:17:45 |
Re : Mise en forme cellule Excel

Drikce06
|
Ce qui te donne pour l'exemple du haut: Private Sub CommandButton1_Click() Call StringBold(Range("A1"), Range("A1").Value, " TexteAMettreEnGrasQuiEstToujoursIdentique1") Call StringBold(Range("A2"), Range("A2").Value, " TexteVariableAMettreEnGras ") Call StringBold(Range("A3"), Range("A3").Value, " TexteAMettreEnGrasQuiEstToujoursIdentique2 ") End Sub Sub StringBold(ByVal RangeCellule As Range, ByVal TaString As String, ByVal TaStringBold As String) Dim debut As Integer Dim longueur As Integer debut = InStr(1, TaString, TaStringBold, vbTextCompare) longueur = Len(TaStringBold) RangeCellule.Characters(debut, longueur).Font.FontStyle = "Bold" End Sub
Drikce 06
|
|
vendredi 24 novembre 2006 à 15:45:12 |
Re : Mise en forme cellule Excel

Fianchetto
|
Oui je pensais passer par des procedures Sub histoire de ne pas reécrire toujours la même chose. Merci pour l'aide 
|
|
Cette discussion est classée dans : cherche, excel, cellule, forme, gras
Répondre à ce message
Sujets en rapport avec ce message
Excel mise en gras et copie de cellule (VBA) [ par Shino78 ]
Bonjour, Voila ce que je cherche à faire sur Excel en VBA: On commence par sélectionner une cellule(final) via inputbox, ensuite on sélectionne une c
mise en forme conditionnelle cellule excel [ par andlauer ]
Bonjour, je suis débutant en la matière et je cherche à faire une macro (je pense qu'il faut en passer par là) qui permette de changer la couleur de
VBA Excel : Recherche d'un texte en gras dans une cellule [ par VaRioR ]
Bonjour à tous !Je cherche à isoler un texte en gras dans une cellule excel.Par exemple :Si dans une cellule, j'ai un texte du type :"Bonjour, je m'ap
Mise en forme d'une cellule sous Excel [ par filou260381 ]
Bonjour,je cherche comment mettre en forme une cellule d'une feuille Excel avec VB6. J'arrive à le faire en utilisant les noms des cases, par exemple:
[Excel] Mis en forme sur cellule protégé [ par Sebelec ]
Bonjour à tous !!voila je cherche sur excel à faire ressortir les cellules qui sont protégé afin d'avoir une vue d'ensemble de toute mes cellule qui s
excel programmer bouton pour mise en forme de cellule automatique [ par keben666 ]
Bonjour Je suis plus que débutant en VB... et j'aurais voulu pouvoir creer deux boutons dans une feuille excel pour changer une colonne en euro ou keu
selection d'une cellule d'un tableau dans word [ par rons ]
Bonjour, SOS Besoin d'aides!! Merci de m'aider.MON BUT: depuis Excel copier une cellule dans un tableau Word et faire un collage speci
Mettre en gras certains éléments d'une cellule Excel [ par zujam ]
Bonjour,Je remplis une feuille Excel à travers un programme VB.par exemple, je vais sélectionner et mettre dans une mm cellule Excel, tous les clients
[Déplacé VB6 --> VBA] excel - identification groupe [ par corsair2a ]
Bonjour, Je voudrais savoir comment identifier le nombre de cellule appartenant au même groupe puis exécuter une fonction dessus (valeur moyenne par
INCREMENTATION D'UNE SELECTION DE CELLULE EXCEL [ par winvsmac ]
Bonsoir, Je suis confronté à la problématique suivante : Environnement VB6 + Excel 2007 Sur un formulaire, j'ai une liste box qui comporte une série
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
FAIRE UN EXECUTABLEFAIRE UN EXECUTABLE par ossama261988
Cliquez pour lire la suite par ossama261988
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|