SOMME de lettre sur une ligne

  • Initiateur de la discussion Initiateur de la discussion jeanlouisdep
  • 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 !

J

jeanlouisdep

Guest
Bonjour,
Je cherche le code VBA suivant:
dans la Feuil1
Ligne2 ( pas la colonne)
compter le nombre de fois ou est inscrit la lettre X
sachant que certaines cellules peuvent être vide
et
reporter le total dans le Feuil2
Range ("A1").

Merci déja pour la lecture


resolue

MERCI
 
Dernière modification par un modérateur:
Re : SOMME de lettre sur une ligne

bonjour jeanlouisdep

et bienvenue sur XLD

Code:
Sub nombre_X()
For n = 1 To Sheets("Feuil1").Range("IV2").End(xlToLeft).Column
 If Sheets("Feuil1").Cells(2, n) = "X" Then
   tot = tot + 1
 End If
Next n
Sheets("Feuil2").Range("A1") = tot
End Sub
 
Re : SOMME de lettre sur une ligne

Est-ce qu'il n'y a que des "X" ou des cellules vides ?

Le nombre est-il défini ?

en gros : Sur une ligne t'a 50 cellules avec 27 "X" par exemple ?


EDIT : Woaw, grillé
 
Re : SOMME de lettre sur une ligne

Bonjour Jean-Louis, bienvenue sur le forum,

La question n'est pas claire : faut-il compter seulement les cellules qui contiennent X tout seul ? Là c'est facile :

Code:
Sheets("Feuil2").Range("A1") = Application.CountIf(Sheets("Feuil1").Rows(2), "X")

Sinon il faut analyser chaque cellule une par une. Dites-nous.

Edit : salut pierrejean, evilprog, pas rafraichi...

A+
 
Dernière édition:
Re : SOMME de lettre sur une ligne

Salut à tous,

voici ce que l'on obtient avec l'enregistreur de macro

Range("a1").Select (dans la feuille2)
ActiveCell.FormulaR1C1 = "=COUNTIF(Feuil1!R[1],""x"")"



edit: battu au sprint par pierrejean
 
Re : SOMME de lettre sur une ligne

Bonjour à tous,

Une aute solution VBA

Sub Compter()
Dim C As Range, firstAddress As String, Quantité As Integer

'Nombre de lettre x dans une ligne
With ActiveCell.EntireRow.Range("A1:IV1")
Set C = .Find("x", LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
Quantité = Quantité + 1
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
End If
End With
Sheets("Feuil2").Range("A1") = Quantité
End Sub

Cordialement

Bernard
 
Re : SOMME de lettre sur une ligne

bonjour le fil le forum 2 macros qui peuvent etre interessante a adapter

Option Explicit
Sub Nb_CarX2()
MsgBox [SUM(LEN(a1:a10) - LEN(SUBSTITUTE(a1:a10, {"X","x"}, "")))]
End Sub
Sub Nb_CarX1()
MsgBox [SUM(LEN(A1:A10) - LEN(SUBSTITUTE(A1:A10, "x", "")))]
End Sub
 
Re : SOMME de lettre sur une ligne

re, le fil

Option Explicit
Sub Nb_CarX1()
Sheets("Feuil2").Range("A1") = [SUM(LEN(A2:iv2) - LEN(SUBSTITUTE(A2:iv2, "x", "")))]: Beep
End Sub
pour compter les x en minuscules & majuscules
Sub a()
Dim i As integer, C As integer
i = [SUM(LEN(A2:iv2) - LEN(SUBSTITUTE(A2:iv2, "x", "")))]
C = [SUM(LEN(A2:iv2) - LEN(SUBSTITUTE(A2:iv2,"X", "")))]
Sheets("Feuil2").Range("A1") = i + C: Beep
End Sub
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
22
Affichages
2 K
Retour