Bonjour,
j'ai un tableau comportant 80 colonnes, partagés en vingt sections de 4 colonnes. Je veux calculer le nombre de fois où, dans chaque section, les deux premières colonnes sont non-vides : colonne 1 et 2, colonne 5 et 6, colonne 9 et 10, etc.
J'ai voulu utiliser la fonction NB.SI, malheureusement, la plage de celulles que j'étudie n'étant pas connexe, cela ne marche pas. Je peux également l'utiliser 40 fois mais je ne suis pas sûr du résultat et du gain de place....
J'ai donc voulu passer par les macros.
J'ai donc crée une fonction NbOcc() (sans arguments donc) qui calculerait pour chaque ligne (j'en ai un bon millier à étudier...) mon nombre d'occurrence. J'ai commencé par tester ma fonction avec ce code :
Premier constat, impossible de copier cette fonction en tirant sur la case avec la souris... Mais en faisant un millier de CTRL-C CTRL-V, ça marche...
Mais quand j'en supprime un, les autres retournent l'erreur #valeur. A priori, mon activecell est mal venu...
Enfin, j'ai tenté cela :
Mes offset sont "bons" mais j'ai une erreur #valeur...
Là, je sèche...
J'ai trois autres fonctions du même style à créer, ça libérerait beaucoup de place sur mon classeur! Ah oui, j'ai oublié de préciser que j'ai réussi à calculer mon truc en "rangeant" mes données dans une feuille : si mes deux colonnes sont non-vides, je crée dans une autre feuille une colonne avec un 1 et un 0 sinon... mais ça prend énormément de place...
Merci de votre aide! Kioups
j'ai un tableau comportant 80 colonnes, partagés en vingt sections de 4 colonnes. Je veux calculer le nombre de fois où, dans chaque section, les deux premières colonnes sont non-vides : colonne 1 et 2, colonne 5 et 6, colonne 9 et 10, etc.
J'ai voulu utiliser la fonction NB.SI, malheureusement, la plage de celulles que j'étudie n'étant pas connexe, cela ne marche pas. Je peux également l'utiliser 40 fois mais je ne suis pas sûr du résultat et du gain de place....
J'ai donc voulu passer par les macros.
J'ai donc crée une fonction NbOcc() (sans arguments donc) qui calculerait pour chaque ligne (j'en ai un bon millier à étudier...) mon nombre d'occurrence. J'ai commencé par tester ma fonction avec ce code :
Code:
Public Function NbOcc()
NbOcc= ActiveCell.Row
End Function
Premier constat, impossible de copier cette fonction en tirant sur la case avec la souris... Mais en faisant un millier de CTRL-C CTRL-V, ça marche...
Mais quand j'en supprime un, les autres retournent l'erreur #valeur. A priori, mon activecell est mal venu...
Enfin, j'ai tenté cela :
Code:
Public Function NbOcc()
NbOcc = 0
For i = 1 To 20
If Cells.Offset(0, -4 * i) <> "" And Cells.Offset(0, 1 - 4 * i) <> "" Then
NbOcc = NbOcc + 1
End If
Next
End Function
Mes offset sont "bons" mais j'ai une erreur #valeur...
Là, je sèche...
J'ai trois autres fonctions du même style à créer, ça libérerait beaucoup de place sur mon classeur! Ah oui, j'ai oublié de préciser que j'ai réussi à calculer mon truc en "rangeant" mes données dans une feuille : si mes deux colonnes sont non-vides, je crée dans une autre feuille une colonne avec un 1 et un 0 sinon... mais ça prend énormément de place...
Merci de votre aide! Kioups