supprimer les "asterix" inutiles.

  • Initiateur de la discussion Initiateur de la discussion shmider
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

shmider

XLDnaute Occasionnel
Bonjour le forum, bonjour à toutes et tous, 😉

Je souhaite formater (purger) un fichier excel (extrait d'une base de donnée externe), et ça par supprimer les asterix (résultants d'un Bug informatique probablement). L'idée que j'ai est de mettre en place un bouton avec macro pour faciliter le formatage de mon fichier.

est ce que c'est une bonne méthode?

Merci à vous @+
 
Re : supprimer les "asterix" inutiles.

Bonjour,

Pour remplacer les caractères * et ?, il faut les faire précéder de ~

Ca donne :

Remplacer ~*
Par rien du tout

A adapter à ta macro si tu veux passer par la voie VBA

@+
 
Re : supprimer les "asterix" inutiles.

Bonjour job75,

Oui effectivement c'est ce que j'ai fini par adapter 😉

je peux te dire que je ne suis pas tombé du lit ce matin lool

Une petit remarque: le problème c'est que j'utilise des code VBA avec des somme produit...
et ce bouton m'enlève toute mes asterix ... !!!

Merci et bonne journée 😉


Bonjour shmider, Tibo,

Bah en VBA :

Range("A1") = Replace(Range("A1"), "*", "")

A+
 
Dernière édition:
Re : supprimer les "asterix" inutiles.

Re,

Le code "cité précédemment" enlève les * uniquement dans la cellule A1...

Quel code utilisez-vous donc ???

Edit : vu le fichier, bien sûr votre code bug... Qu'est-ce que vous voulez faire exactement ?

A+
 
Dernière édition:
Re : supprimer les "asterix" inutiles.

Re^3 😉

Juste une question par rapport à la fonction "RANGE". En fait, si je souhaite supprimer les asterix contenues dans la cellules B4 à B7 par exemple, il suffit que je met?
Sub formatage()
Range("B5, B7") = Replace(Range("B5, B7"), "*", "")
End Sub

c'est quoi le problème ici en fait?

Merci à vous.
 
Dernière édition:
Re : supprimer les "asterix" inutiles.

Re,
Je suis entrain de tester cette macro:

Sub formatage()
Range("B65536").End(xlUp).Offset(4, 0).Select = Replace(Range("B65536").End(xlUp).Offset(4, 0).Select, "*", "")

'Range("B5, B7") = Replace(Range("B5, B7"), "*", "")
End Sub

et ça Bug !!! ?? cf. La dernière Pièce Jointe

des commentaire?

Merci @+
 
Re : supprimer les "asterix" inutiles.

Re,

On peut utiliser 2 manières pour la plage B5:B7 :

1) soit le code :

Code:
Dim cel As Range
For Each cel In Range("B5:B7")
cel = Replace(cel, "*", "")
Next

2) soit simplement :

Code:
Range("B5:B7").Replace What:="~*", Replacement:="", LookAt:=xlPart

Edit : comprenez bien :

- la 1ère manière fait la même chose que la fonction SUBSTITUE dans une formule

- la 2ème manière fait la même chose que la commande REMPLACER du menu Edition

A+
 
Dernière édition:
Re : supprimer les "asterix" inutiles.

Bonjour Job75,

La fonction SUBSTITUE me va très bien. Car elle est plus simple à expliquer et à manipuler par la suite. Cependant, si au lieu de mettre une plage, dire à excel enlève moi les "asterix" contenues dans cette colonne de la première cellules jusqu'à la dérnière cellule de la dérnière ligne (c'est mon cas car il va y avoir de nouvelle lignes qui vienderont se rajouter une fois ke je remet à jour mon fichier)...

Est ce que le fait de remplacer la dérnière cellule (selectionnée manuellement "B7"), par "$B$4:$B$"&LIGNE() ça peut résoudre le problème?

Note: pour moi le "$B$4:$B$"&LIGNE() veut dire va de la première cellule de la première ligne du tableau jusqu'à la dérnière lune que tu trouvera dans le tableau ...

Merci beaucoup beaucoup à vous.
@+
 
Re : supprimer les "asterix" inutiles.

Re,

La dernière cellule occupée en colonne B est donnée par l'expression :

Range("B65536").End(xlUp)

La plage qui va de B4 jusqu'à cette dernière cellule est donc définie par :

Range(Range("B4"), Range("B65536").End(xlUp))

A+
 
Re : supprimer les "asterix" inutiles.

Par contre la j entends bien le processeur. Excel il plante !!!

Comment accélerer les calcul dans ce cas là ou plutot comment optimiser la macro lorsqu'il y a un calcul lourd?

@+


Re,

La dernière cellule occupée en colonne B est donnée par l'expression :

Range("B65536").End(xlUp)

La plage qui va de B4 jusqu'à cette dernière cellule est donc définie par :

Range(Range("B4"), Range("B65536").End(xlUp))

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour