incrementer une cellule en fonction du contenu d'une autre cellule

Le
no-comment
Bonjour,

Je souhaite incrémenter une cellule dans la feuille 2 en fonction de la valeur d'une cellule de la feuille 1 :

Pour chaque ligne de la feuille 1, je veux tester la valeur de la colonne A. Si la valeur de la cellule A est "Activite 1", alors je veux tester la valeur de la cellule C de la même ligne. Si le texte de cette cellule est "OUI", alors je veux ajouter 1 dans la cellule B6 de la feuille 2.

Merci d'avance pour votre aide.

Cordialement,
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jordane
Le #18681281
bonjour,
je pense que la fonction nb.si.ens peut résoudre votre problème.

exemple:
=NB.SI.ENS(A1:A5;"¬tivite 1";C1:C5;"=oui")



--
Cordialement,

Jordane


"no-comment" a écrit :

Bonjour,

Je souhaite incrémenter une cellule dans la feuille 2 en fonction de la valeur
d'une cellule de la feuille 1 :

Pour chaque ligne de la feuille 1, je veux tester la valeur de la colonne A. Si
la valeur de la cellule A est "Activite 1", alors je veux tester la valeur de la
cellule C de la même ligne. Si le texte de cette cellule est "OUI", alors je
veux ajouter 1 dans la cellule B6 de la feuille 2.

Merci d'avance pour votre aide.

Cordialement,



Caetera
Le #18681591
> Je souhaite incrémenter une cellule dans la feuille 2 en fonction de la valeur
d'une cellule de la feuille 1 :

Pour chaque ligne de la feuille 1, je veux tester la valeur de la colonne A.
Si
la valeur de la cellule A est "Activite 1", alors je veux tester la valeur de
la
cellule C de la même ligne. Si le texte de cette cellule est "OUI", alors je
veux ajouter 1 dans la cellule B6 de la feuille 2.



En B6 de Feuil2 :
=SOMMEPROD((Feuil1!A1:A30="Activité 1")*(Feuil1!C1:C30="OUI"))

Etc
no-comment
Le #18681711
Jordane a écrit le 16/02/2009 à 13h43 :
bonjour,
je pense que la fonction nb.si.ens peut résoudre votre problème.

exemple:
=NB.SI.ENS(A1:A5;"¬tivite 1";C1:C5;"=oui")



--
Cordialement,

Jordane


"no-comment" a écrit :

Bonjour,

Je souhaite incrémenter une cellule dans la feuille 2 en fonction de la
valeur
d'une cellule de la feuille 1 :

Pour chaque ligne de la feuille 1, je veux tester la valeur de la colonne A.
Si
la valeur de la cellule A est "Activite 1", alors je veux tester la
valeur de la
cellule C de la même ligne. Si le texte de cette cellule est
"OUI", alors je
veux ajouter 1 dans la cellule B6 de la feuille 2.

Merci d'avance pour votre aide.

Cordialement,






Effectivement...

Le problème est que j'ai un tableu de 1000 lignes environ, avec une vingtaine d'activités différentes. Et je souhaite surtout ne pas avoir à changer la formule si une ligne est ajoutée pour une des activités voire qu'une énième activité est ajoutée...

Je pensais à un code du type :

Sub
Dim c As Integer
For i=2 to 2000
If Cell.Value = "Activite 1" Then Cells(i,3).activate
If ActiveCell.value = "oui" Then Feuil2.activate
Cells(6,2).select
c=c+1
Next

End Sub

Mais ca marche pas :( (en même temps je suis pas forcément douée...)
(Et ensuite dupliquer le code pour chaque activité)
ChristianM
Le #18682121
Bonjour,
Avec des données en A1:A13 et C1:C13
et le nom de l'activité en A6 de la feuille 2
Feuille 1 nommée "Données"
Feuille 2 nommée "Synthèse"

Si tu change le nom de l'activité en A6, le résultat change !

=SOMMEPROD((Données!A1:A13=Synthèse!A6)*(Données!C1:C13<>"OUI")

--
ChristianM


"no-comment"
Bonjour,

Je souhaite incrémenter une cellule dans la feuille 2 en fonction de la
valeur
d'une cellule de la feuille 1 :

Pour chaque ligne de la feuille 1, je veux tester la valeur de la colonne
A. Si
la valeur de la cellule A est "Activite 1", alors je veux tester la valeur
de la
cellule C de la même ligne. Si le texte de cette cellule est "OUI", alors
je
veux ajouter 1 dans la cellule B6 de la feuille 2.

Merci d'avance pour votre aide.

Cordialement,


Jordane
Le #18682291
pour calculer une plage de façon dynamique il faut utiliser les fonction
decaler et nbval.

Ce qui donne pour votre formule :

=NB.SI.ENS(DECALER(A1;0;0;NBVAL(A:A);1);"¬tivite
1";DECALER(G1;0;0;NBVAL(G:G);1);"=oui")
--
Cordialement,

Jordane


"no-comment" a écrit :

Jordane a écrit le 16/02/2009 à 13h43 :
> bonjour,
> je pense que la fonction nb.si.ens peut résoudre votre problème.
>
> exemple:
> =NB.SI.ENS(A1:A5;"¬tivite 1";C1:C5;"=oui")
>
>
>
> --
> Cordialement,
>
> Jordane
>
>
> "no-comment" a écrit :
>
>> Bonjour,
>>
>> Je souhaite incrémenter une cellule dans la feuille 2 en fonction de la
>> valeur
>> d'une cellule de la feuille 1 :
>>
>> Pour chaque ligne de la feuille 1, je veux tester la valeur de la colonne
A.
>> Si
>> la valeur de la cellule A est "Activite 1", alors je veux tester la
>> valeur de la
>> cellule C de la même ligne. Si le texte de cette cellule est
>> "OUI", alors je
>> veux ajouter 1 dans la cellule B6 de la feuille 2.
>>
>> Merci d'avance pour votre aide.
>>
>> Cordialement,
>>
>>
Effectivement...

Le problème est que j'ai un tableu de 1000 lignes environ, avec une vingtaine
d'activités différentes. Et je souhaite surtout ne pas avoir à changer la
formule si une ligne est ajoutée pour une des activités voire qu'une énième
activité est ajoutée...

Je pensais à un code du type :

Sub
Dim c As Integer
For i=2 to 2000
If Cell.Value = "Activite 1" Then Cells(i,3).activate
If ActiveCell.value = "oui" Then Feuil2.activate
Cells(6,2).select
c=c+1
Next

End Sub

Mais ca marche pas :( (en même temps je suis pas forcément douée...)
(Et ensuite dupliquer le code pour chaque activité)



Jordane
Le #18682441
pardon je n'avais pas lu la fin de votre question:

Par macro je procederai ainsi:

Sub toto()
Dim nbl As Integer ' variable pour le nombre de lignes dans le tableau
nbl = Sheets(1).UsedRange.Rows.Count
' boucle + test sur les valeurs du tableau
For i = 1 To nbl
If Sheets(1).Cells(i, "A").Value = "activite 1" And Sheets(1).Cells(i,
"G").Value = "oui" Then
c = c + 1 ' incrémentation de la variable
End If
Next
'ecriture de la variable dans la feuille de votre choix : ( exemple en B6 de
la feuille 2)
Sheets(2).Cells(6, "B").Value = c
End Sub



--
Cordialement,

Jordane


"no-comment" a écrit :

Jordane a écrit le 16/02/2009 à 13h43 :
> bonjour,
> je pense que la fonction nb.si.ens peut résoudre votre problème.
>
> exemple:
> =NB.SI.ENS(A1:A5;"¬tivite 1";C1:C5;"=oui")
>
>
>
> --
> Cordialement,
>
> Jordane
>
>
> "no-comment" a écrit :
>
>> Bonjour,
>>
>> Je souhaite incrémenter une cellule dans la feuille 2 en fonction de la
>> valeur
>> d'une cellule de la feuille 1 :
>>
>> Pour chaque ligne de la feuille 1, je veux tester la valeur de la colonne
A.
>> Si
>> la valeur de la cellule A est "Activite 1", alors je veux tester la
>> valeur de la
>> cellule C de la même ligne. Si le texte de cette cellule est
>> "OUI", alors je
>> veux ajouter 1 dans la cellule B6 de la feuille 2.
>>
>> Merci d'avance pour votre aide.
>>
>> Cordialement,
>>
>>
Effectivement...

Le problème est que j'ai un tableu de 1000 lignes environ, avec une vingtaine
d'activités différentes. Et je souhaite surtout ne pas avoir à changer la
formule si une ligne est ajoutée pour une des activités voire qu'une énième
activité est ajoutée...

Je pensais à un code du type :

Sub
Dim c As Integer
For i=2 to 2000
If Cell.Value = "Activite 1" Then Cells(i,3).activate
If ActiveCell.value = "oui" Then Feuil2.activate
Cells(6,2).select
c=c+1
Next

End Sub

Mais ca marche pas :( (en même temps je suis pas forcément douée...)
(Et ensuite dupliquer le code pour chaque activité)



no-comment
Le #18683251
Jordane a écrit le 16/02/2009 à 15h41 :
pardon je n'avais pas lu la fin de votre question:

Par macro je procederai ainsi:

Sub toto()
Dim nbl As Integer ' variable pour le nombre de lignes dans le tableau
nbl = Sheets(1).UsedRange.Rows.Count
' boucle + test sur les valeurs du tableau
For i = 1 To nbl
If Sheets(1).Cells(i, "A").Value = "activite 1" And
Sheets(1).Cells(i,
"G").Value = "oui" Then
c = c + 1 ' incrémentation de la variable
End If
Next
'ecriture de la variable dans la feuille de votre choix : ( exemple en B6 de
la feuille 2)
Sheets(2).Cells(6, "B").Value = c
End Sub



--
Cordialement,

Jordane


"no-comment" a écrit :

Jordane a écrit le 16/02/2009 à 13h43 :
> bonjour,
> je pense que la fonction nb.si.ens peut résoudre votre
problème.
>
> exemple:
> =NB.SI.ENS(A1:A5;"¬tivite 1";C1:C5;"=oui")
>
>
>
> --
> Cordialement,
>
> Jordane
>
>
> "no-comment" a écrit :
>
>> Bonjour,
>>
>> Je souhaite incrémenter une cellule dans la feuille 2 en
fonction de la
>> valeur
>> d'une cellule de la feuille 1 :
>>
>> Pour chaque ligne de la feuille 1, je veux tester la valeur de la
colonne
A.
>> Si
>> la valeur de la cellule A est "Activite 1", alors je veux
tester la
>> valeur de la
>> cellule C de la même ligne. Si le texte de cette cellule est
>> "OUI", alors je
>> veux ajouter 1 dans la cellule B6 de la feuille 2.
>>
>> Merci d'avance pour votre aide.
>>
>> Cordialement,
>>
>>
Effectivement...

Le problème est que j'ai un tableu de 1000 lignes environ, avec une
vingtaine
d'activités différentes. Et je souhaite surtout ne pas avoir
à changer la
formule si une ligne est ajoutée pour une des activités voire
qu'une énième
activité est ajoutée...

Je pensais à un code du type :

Sub
Dim c As Integer
For i=2 to 2000
If Cell.Value = "Activite 1" Then Cells(i,3).activate
If ActiveCell.value = "oui" Then Feuil2.activate
Cells(6,2).select
c=c+1
Next

End Sub

Mais ca marche pas :( (en même temps je suis pas forcément
douée...)
(Et ensuite dupliquer le code pour chaque activité)






Merci, ca a l'air de faire exactement ce que je veux :)
Publicité
Poster une réponse
Anonyme