Trouver chaîne avec caractères sélectifs

Bonjour à tous,

J’aimerais compter combien de fois le caractère « $ » suivi d’un chiffre se trouve dans un fichier ou une chaîne, mais uniquement si le chiffre qui suit « $ » est 1 ou 2 ou 3.

Toutes les autres occurences avec un chiffre autre que 1,2 3 ne doivent pas être comptabilisées

Merci d’avance et bonne journée

André

Bonjour,
Un fichier d’exemple nous aidera mieux pour avancer.
Cordialement

Rebonjour,
Si c’est dans un tableau, vous pouvez utiliser cette fonction, (fonction spéciale :grin:)

Function NUMCARACTERE(plage As Range, critère As String)
Dim a As Range
Dim n As Double
n = 0
For Each a In plage
If Left(a, 1) = critère And CDbl(Mid(a, 2, 1)) <= 3 Then
n = n + 1
End If
Next
NUMCARACTERE = n
End Function

Voici un fichier test :
Test fonction.xlsm (20,4 Ko)
Cordialement

Will-Fread

Bonjour,
Merci pour votre réponse.

Voici donc un exemple de fichier à traîter.
exemple.xlsx (9,7 Ko)

Cordialement
André

Ah, je vois pour ca il vous faut juste une formule : (pas besoin d’une macro ni de formule personnalisée)

=NB.SI.ENS(A1:A130;"$*";A1:A130;"<>$0") dans une cellule

La formule ne comptera pas $0

Nb: s’il n’y a pas de $4, $5 $6 …

Will-Fread

Bonsoir Will_Fread,

Merci pour ta réponse. le souci c’est que ce n’est pas sur le contenu des cellules mais c’est dans un fichier .txt qui est transfomé du format UNX au format DOS (sans modifier un format existant DOS) dans VBA.

Comme je débute vraiment avec VBA, je fais mon code en cherchant sur Internet.

Voici ce que j’ai fait pour récupérer le contenu du fichier que je vais traîter ensuite:

Dim Src As String, mc As String, FicSource As String, FicDest As String, NbOc As Integer
FicSource = Filepath
FicDest = Filepath
Open FicSource For Input As #1
Src = Input(LOF(1), #1)
Src = Replace(Src, vbCrLf, vbLf)
Src = Replace(Src, vbLf, vbCrLf)
Src = Replace(Src, « % » & vbCrLf, « % »)
Close #1
Open FicDest For Output As #2
Print #2, Src
Close

NbOC= ??? 'résultat du comptage

c’est à la suite de cette transformation que j’aimerais savoir combien de $ sont dans ce fichier.

Par avance merci et bonne soirée
André

1 « J'aime »