modification macro

lostheroe

XLDnaute Occasionnel
Bonjour,

Je cherche à modifier la macro ci-dessous afin qu'elle prenne également en compte les cellules contenant du texte avant ou après les guillemet.
Actuellement la macro ne supprime les guillemets et le texte entre les guillemet que dans les cellule ne contenant pas de texte avant ou après ses guillemets.


Sub Guillemet()

'Suppression de tout les textes contenu entre crochet
For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
c = c.Replace("[*]", "")
Next c


End Sub
 

job75

XLDnaute Barbatruc
Re : modification macro

Bonsoir lostheroe,

Vraiment très curieux votre code !!! Utilisez :

Code:
Sub Guillemet()
'Suppression de tout les textes contenu entre crochet
Cells.SpecialCells(xlCellTypeConstants).Replace "[*]", "", xlPart
End Sub
Si la macro est bien dans un module standard ActiveSheet est inutile.

A+
 

job75

XLDnaute Barbatruc
Re : modification macro

Re,

Pour tâcher de comprendre ce que votre code avait de bizarre, déclarez (comme c'est normal) la variable c :

Code:
Sub Guillemet()
Dim c As Range
'Suppression de tout les textes contenu entre crochet
For Each c In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants)
c = c.Replace("[*]", "")
Next c
End Sub
Surtout renseignez-vous dans l'aide VBA ou sur le web sur la méthode Replace.

Edit : quand vous ne déclarez pas la variable c elle est de type Variant.

Dans le code c = c.Replace("[*]", "") :

- l'expression à droite du signe = modifie (ou non) l'objet (la cellule) c

- cette expression renvoie la valeur True (VRAI) et le signe = convertit l'objet c en variable booléenne, ce qui fait que la valeur de la cellule ne change pas.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : modification macro

Bonjour lostheroe, le forum,

Je précise quand même que Replace en VBA c'est la commande REMPLACER d'Excel (touches Ctrl+H).

S'il n'y a pas de formules dans la feuille active, ou si les formules ne contiennent pas de crochets, écrivez :

Code:
Sub Guillemet()
'Suppression de tout les textes contenu entre crochet
Cells.Replace "[*]", "", xlPart
End Sub
Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin