Compter des cellules VBA
Fermé
Utilisateur anonyme
-
1 avril 2010 à 12:45
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 avril 2010 à 14:43
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 2 avril 2010 à 14:43
A voir également:
- Compter des cellules VBA
- Excel compter cellule couleur sans vba - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller des cellules excel - Guide
- Concatener deux cellules excel - Guide
- Figer des cellules excel - Guide
7 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
1 avril 2010 à 12:51
1 avril 2010 à 12:51
Bonjour,
;o)
Dim plage As Range Dim cel Dim cpt As Integer Set plage = Worksheets(1).Range("I14:L14") For Each cel In plage If cel.Value = "R" Then cpt = cpt + 1 Next cel MsgBox "Nb : " & cpt Set plage = Nothing
;o)
Utilisateur anonyme
1 avril 2010 à 13:32
1 avril 2010 à 13:32
Super merci
A tout hasard, sur une plage de 7 colonnes, c'est pas possible de savoir si 4 "R" se trouve à la suite ?
A tout hasard, sur une plage de 7 colonnes, c'est pas possible de savoir si 4 "R" se trouve à la suite ?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
1 avril 2010 à 18:07
1 avril 2010 à 18:07
Oui ça doit être possible, il suffit de faire la vérification dans la boucle :
;o)
Dim plage As Range Dim cel Dim cpt As Integer Dim NbR As Integer Dim Vrai As Boolean Set plage = Worksheets(1).Range("I14:P14") For Each cel In plage If cel.Value = "R" Then cpt = cpt + 1 NbR = NbR + 1 If NbR = 4 Then Vrai = True End If NbR = 0 Next cel If Vrai = False Then MsgBox "Nb : " & cpt Else MsgBox "Nb : " & cpt & ", 4 R à la suite" End If Set plage = Nothing
;o)
Utilisateur anonyme
2 avril 2010 à 10:35
2 avril 2010 à 10:35
Ah non, ca va pas, c'est pas 4 de suite, mais 4 à la suite (aligné :p)
Tu vois ce que je veux dire
Merci
Tu vois ce que je veux dire
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
Modifié par Polux31 le 2/04/2010 à 11:25
Modifié par Polux31 le 2/04/2010 à 11:25
Bonjour,
Effectivement je n'avais pas testé et ça ne fonctionne pas ^^
J'ai compris qu'il faut 4 cellules consécutives horizontalement contenant "R":
Est ce bien ça ?
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Effectivement je n'avais pas testé et ça ne fonctionne pas ^^
J'ai compris qu'il faut 4 cellules consécutives horizontalement contenant "R":
! I ! J ! K ! L ! M ! N ! O ! P ! R R R R R R
Est ce bien ça ?
Option Explicit Private Vrai As Boolean Private NbR As Integer Sub test() Dim plage As Range Dim cel Dim cpt As Integer Set plage = Worksheets(1).Range("I14:P14") For Each cel In plage If cel.Value = "R" Then cpt = cpt + 1 If NbR < 4 Then cptR (1) Else If NbR <> 4 Then NbR = 0 End If End If Next cel If Vrai = False Then MsgBox "Nb : " & cpt Else MsgBox "Nb : " & cpt & ", 4 R à la suite" End If Set plage = Nothing End Sub Sub cptR(ByVal str As Integer) NbR = NbR + str If NbR = 4 Then Vrai = True End Sub
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Utilisateur anonyme
2 avril 2010 à 11:45
2 avril 2010 à 11:45
Ah oué, pas mal tout ca dit moi ;)
En fait, je m'amuses a essayer de faire un puissance 4 pour comprendre le codage VBA et donc me former.
J'ai bien compris comment tu faisais. Mais il reste encore des étapes comme la vérification en colonne, qui ne devrait pas etre trop compliqué et tester également dans les 2 diagonales.
Si tu veux m'aider que j'avance sans faire n'importe quoi, je suis tout ouie ;)
Merci beaucoup de ton implication.
En fait, je m'amuses a essayer de faire un puissance 4 pour comprendre le codage VBA et donc me former.
J'ai bien compris comment tu faisais. Mais il reste encore des étapes comme la vérification en colonne, qui ne devrait pas etre trop compliqué et tester également dans les 2 diagonales.
Si tu veux m'aider que j'avance sans faire n'importe quoi, je suis tout ouie ;)
Merci beaucoup de ton implication.
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
2 avril 2010 à 12:53
2 avril 2010 à 12:53
J'en avais fait pour mes enfants ... il y a bien longtemps ^^
Je crois que pour la vérification j'avais utilisé un tableau.
Si je peux t'aider, je le ferais volontiers dans la mesure du possible.
;o)
Je crois que pour la vérification j'avais utilisé un tableau.
Si je peux t'aider, je le ferais volontiers dans la mesure du possible.
;o)
Utilisateur anonyme
2 avril 2010 à 14:30
2 avril 2010 à 14:30
Un tableau, de mémoire, tu te souviens comment tu gérais la chose ?
Merci
Merci
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
2 avril 2010 à 14:43
2 avril 2010 à 14:43
Chaque élément du tableau représente une case de jeu.
Les cases était indexé de 1 à 100, le jeu faisait 10 cases par 10 cases
Quand le joueur cliquait sur la 1ère case d'une colonne (par ex la 5), le programme testait tableau(5), tableau(15), tableau(25) jusqu'à tableau(95) ... et mettait le pion dans le dernier emplacement libre.
Ensuite il y a des contrôles à faire par exemple en diagonal je faisais l'indice du tableau + 11 ou - 11 selon le cas pour vérifier si l'indice i + 11 était identique etc ...
;o)
Les cases était indexé de 1 à 100, le jeu faisait 10 cases par 10 cases
Quand le joueur cliquait sur la 1ère case d'une colonne (par ex la 5), le programme testait tableau(5), tableau(15), tableau(25) jusqu'à tableau(95) ... et mettait le pion dans le dernier emplacement libre.
Ensuite il y a des contrôles à faire par exemple en diagonal je faisais l'indice du tableau + 11 ou - 11 selon le cas pour vérifier si l'indice i + 11 était identique etc ...
;o)