Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

7 réponses
Avatar
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,

7 réponses

Avatar
Jordane
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,



Avatar
Caetera
> 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
Avatar
no-comment
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é)
Avatar
ChristianM
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" a écrit dans le message de news:

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,


Avatar
Jordane
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é)



Avatar
Jordane
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é)



Avatar
no-comment
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 :)