Fonction Len(ActiveCell) à généraliser pour 1 COLONNE

Bonjour,

J'aurai besoin d'un petit peu d'aide pour généraliser mon code VBA à une colonne entière.

Je voudrai remplacer l'ensemble des caractères non numérique + "," par un ensemble vide.

Voici le code que j'ai pu établir:

Sub SupTVA()

For i = 1 To Len(ActivCell)

If "1234567890," Like "*" & Mid(ActiveCell, i, 1) & "*" Then

Valeur = Valeur & Mid(ActiveCell, i, 1)

End If

Next

ActiveCell = Valeur

End Sub

Mon problème :

Le code fonction bien pour une cellule active Len(ActiveCell).

Je voudrais ainsi, réaliser cette opération pour l'ensemble d'une colonne (La colonne T).

Merci pour le petit coup de pousse,

Bonne journée

Bonjour,

A tester (en partant du principe que l'on fait le test sur toute la colonne T même la 1ère cellule, sinon faire partir j à la cellule souhaitée) :

Sub SupTVA()

derligne = cells(rows.count, 20).end(xlup).row
for j = 1 to derligne
   For i = 1 To Len(range("T" & j))
      If "1234567890," Like "*" & Mid(range("T" & j), i, 1) & "*" Then
         Valeur = Valeur & Mid(range("T" & j), i, 1)
      End If
   Next i
   range("T" & j) = Valeur
Next j

End Sub

Cordialement.

Bonjour ZIRAC,

Merci de ta réponse rapide,

La fonction a bien été appliquée à l'ensemble de la colonne T.

Cependant, aucun caractère n'a été conservé, l'ensemble des cellules sont désormais blanches...

Je regarde ce qu'il est possible de faire à partir du code fourni

Merci

Oui j'étais en train d'éditer mon message, et j'ai été interrompu, je n'ai pas pu terminer avant, désolé.

Il s'agit des deux ActiveCell restant qu'il faut également remplacer par Range("T" & j).

Pour moi ils avaient été déjà tous remplacés dans ta précédente proposition.

je ne vois pas trop ou tu veux en venir,

Merci encore

Non au départ j'avais oublié de faire le remplacement dans cette partie la, j'avais laissé les ActiveCell :

If "1234567890," Like "*" & Mid(range("T" & j), i, 1) & "*" Then
         Valeur = Valeur & Mid(range("T" & j), i, 1)
      End If

Ils y sont maintenant dans ma première intervention car le message a été édité.

Dans tous les cas, en ayant bien fait tout les remplacements, tu arrive au résultat souhaité ou cela te donne toujours une colonne vide ?

Alors,

Cette fois ci, les caractères numériques apparaissent mais ils se cumulent à chaque nouvelles cellules.

Je voudrai bien entendu, que chaque cellule reste indépendante.

Merci,

capture

Il faut remettre ta variable valeur à vide entre chaque ligne.

Donc entre les deux "for" un simple

Valeur = ""

devrait suffire je pense.

Merci Zirack pour la solution proposée,

Néanmoins, cette dernière supprime tous les champs de toutes les cellules mais ceux qui répondaient à la condition définie.

En te remerciant d'avance.

Bonjour,

Pourrais-tu joindre un bout de classeur exemple avec une dizaine de lignes avec tes données de départ et à côté le résultat souhaité, cela sera plus simple, je pourrais regarder en mode pas à pas où est le problème.

Rechercher des sujets similaires à "fonction len activecell generaliser colonne"