Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 VBA - Bouton pour mettre le texte entre parenthèses

Titi456

XLDnaute Junior
Bonjour,

Je recherche un code pour pouvoir mettre le texte de ma cellule sélectionnée entre parenthèses et inversément.

Pouvez-vous m'aider?

Mes meilleures salutations,

Thierry
 

xUpsilon

XLDnaute Accro
Bonjour,

Avec la cellule A1 :
VB:
If Left(Range("A1"),1)="(" and Right(Range("A1"),1)=")" Then
    Range("A1")=Mid(Range("A1"),2,Len(Range("A1"))-2)
Else
    Range("A1")="(" & Range("A1") & ")"
End if

Quelque chose comme ça ?

Bonne journée,
 

Titi456

XLDnaute Junior
Bonjour xUpsilon,

Merci pour votre proposition; votre code fonctionne parfaitement bien mais uniquement pour la cellule A1; est-il possible de l'adapter pour mettre entre parenthèses uniquement la ou les cellules sélectionnées de la zone A5: D54?

Exemple:
Si la cellule B6 est sélectionnée; le texte de la cellule B6 sera entre parenthèses
Si les cellules A8: D10 sont sélectionnées, Le texte des cellules A8: D10 sera entre parenthèses

Meilleures salutations,

Thierry
 

job75

XLDnaute Barbatruc
Bonjour Titi456, xUpsilon,

Collez cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim P As Range
Application.ScreenUpdating = False
With [A5:D54]
    Set P = Intersect(Target, .Cells)
    For Each Target In .Cells
        If Target Like "(*)" Then Target = Mid(Target, 2, Len(Target) - 2)
    Next Target
End With
If P Is Nothing Then Exit Sub
For Each Target In P
    If Not IsNumeric(Target) Then Target = "(" & Target & ")"
Next Target
End Sub
Les valeurs numériques ne sont pas traitées car les parenthèses les transforment en valeurs négatives.

Nota : les cellules vides sont numériques.

A+
 

Titi456

XLDnaute Junior
Re bonjour,

Voici le code que je cherchais:

VB:
Sub BoutonMettreEntreParenthèses()
Dim cell As Range
    ActiveSheet.Unprotect Password:="."
    For Each cell In Selection
        If Left(cell, 1) = "(" And Right(cell, 1) = ")" Then
            cell.Value = Mid(cell, 2, Len(cell) - 2)
        Else
            cell.Value = "(" & cell & ")"
        End If
    Next
    ActiveSheet.Protect Password:="."
End Sub

Bonne journée et encore merci pour votre aide.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…