bonsoir
j'ai un tableau de 40 colonnes sur 65 lignes.
je souhaiterais que soit comptabilise le nombre de X dans une cellules en horizontales. et que cela fasse la meme chose sur les 65 lignes inferieures.
je ne sais pas comment faire en vba.
cris
Version imprimable
bonsoir
j'ai un tableau de 40 colonnes sur 65 lignes.
je souhaiterais que soit comptabilise le nombre de X dans une cellules en horizontales. et que cela fasse la meme chose sur les 65 lignes inferieures.
je ne sais pas comment faire en vba.
cris
bonjour,
tu peux t'inspirer de ceci
cellules contenant seulement "X"
cellules dont on trouve X à l'intérieurCode:
1
2
3
4 for i=0 to 64 NombreDeX_PourLaLigne=application.worksheetfunction.countif(range("A1:A40").offset(i,0),"X") next i
Code:
1
2
3
4
5
6 for i=1 to 65 NombreDeX_PourLaLigne=0 for j= 1 to 40 if instr(cells(i,j),"X") then NombreDeX_PourLaLigne=NombreDeX_PourLaLigne+1 next j next i
bonjour
j'ai essayer le code, mais je n'est pas de resultat.
mon tableau commence de la colonne C10 a AK10 et de la ligne C10 a C74 ce qui fait que le tableau va de C10 a AK74, et je souhaiterais que le comptage des X se fait en bout de chaque ligne en AK10, AK11 etc..
je seche un peu.
cris
le code était juste un exemple à adapter
louke :
si tu ne compte que les cellule ne contenant que "X"
si tu comptes les cellules contenant entre autres "X"Code:
1
2
3
4
5 Dim R, C For R = 0 To 64 Range("AL10").Offset(R, 0) = Application.WorksheetFunction.CountIf(Range("C10:AK10").Offset(R, 0), "X") Next I
Code:
1
2
3
4
5
6
7 Dim R, C For R = 3 To 67 For C = 3 To Columns("AK").Column If InStr(Cells(R, C), "X") Then Range("AL10") = Range("AL10") + 1 Next J Next I
Bonjour
Une autre propositionCode:
1
2
3
4
5
6
7
8 Sub TEST() Application.ScreenUpdating = False With Sheets("Feuil1").Range("AL10:AL74") .Formula = "=Countif(C10:AK10,""X"")" .Value = .Value End With End Sub
j'ai adapter ton code Mercatog, et j'ai le resultat suivant, il fait un ci¡umul des lignes, je joint une capture d'ecran
crisCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub changement_gaz() ' Application.ScreenUpdating = False With Selection.Interior .Color = 65535 ActiveCell.FormulaR1C1 = "X" With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With With Sheets("Calendrier").Range("AM10:AM74") .Formula = "=Countif(C10:AK74,""X"")" .Value = .Value End With End With Application.ScreenUpdating = True End Sub
je ne comprends quand même pas pourquoi tu ne mets pas la formule directement sur la feuille au bout de chaque ligne.
c'est quand même plus simple et plus rapide non??
c'est ce que je fait, avec ce code, sinon je ne vois pas
cris
Une remarque, la première partie de ton code avec Selection et Activecell est censée faire quoi au juste?
Comme l'a dit mayekeul, une fonction de comptage d'excel fera l'affaire (en plus de la mise à jour instantanée des résultats)
Sinon, essaies de récupérer seulement la formule (par vba par exemple)Code:
1
2
3
4 Sub test() Sheets("Feuil1").Range("AM10:AM74").Formula = "=Countif(C10:AK10,""X"")" End Sub
merci mercatog, ca fonctionne parfaitement.
cris
j'ai un post que je n'arrive pas a resoudre, sur des commentaires, si tu une idee, je t'en remercie
merci encore
cris