en espérent que ce message s'affiche et que tu le voie,
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) = "" Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
isabelle
JièL a écrit :
Salutatousse et mercitatousse aussi, mais... je me suis mal exprimé.
Vos formules et macros sont parfaites, mais ce que je voudrais c'est trouver la prochaine valeur (en tenant compte des trous) selon un critère, pas sur chaque cellule de la colonne adjacente
Dans mon exemple les colonnes A B et C qui contiennent mes données. Dans la cellule E1 je met AAA, dans F1 je met O, la cellule G1 doit m'afficher 4 dans ce cas Si E1 = AAA, F1 = N, G1 affiche 5 Si E1 = BCD, F1 = O, G1 affiche 2 ... je ne veux pas toutes les prochaines valeurs, juste LA prochaine selon les critères saisis. Dit différemment je voudrais un espèce de RECHECHEV "multicritère" (laissez tomber cet aspect de multicritère, je m'en débrouille, mais ça peut être utile si vous faites ça avec des SOMMEPROD par exemple) et qui me donne la prochaine valeur en tenant compte des trous éventuels
en pseudo code ça donnerait =RVperso(E1&F1&99999;A1:C3000;3;VRAI)+1
Si ça peut vous être utile j'ai une colonne qui est ce code complet (AAAO1, AAAO2 etc etc) et c'est moi qui le découpe en N cellules pour pouvoir travailler sur la valeur (si ça embrouille, laissez tombez cet aspect aussi ;-D)
Patrick, je pense que ta macro est une bonne base, faut juste que ça utilise les critères saisis dans 2 cellules et que ça s'arrête au premier "kivabien" et retourne la valeur +1
Encore merci
bonjour JièL,
en espérent que ce message s'affiche et que tu le voie,
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3)
= "" Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
isabelle
JièL a écrit :
Salutatousse et mercitatousse aussi, mais... je me suis mal exprimé.
Vos formules et macros sont parfaites, mais ce que je voudrais c'est
trouver la prochaine valeur (en tenant compte des trous) selon un
critère, pas sur chaque cellule de la colonne adjacente
Dans mon exemple les colonnes A B et C qui contiennent mes données.
Dans la cellule E1 je met AAA, dans F1 je met O, la cellule G1 doit
m'afficher 4 dans ce cas
Si E1 = AAA, F1 = N, G1 affiche 5
Si E1 = BCD, F1 = O, G1 affiche 2
...
je ne veux pas toutes les prochaines valeurs, juste LA prochaine selon
les critères saisis.
Dit différemment je voudrais un espèce de RECHECHEV "multicritère"
(laissez tomber cet aspect de multicritère, je m'en débrouille, mais
ça peut être utile si vous faites ça avec des SOMMEPROD par exemple)
et qui me donne la prochaine valeur en tenant compte des trous éventuels
en pseudo code ça donnerait =RVperso(E1&F1&99999;A1:C3000;3;VRAI)+1
Si ça peut vous être utile j'ai une colonne qui est ce code complet
(AAAO1, AAAO2 etc etc) et c'est moi qui le découpe en N cellules pour
pouvoir travailler sur la valeur (si ça embrouille, laissez tombez cet
aspect aussi ;-D)
Patrick, je pense que ta macro est une bonne base, faut juste que ça
utilise les critères saisis dans 2 cellules et que ça s'arrête au
premier "kivabien" et retourne la valeur +1
en espérent que ce message s'affiche et que tu le voie,
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) = "" Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
isabelle
JièL a écrit :
Salutatousse et mercitatousse aussi, mais... je me suis mal exprimé.
Vos formules et macros sont parfaites, mais ce que je voudrais c'est trouver la prochaine valeur (en tenant compte des trous) selon un critère, pas sur chaque cellule de la colonne adjacente
Dans mon exemple les colonnes A B et C qui contiennent mes données. Dans la cellule E1 je met AAA, dans F1 je met O, la cellule G1 doit m'afficher 4 dans ce cas Si E1 = AAA, F1 = N, G1 affiche 5 Si E1 = BCD, F1 = O, G1 affiche 2 ... je ne veux pas toutes les prochaines valeurs, juste LA prochaine selon les critères saisis. Dit différemment je voudrais un espèce de RECHECHEV "multicritère" (laissez tomber cet aspect de multicritère, je m'en débrouille, mais ça peut être utile si vous faites ça avec des SOMMEPROD par exemple) et qui me donne la prochaine valeur en tenant compte des trous éventuels
en pseudo code ça donnerait =RVperso(E1&F1&99999;A1:C3000;3;VRAI)+1
Si ça peut vous être utile j'ai une colonne qui est ce code complet (AAAO1, AAAO2 etc etc) et c'est moi qui le découpe en N cellules pour pouvoir travailler sur la valeur (si ça embrouille, laissez tombez cet aspect aussi ;-D)
Patrick, je pense que ta macro est une bonne base, faut juste que ça utilise les critères saisis dans 2 cellules et que ça s'arrête au premier "kivabien" et retourne la valeur +1
Encore merci
JièL
Hello Isabelle de la Geôlière
isabelle a écrit :
bonjour JièL,
en espérent que ce message s'affiche et que tu le voie,
vi vi
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) = "" Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
presque bon... sauf que j'ai pas de cellule vide, juste un changement dans la numérotation... je passe de la valeur 5 sur la ligne n à la valeur 15 sur la ligne suivante par exemple
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour trouver la valeur suivante.
Si quelqu'un veut bien m'aider à terminer ceci...
Merci
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Hello Isabelle de la Geôlière
isabelle a écrit :
bonjour JièL,
en espérent que ce message s'affiche et que tu le voie,
vi vi
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3)
= "" Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
presque bon... sauf que j'ai pas de cellule vide, juste un changement
dans la numérotation... je passe de la valeur 5 sur la ligne n à la
valeur 15 sur la ligne suivante par exemple
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour
trouver la valeur suivante.
Si quelqu'un veut bien m'aider à terminer ceci...
Merci
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO
http://faq-outlook.fr/viewpage.php?page_id=2
en espérent que ce message s'affiche et que tu le voie,
vi vi
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) = "" Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
presque bon... sauf que j'ai pas de cellule vide, juste un changement dans la numérotation... je passe de la valeur 5 sur la ligne n à la valeur 15 sur la ligne suivante par exemple
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour trouver la valeur suivante.
Si quelqu'un veut bien m'aider à terminer ceci...
Merci
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
JièL
JièL a écrit :
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour trouver la valeur suivante.
oops... je voulais dire Daniel... merci à tous les 2 quand même ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
JièL a écrit :
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour
trouver la valeur suivante.
oops... je voulais dire Daniel... merci à tous les 2 quand même ;-)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO
http://faq-outlook.fr/viewpage.php?page_id=2
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour trouver la valeur suivante.
oops... je voulais dire Daniel... merci à tous les 2 quand même ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
isabelle
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
isabelle
JièL a écrit :
Hello Isabelle de la Geôlière
isabelle a écrit :
bonjour JièL,
en espérent que ce message s'affiche et que tu le voie,
vi vi
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) = "" Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
presque bon... sauf que j'ai pas de cellule vide, juste un changement dans la numérotation... je passe de la valeur 5 sur la ligne n à la valeur 15 sur la ligne suivante par exemple
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour trouver la valeur suivante.
Si quelqu'un veut bien m'aider à terminer ceci...
Merci
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande
que 1 au lieu de vérifier une valeur vide,
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3)
-Cells(c.Row - 1, 3) > 1 Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
si c'est pas ça, stp fournis moi un fichier avec données,
isabelle
JièL a écrit :
Hello Isabelle de la Geôlière
isabelle a écrit :
bonjour JièL,
en espérent que ce message s'affiche et que tu le voie,
vi vi
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As
Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row,
3) = "" Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
presque bon... sauf que j'ai pas de cellule vide, juste un changement
dans la numérotation... je passe de la valeur 5 sur la ligne n à la
valeur 15 sur la ligne suivante par exemple
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour
trouver la valeur suivante.
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
isabelle
JièL a écrit :
Hello Isabelle de la Geôlière
isabelle a écrit :
bonjour JièL,
en espérent que ce message s'affiche et que tu le voie,
vi vi
=MaRecherche($A$1:$A$100;E1;F1)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) = "" Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
presque bon... sauf que j'ai pas de cellule vide, juste un changement dans la numérotation... je passe de la valeur 5 sur la ligne n à la valeur 15 sur la ligne suivante par exemple
Donc il faudrait que je mixe ton exemple avec celui de Patrick pour trouver la valeur suivante.
Si quelqu'un veut bien m'aider à terminer ceci...
Merci
JièL
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande
que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3)
-Cells(c.Row - 1, 3) > 1 Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d
Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive
pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO
http://faq-outlook.fr/viewpage.php?page_id=2
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Daniel.C
Bonjoour JièL. Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer x = plg(1).Offset(, 2).Value - 1 For Each c In plg If c = val1.Value And c.Offset(, 1).Value = val2.Value Then If c.Offset(, 2).Value <> x + 1 Then toto = x + 1 teste = True Exit Function Else x = x + 1 End If End If toto = c.Offset(, 2).Value + 1 Next c If teste = False Then toto = x + 1 End If End Function Cordialement. Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
Bonjoour JièL.
Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer
x = plg(1).Offset(, 2).Value - 1
For Each c In plg
If c = val1.Value And c.Offset(, 1).Value = val2.Value Then
If c.Offset(, 2).Value <> x + 1 Then
toto = x + 1
teste = True
Exit Function
Else
x = x + 1
End If
End If
toto = c.Offset(, 2).Value + 1
Next c
If teste = False Then
toto = x + 1
End If
End Function
Cordialement.
Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1
au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3)
-Cells(c.Row - 1, 3) > 1 Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d
Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à
faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
Bonjoour JièL. Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer x = plg(1).Offset(, 2).Value - 1 For Each c In plg If c = val1.Value And c.Offset(, 1).Value = val2.Value Then If c.Offset(, 2).Value <> x + 1 Then toto = x + 1 teste = True Exit Function Else x = x + 1 End If End If toto = c.Offset(, 2).Value + 1 Next c If teste = False Then toto = x + 1 End If End Function Cordialement. Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
JièL
S U P E R
Merci à vous 2... et à tous les autres aussi ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Daniel.C a écrit :
Bonjoour JièL. Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer x = plg(1).Offset(, 2).Value - 1 For Each c In plg If c = val1.Value And c.Offset(, 1).Value = val2.Value Then If c.Offset(, 2).Value <> x + 1 Then toto = x + 1 teste = True Exit Function Else x = x + 1 End If End If toto = c.Offset(, 2).Value + 1 Next c If teste = False Then toto = x + 1 End If End Function Cordialement. Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
S U P E R
Merci à vous 2... et à tous les autres aussi ;-)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO
http://faq-outlook.fr/viewpage.php?page_id=2
Daniel.C a écrit :
Bonjoour JièL.
Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer
x = plg(1).Offset(, 2).Value - 1
For Each c In plg
If c = val1.Value And c.Offset(, 1).Value = val2.Value Then
If c.Offset(, 2).Value <> x + 1 Then
toto = x + 1
teste = True
Exit Function
Else
x = x + 1
End If
End If
toto = c.Offset(, 2).Value + 1
Next c
If teste = False Then
toto = x + 1
End If
End Function
Cordialement.
Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande
que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As
Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row,
3) -Cells(c.Row - 1, 3) > 1 Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d
Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive
pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Daniel.C a écrit :
Bonjoour JièL. Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer x = plg(1).Offset(, 2).Value - 1 For Each c In plg If c = val1.Value And c.Offset(, 1).Value = val2.Value Then If c.Offset(, 2).Value <> x + 1 Then toto = x + 1 teste = True Exit Function Else x = x + 1 End If End If toto = c.Offset(, 2).Value + 1 Next c If teste = False Then toto = x + 1 End If End Function Cordialement. Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
Mgr T. Banni
si ces trous avaient été de mémoire, je pense que j'aurais pu t'aider, JièL je ne peux donc que te souhaiter d'être en pleine userforme, comme on dit à Cassis Mgr T.B.
"JièL" a écrit dans le message de news:
S U P E R
Merci à vous 2... et à tous les autres aussi ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Daniel.C a écrit :
Bonjoour JièL. Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer x = plg(1).Offset(, 2).Value - 1 For Each c In plg If c = val1.Value And c.Offset(, 1).Value = val2.Value Then If c.Offset(, 2).Value <> x + 1 Then toto = x + 1 teste = True Exit Function Else x = x + 1 End If End If toto = c.Offset(, 2).Value + 1 Next c If teste = False Then toto = x + 1 End If End Function Cordialement. Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
si ces trous avaient été de mémoire, je pense que j'aurais pu t'aider, JièL
je ne peux donc que te souhaiter d'être en pleine userforme, comme on dit à
Cassis
Mgr T.B.
"JièL" <NoSpam_JieL@faq-outlook.fr_NoSpam> a écrit dans le message de news:
uEXHupH6JHA.6136@TK2MSFTNGP03.phx.gbl...
S U P E R
Merci à vous 2... et à tous les autres aussi ;-)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO
http://faq-outlook.fr/viewpage.php?page_id=2
Daniel.C a écrit :
Bonjoour JièL.
Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer
x = plg(1).Offset(, 2).Value - 1
For Each c In plg
If c = val1.Value And c.Offset(, 1).Value = val2.Value Then
If c.Offset(, 2).Value <> x + 1 Then
toto = x + 1
teste = True
Exit Function
Else
x = x + 1
End If
End If
toto = c.Offset(, 2).Value + 1
Next c
If teste = False Then
toto = x + 1
End If
End Function
Cordialement.
Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande
que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As
Integer
For Each c In plg
x = x + 1
If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row,
3) -Cells(c.Row - 1, 3) > 1 Then
MaRecherche = Cells(c.Row - 1, 3) + 1
Exit For
End If
Next
End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d
Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive
pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
si ces trous avaient été de mémoire, je pense que j'aurais pu t'aider, JièL je ne peux donc que te souhaiter d'être en pleine userforme, comme on dit à Cassis Mgr T.B.
"JièL" a écrit dans le message de news:
S U P E R
Merci à vous 2... et à tous les autres aussi ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Daniel.C a écrit :
Bonjoour JièL. Essaie cette variante de la fonction d'Isabelle :
Function toto(plg As Range, val1 As Range, val2 As Range) As Integer x = plg(1).Offset(, 2).Value - 1 For Each c In plg If c = val1.Value And c.Offset(, 1).Value = val2.Value Then If c.Offset(, 2).Value <> x + 1 Then toto = x + 1 teste = True Exit Function Else x = x + 1 End If End If toto = c.Offset(, 2).Value + 1 Next c If teste = False Then toto = x + 1 End If End Function Cordialement. Daniel
Hello Isabelle de la Geolière
tout d'abord, merci de ton aide.
isabelle a écrit :
salut JièL,
donc si j'ai bien compris il faut vérifier une différence plus grande que 1 au lieu de vérifier une valeur vide,
presque ;-)
Function MaRecherche(plg As Range, val1 As Range, val2 As Range) As Integer For Each c In plg x = x + 1 If Cells(c.Row, 1) = val1 And Cells(c.Row, 2) = val2 And Cells(c.Row, 3) -Cells(c.Row - 1, 3) > 1 Then MaRecherche = Cells(c.Row - 1, 3) + 1 Exit For End If Next End Function
si c'est pas ça, stp fournis moi un fichier avec données,
http://cjoint.com/?giaGbarN5d Je suis quasiment sûr qu'on es pas loin du résultat, mais je n'arrive pas à faire marcher ta fonction.
Merci à toi et à tous ceux qui se penche sur le pb.
JièL
Mgr T. Banni a écrit :
si ces trous avaient été de mémoire, je pense que j'aurais pu t'aider, JièL je ne peux donc que te souhaiter d'être en pleine userforme, comme on dit à Cassis Mgr T.B.
Merci mon saigneur ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2
Mgr T. Banni a écrit :
si ces trous avaient été de mémoire, je pense que j'aurais pu t'aider, JièL
je ne peux donc que te souhaiter d'être en pleine userforme, comme on dit à
Cassis
Mgr T.B.
Merci mon saigneur ;-)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO
http://faq-outlook.fr/viewpage.php?page_id=2
si ces trous avaient été de mémoire, je pense que j'aurais pu t'aider, JièL je ne peux donc que te souhaiter d'être en pleine userforme, comme on dit à Cassis Mgr T.B.
Merci mon saigneur ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est là : http://faq-outlook.fr/
Boycott des questions venant de CDO http://faq-outlook.fr/viewpage.php?page_id=2