IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Compléter cellule sans supprimer son format


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 5
    Par défaut Compléter cellule sans supprimer son format
    Bonjour,

    J'ai un soucis avec VBA

    Je souhaiterais compléter une cellule Excel avec du texte saisi via un TextBox sans supprimer sa mise en forme (par exemple : certains mots sont en gras, il existe des retours chariots...)

    Auriez-vous la solution?

    Merci!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    D'après ce que j'ai compris, j'ai fait un UserForm avec une TextBox et un CommandButton.
    Ce qui est tapé dans la TextBox est ajouté à la cellule voulue.

    1) code du UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CommandButton1_Click()
    If TextBox1 <> "" Then
     Call CompleteTexte(Sheets("Feuil1").[a19], TextBox1)   'les 2 paramètres sont à adapter
    End If
    End Sub
    2) code à copier dans un module Standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    Type StructChar
      Name As String
      FontStyle As String
      Size As Long
      Strikethrough As Boolean
      Superscript As Boolean
      Subscript As Boolean
      OutlineFont As Boolean
      Shadow As Boolean
      Underline As Long
      ThemeColor As Variant
      TintAndShade As Long
      ThemeFont As Long
      Color As Long
    End Type
     
    Sub CompleteTexte(Cellule As Range, TexteAdd As String)
    Dim Chars() As StructChar
    Dim i&
    '---
    If IsNumeric(Cellule) Then Exit Sub
    ReDim Chars(1 To Cellule.Characters.Count)
    Application.ScreenUpdating = False
    On Error Resume Next
    '--- Cherche les propiétés de chaque caractère déjà existant ---
    For i& = 1 To UBound(Chars)
      With Cellule.Characters(Start:=i&, Length:=1).Font
        Chars(i&).FontStyle = .FontStyle
        Chars(i&).Name = .Name
        Chars(i&).OutlineFont = .OutlineFont
        Chars(i&).Shadow = .Shadow
        Chars(i&).Size = .Size
        Chars(i&).Strikethrough = .Strikethrough
        Chars(i&).Subscript = .Subscript
        Chars(i&).Superscript = .Superscript
        Chars(i&).ThemeColor = .ThemeColor
        Chars(i&).ThemeFont = .ThemeFont
        Chars(i&).TintAndShade = .TintAndShade
        Chars(i&).Underline = .Underline
        Chars(i&).Color = .Color
      End With
    Next i&
    '--- Ajoute le nouveau texte ---
    Cellule = Cellule & TexteAdd
    '--- Applique les propiétés des caractères existants ---
    For i& = 1 To UBound(Chars)
      With Cellule.Characters(Start:=i&, Length:=1).Font
        .FontStyle = Chars(i&).FontStyle
        .Name = Chars(i&).Name
        .OutlineFont = Chars(i&).OutlineFont
        .Shadow = Chars(i&).Shadow
        .Size = Chars(i&).Size
        .Strikethrough = Chars(i&).Strikethrough
        .Subscript = Chars(i&).Subscript
        .Superscript = Chars(i&).Superscript
        .ThemeColor = Chars(i&).ThemeColor
        .ThemeFont = Chars(i&).ThemeFont
        .TintAndShade = Chars(i&).TintAndShade
        .Underline = Chars(i&).Underline
        .Color = Chars(i&).Color
      End With
    Next i&
    On Error GoTo 0
    Application.ScreenUpdating = True
    End Sub
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Copier un format de cellule sans son contenu
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/06/2015, 22h54
  2. [XL-2000] écrire dans une cellule sans écraser son contenu
    Par mollus dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/06/2011, 14h44
  3. Cacher une vue sans supprimer son contenu
    Par Elmotardo dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 03/07/2009, 09h48
  4. [OpenOffice][Tableur] Supprimer une fonction sans supprimer son résultat
    Par DranDane dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 19/03/2008, 16h57
  5. [VBA-E] Ecrire dans une cellule sans écraser son contenu
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/02/2007, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo