Calcul d'occurrence avec cellules non contigues

kioups

XLDnaute Occasionnel
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 :

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
 

porcinet82

XLDnaute Barbatruc
Re : Calcul d'occurrence avec cellules non contigues

Salut Kioups,

Come tu ne donnes pas trop d'info sur la forme de ton tableau, je fais un essais avec le fichier joint. En fait, le but de la macro est de partir de la dernière cellule de la feuille et de tester si la ligne de la première ligne non vide correspond a la ligne 1. Surement a adapter a ton cas, mais je pense que ca peux fonctionner.

@+
 

Pièces jointes

  • kioups.xls
    26 KB · Affichages: 80
  • kioups.xls
    26 KB · Affichages: 82
  • kioups.xls
    26 KB · Affichages: 83

kioups

XLDnaute Occasionnel
Re : Calcul d'occurrence avec cellules non contigues

Merci Romain, mais je n'arrive pas à voir dans ta macro ce que je recherche.

Mon tableau, c'est un récapitulatif de pronostics de match de foot. Pour chaque joueur (chaque "section"), il y a donc le score à domicile, le score à l'extérieur puis deux colonnes pour calculer les points (ça, ça roule sans problème). Ce que je veux à terme, c'est pouvoir avoir pour chaque match le nombre de joueurs ayant pronostiqué (score à domicile ET score à l'extérieur, même si logiquement l'un ne va pas sans l'autre), le pourcentage de joueurs ayant pronostiqué une victoire à domicile, le pourcentage de joueurs ayant mis N, le pourcentage de joueurs ayant mis 2 (victoire à l'extérieur).

Donc pour chaque match (chaque ligne), je veux dans une cellule qu'une fonction m'affiche (automatiquement, sans avoir cliqué où que ce soit) les données précisées au-dessus.

Je fournirai bien mon tableau, mais il fait 4 Mo et j'ai de gros problèmes de connexion aujourd'hui...
 

porcinet82

XLDnaute Barbatruc
Re : Calcul d'occurrence avec cellules non contigues

re,

Tu ne pas fournir qu'un morceau de ton fichier avec quelques exemples (enleve toutes les mises en formes...). Souvent, quelques lignes et quelques colonnes permettent de faire la macro, il restera peut etre quelques babioles a adapter mais au moins j'aurais quelques chose pour travailler.

En attendant ta pièce jointe,

@+
 

flo2002

XLDnaute Impliqué
Re : Calcul d'occurrence avec cellules non contigues

Bonjour,
pour joindre,
fichier xls ou zip de moins de 50ko sans accent ni autre caractere "bizar" (ca je sais pas si ca tient encore alors dans le doute)

bon courage
 

myDearFriend!

XLDnaute Barbatruc
Re : Calcul d'occurrence avec cellules non contigues

Bonjour kioups, porcinet82, flo2002, le Forum,

Si j'ai bien compris le problème...

Ci-dessous ta fonction personnalisée :
Code:
[SIZE=2]Public [COLOR=navy]Function[/COLOR] NbOcc()
[COLOR=navy]Dim [/COLOR]L[COLOR=navy] As Long
Dim [/COLOR]C[COLOR=navy] As Byte[/COLOR]
    Application.Volatile
    L = Application.Caller.Row
    [COLOR=navy]For [/COLOR]C = 1[COLOR=navy] To [/COLOR]78 [COLOR=navy]Step[/COLOR] 4
        [COLOR=navy]If [/COLOR]Cells(L, C) <> "" And Cells(L, C + 1) <> "" [COLOR=navy]Then[/COLOR] NbOcc = NbOcc + 1
    [COLOR=navy]Next[/COLOR] C
[COLOR=navy]End[/COLOR] Function[/SIZE]
Formule à copier en colonne 81 (copier la formule en "CC1" et tirer vers le bas) :
= NbOcc()

Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 502
Membres
103 563
dernier inscrit
samyezzehar