[Excel] somme conditionelle su deux colonnes ?

somme conditionelle su deux colonnes ? [Excel] - Divers - Programmation

Marsh Posté le 10-12-2010 à 15:09:57    

Bonjour,
 
J'ai un tableau avec 31 lignes pour les 31 jours du mois et pour chaque mois deux colonnes pour matin et après-midi. Pour un jour les deux cellules peuvent être fusionnée en une seule. Chaque cellule (demi journée ou journée fusionnée) contient soit un nombre, soir un code.  
 
Je coince d'une part sur comment compter le nombre de journée(et demi journée) ou un chiffre est présent.  
 
J'utilise pour compter les journée avec un chiffre la formule : =NB.SI(B5:C35;">-40" )-0,5*NB.SI(B5:C35;"*/2" )
Et pour compter les journées avec un code particulier : =NB.SI(B5:C35;"C" )+0,5*NB.SI(B5:C35;"C/2" )
 
J'indique pour le moment "C" comme code pour tout la journée (quand les cellules sont fusionnées) et "C/2" pour une demi journée.
 
D'une part, il serait plus élégant de mettre le même code que se soit pour une demi journée ou pour une journée complète.
 
D'autre part en procédant de la suite le nombre de journée ou un montant à été introduit est incorrecte si pour au moins une journée j'ai introduit deux codes différents pour le matin et l'après-midi.
 
Auriez-vous une piste pour résoudre mes problèmes qui me semble être lié (Comment déterminé si le code se rapporte à deux cellules fusionnées ou à une cellule unique ?
 
Merci
 
V

Reply

Marsh Posté le 10-12-2010 à 15:09:57   

Reply

Marsh Posté le 10-12-2010 à 17:25:21    

Si tu ajoute un module de code à ton projet VBA avec ceci :


Public Function ESTFUSIONNEE(objCellules As Range)
On Error GoTo ESTFUSIONNEE_Error
 
   ESTFUSIONNEE = False
   If objCellules.MergeCells Then
      Debug.Print objCellules.MergeCells
      ESTFUSIONNEE = True
   End If
 
Exit Function
ESTFUSIONNEE_Error:
End Function


 
 
tu pourra utiliser la formule suivante :
 
=ESTFUSIONNEE(D7)
 
renvois VRAI si D7 fait parti d'une plage fusionnée
 
donc en théorie combinée avec un SI, tu devrais pouvoir faire tes calculs.

Reply

Marsh Posté le 10-12-2010 à 17:28:04    

Enfin, ça c'est si tu veux principalement travailler avec des formules...
 
parceque sinon tu te développe une formule unique purement VBA :D
(même type de déclaration : fonction publique acceptant un range)

Reply

Marsh Posté le 11-12-2010 à 09:55:37    

Bonjour,
 
Merci pour ton aide.
 
J'ai trouver grâce à google la fonction MergeCells. mais ne connaissant pas du tout VBA, j'avais espérer pouvoir m'en passer. Je vais essayer de trouver un petit tuto pour me lancer dans VBA.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed