Un coup demain sur une p'tite formule ?
L'O
-
L'O -
L'O -
Bonjour bonjour,
Après avoir abandonné l'idée d'utiliser les checkbox (et oui tout le monde n'est pas pro dans l'utilisation des macros:), je cherche une petite formule à utiliser dans mon fichier.
Dans une feuille excel (Office 2003) j'ai une colonne A et une colonne B (je schématise quand même un peu). J'ai une liste déroulante dans la colonne B pour que ceux qui répondront au formulaire choisissent oui ou non.
Dans ma feuille suivante, je veux récupérer toutes les valeurs de la colonne A lorsque B=OUI. J'aurais pu faire une formule en si mais je ne veux pas de ligne vide dans ma feuille.
Si je ne suis pas assez claire, je peux compléter:)
En tout cas merci par avance pour votre aide!
Bonne journée
L'O
Après avoir abandonné l'idée d'utiliser les checkbox (et oui tout le monde n'est pas pro dans l'utilisation des macros:), je cherche une petite formule à utiliser dans mon fichier.
Dans une feuille excel (Office 2003) j'ai une colonne A et une colonne B (je schématise quand même un peu). J'ai une liste déroulante dans la colonne B pour que ceux qui répondront au formulaire choisissent oui ou non.
Dans ma feuille suivante, je veux récupérer toutes les valeurs de la colonne A lorsque B=OUI. J'aurais pu faire une formule en si mais je ne veux pas de ligne vide dans ma feuille.
Si je ne suis pas assez claire, je peux compléter:)
En tout cas merci par avance pour votre aide!
Bonne journée
L'O
A voir également:
- Un coup demain sur une p'tite formule ?
- Formule si ou - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Formule mathématique - Télécharger - Études & Formations
- Formule somme excel ligne - Guide
- Comment supprimer toutes les publications sur facebook d'un coup - Guide
9 réponses
Bonjour,
Donc tu as 2 feuilles, feuil1 et feuil2. Dans A1 tu as 12 et en B1 tu as Oui. En A2 tu as 31 et en B2 tu as Non.
Sur la feuil2 :
La première ligne me donne 12.
La seconde ligne me donne Nothing.
Cordialement.
Donc tu as 2 feuilles, feuil1 et feuil2. Dans A1 tu as 12 et en B1 tu as Oui. En A2 tu as 31 et en B2 tu as Non.
Sur la feuil2 :
=SI(Feuil1!B1="Oui";Feuil1!A1;"Nothing") =SI(Feuil1!B2="Oui";Feuil1!A2;"Nothing")
La première ligne me donne 12.
La seconde ligne me donne Nothing.
Cordialement.
Bonjour et merci pour ton aide,
En fait, je veux justement éviter d'avoir des cellules vides ou avec NA ou nothing dedans.
Si je prend un exemple de ce que je souhaite faire :
- Feuille 1 :
A1 : Alpha B1 : OUI
A2 : Beta B2 : NON
A3 : Gama B3 : OUI
- Feuille 2 :
A1 : Alpha
A2 : Gama
Comme tu vois je ne veux récupérer que les celles A pour lesquelles la cellule B = OUI. J'ai essayé avec une formule en si et un recherchev, mais ça ne donne pas ce que je veux. Peut-^tre faut-il faire "boucler" la formule en Si ou peut-être faut-il utiliser une macro. Une petite formule ce serait bien car les macros c pas mon fort ...
Merci encore pour ton aide. J'espère avoir été plus claire.
Cdlt,
L'O
En fait, je veux justement éviter d'avoir des cellules vides ou avec NA ou nothing dedans.
Si je prend un exemple de ce que je souhaite faire :
- Feuille 1 :
A1 : Alpha B1 : OUI
A2 : Beta B2 : NON
A3 : Gama B3 : OUI
- Feuille 2 :
A1 : Alpha
A2 : Gama
Comme tu vois je ne veux récupérer que les celles A pour lesquelles la cellule B = OUI. J'ai essayé avec une formule en si et un recherchev, mais ça ne donne pas ce que je veux. Peut-^tre faut-il faire "boucler" la formule en Si ou peut-être faut-il utiliser une macro. Une petite formule ce serait bien car les macros c pas mon fort ...
Merci encore pour ton aide. J'espère avoir été plus claire.
Cdlt,
L'O
Ok, tiens mais je ne sais pas comment tu veux que ça le reprenne donc j'ai fais dès que tu modifie une cellule :
Cordialement.
Private Sub Worksheet_Change(ByVal Target As Range)
i = 1
j = 1
Do While Worksheets("Feuil1").Cells(i, 2) <> ""
If Worksheets("Feuil1").Cells(i, 2) = "Oui" Then
Worksheets("Feuil2").Cells(j, 1) = Worksheets("Feuil1").Cells(i, 1)
j = j + 1
End If
i = i + 1
Loop
End Sub
Cordialement.
Merci,
Ok, super en lisant le code ça me parait être ça.
Par contre, comme je le disais je suis loin main très loin d'être une pro en macro. C'est même pire, je n'en ai jamais utilisée si ce n'est pour activer nbr.ouvres, alors ...
Si tu veux bien m'expliquer où et comment je peux mettre ton code, ce serait très très gentil (et là je me sent très bête).
Si pas le temps, je verrai avec un informaticien à mon boulot.
Et encore merci :)
Cdlt
Ok, super en lisant le code ça me parait être ça.
Par contre, comme je le disais je suis loin main très loin d'être une pro en macro. C'est même pire, je n'en ai jamais utilisée si ce n'est pour activer nbr.ouvres, alors ...
Si tu veux bien m'expliquer où et comment je peux mettre ton code, ce serait très très gentil (et là je me sent très bête).
Si pas le temps, je verrai avec un informaticien à mon boulot.
Et encore merci :)
Cdlt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
déjà tu veux que ta modification se fasse comment ?
Sinon pour mettre le code tu fais : Ctrl + F11
et tu double clique sur ta feuille ou tu modifies ton Oui ou Non
Mais il faudra que tu changes le code pour qu'il aille bien avec tes cellules, car je suis resté comme ton exemple avec A1 et B2 et les valeur se mettront sur ta feuil2 en A
Cordialement.
Sinon pour mettre le code tu fais : Ctrl + F11
et tu double clique sur ta feuille ou tu modifies ton Oui ou Non
Mais il faudra que tu changes le code pour qu'il aille bien avec tes cellules, car je suis resté comme ton exemple avec A1 et B2 et les valeur se mettront sur ta feuil2 en A
Cordialement.
Au faite, si tu viens a changer les valeurs Oui ou Non il risque d'avoir un problème d'affichage sur ta 2ème feuille. J'ai donc modifié le code pour éviter ce désagrément :)
Cordialement.
'Sur modification de la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
'Variables
h = 1
i = 1
j = 1
'Tanque A de la feuil2 n'est pas vide
Do While Worksheets("Feuil2").Cells(h, 1) <> ""
'On efface la veleur de la cellule
Worksheets("Feuil2").Cells(h, 1).Clear
'On incrémente de 1 à la variable H
h = h + 1
Loop
'Tanque B de la feuil1 n'est pas vide
Do While Worksheets("Feuil1").Cells(i, 2) <> ""
' Si une cellule de B contient le mot Oui on fait :
If Worksheets("Feuil1").Cells(i, 2) = "Oui" Or Worksheets("Feuil1").Cells(i, 2) = "oui" Then
' On met la valeur de A de la feuil1 à A de la feuil2
Worksheets("Feuil2").Cells(j, 1) = Worksheets("Feuil1").Cells(i, 1)
'On incrémente de 1 à la variable J
j = j + 1
'Fin du Si
End If
'On incrémente de 1 à la variable i
i = i + 1
'Fin du tanque
Loop
End Sub
Cordialement.
Salut et merci pour tes réponses.
Désolée d'avoir pris un peu de temps pour répondre.
Que veux-tu dire quand tu me demandes comment je veux que la modification se fasse ?
Pour le code, je vais l'ajouter cet aprèm dans mon fichier. Si j'ai un problème je n'hésiterai pas à te demander des conseils :)
J'ai effectivement changé mes valeurs oui et non. Je suppose qu'il suffit que je modifie dans ton code le oui par la valeur que je veux ? D'ailleurs en fait, j'ai modifié ma liste déroulante ce qui fait que les gens ont 3 possibilités maintenant au lieu de oui et non. Maintenant ils peuvent choisir entre "fabriqué" "acheté" et "acheté et fabriqué".
Il faudrait maintenant que je récupère les "acheté" et "acheté et fabriqué" (au lieu des "oui" uniquement). Suffit-il que j'ajoute un or ? (un truc comme ça ?) :
'Tanque B de la feuil1 n'est pas vide
Do While Worksheets("Feuil1").Cells(i, 2) <> ""
' Si une cellule de B contient le mot Acheté ou Acheté et fabriqué on fait :
If Worksheets("Feuil1").Cells(i, 2) = "Acheté" or "acheté et fabriqué" Or Worksheets("Feuil1").Cells(i, 2) = "Acheté" or "acheté et fabriqué" Then
De plus (je sais que j'en demande beaucoup :) finalement j'ai une info de plus à récupérer.
Avant j'avais colonne A un nom à récupérer et colonne B le oui ou non
Maintenant j'ai une colonne A ou j'ai un code à récuperer, la colonne B avec le même nom qu'avant à récuperer et la colonne C avec les 3 possibilités décrites plus haut.
Je suppose qu'il vaut mieux l'incorporer dans la macro plutôt que d'en faire une deuxième. Est-ce que ce serait difficile ?
Encore mille mercis pour ton aide. J'aimerais dire à charge de revanche, mais je ne vois pas sur quoi je pourrais t'aider ;)
Cdlt,
L'O
Désolée d'avoir pris un peu de temps pour répondre.
Que veux-tu dire quand tu me demandes comment je veux que la modification se fasse ?
Pour le code, je vais l'ajouter cet aprèm dans mon fichier. Si j'ai un problème je n'hésiterai pas à te demander des conseils :)
J'ai effectivement changé mes valeurs oui et non. Je suppose qu'il suffit que je modifie dans ton code le oui par la valeur que je veux ? D'ailleurs en fait, j'ai modifié ma liste déroulante ce qui fait que les gens ont 3 possibilités maintenant au lieu de oui et non. Maintenant ils peuvent choisir entre "fabriqué" "acheté" et "acheté et fabriqué".
Il faudrait maintenant que je récupère les "acheté" et "acheté et fabriqué" (au lieu des "oui" uniquement). Suffit-il que j'ajoute un or ? (un truc comme ça ?) :
'Tanque B de la feuil1 n'est pas vide
Do While Worksheets("Feuil1").Cells(i, 2) <> ""
' Si une cellule de B contient le mot Acheté ou Acheté et fabriqué on fait :
If Worksheets("Feuil1").Cells(i, 2) = "Acheté" or "acheté et fabriqué" Or Worksheets("Feuil1").Cells(i, 2) = "Acheté" or "acheté et fabriqué" Then
De plus (je sais que j'en demande beaucoup :) finalement j'ai une info de plus à récupérer.
Avant j'avais colonne A un nom à récupérer et colonne B le oui ou non
Maintenant j'ai une colonne A ou j'ai un code à récuperer, la colonne B avec le même nom qu'avant à récuperer et la colonne C avec les 3 possibilités décrites plus haut.
Je suppose qu'il vaut mieux l'incorporer dans la macro plutôt que d'en faire une deuxième. Est-ce que ce serait difficile ?
Encore mille mercis pour ton aide. J'aimerais dire à charge de revanche, mais je ne vois pas sur quoi je pourrais t'aider ;)
Cdlt,
L'O
Salut, oui tu peux mettre un or, mais pas de cette façon !!
If Worksheets("Feuil1").Cells(i, 2) = "Acheté" Or Worksheets("Feuil1").Cells(i, 2) = "acheté et fabriqué"
Désolé je suis pressé pas le temp de tt expliquer A++
Cordialement.
If Worksheets("Feuil1").Cells(i, 2) = "Acheté" Or Worksheets("Feuil1").Cells(i, 2) = "acheté et fabriqué"
Désolé je suis pressé pas le temp de tt expliquer A++
Cordialement.
Salut,
Merci pour la réponse. J'ai pas encore eu le tempts de tester mais je devrais pouvoir le faire avant la fin de la semaine.
Et désolée pour l'horreur que j'ai pu marquer avec le "or" :))
Je vais tester la macro comme tu l'as écrite pour comprendre comment ça marche et après je verrai pour ajouter la condition supplémentaire dedans. J'y arriverai bien un jour.
Merci encore
@+
Cdlt
Merci pour la réponse. J'ai pas encore eu le tempts de tester mais je devrais pouvoir le faire avant la fin de la semaine.
Et désolée pour l'horreur que j'ai pu marquer avec le "or" :))
Je vais tester la macro comme tu l'as écrite pour comprendre comment ça marche et après je verrai pour ajouter la condition supplémentaire dedans. J'y arriverai bien un jour.
Merci encore
@+
Cdlt