Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !
Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !
Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !
Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
Corto
Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !
Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Adapter la plage de recherche :
Sub zzz()
laDate = "18/06/07"
MsgBox Application.Match(CDate(laDate) * 1, [Feuil2!1:1], 0)
End Sub
AV
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Adapter la plage de recherche :
Sub zzz()
laDate = "18/06/07"
MsgBox Application.Match(CDate(laDate) * 1, [Feuil2!1:1], 0)
End Sub
AV
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Adapter la plage de recherche :
Sub zzz()
laDate = "18/06/07"
MsgBox Application.Match(CDate(laDate) * 1, [Feuil2!1:1], 0)
End Sub
AV
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluat ion
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contien t une
_valeur_ date, les cellules suivantes contiennent "+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:teSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une p lage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/ 2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages pré cédents -
- Afficher le texte des messages précédents -
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluat ion
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contien t une
_valeur_ date, les cellules suivantes contiennent "=B1+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:
Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:=DateSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
Corto
Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une p lage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/ 2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages pré cédents -
- Afficher le texte des messages précédents -
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluat ion
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contien t une
_valeur_ date, les cellules suivantes contiennent "+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:teSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une p lage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/ 2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages pré cédents -
- Afficher le texte des messages précédents -
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
As tu une idée de ce qui peut provoquer cette erreur ?
As tu une idée de ce qui peut provoquer cette erreur ?
As tu une idée de ce qui peut provoquer cette erreur ?
Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 > > > > A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:
Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
Corto
Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 > > > > A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 > > > > A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup !
Je pense effectivement avoir un problème avec le format des dates, car les
cellules affichent une date "18/6" et non "18/06/2007". Du coup, Find ren voie
Nothing systématiquement...
Comment puis-je m'affranchir de ce problème (je ne peux pas changer le
format de l'affichage) ?
Merci d'avance !
--
Jean-Luc, Auriol, FRANCE
"JB" wrote:Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:teSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'éva luation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule con tient une
_valeur_ date, les cellules suivantes contiennent "+7", par exem ple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluatio n de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:teSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans u ne plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01 /01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/200 7.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages p récédents -
- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup !
Je pense effectivement avoir un problème avec le format des dates, car les
cellules affichent une date "18/6" et non "18/06/2007". Du coup, Find ren voie
Nothing systématiquement...
Comment puis-je m'affranchir de ce problème (je ne peux pas changer le
format de l'affichage) ?
Merci d'avance !
--
Jean-Luc, Auriol, FRANCE
"JB" wrote:
Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:=DateSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'éva luation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule con tient une
_valeur_ date, les cellules suivantes contiennent "=B1+7", par exem ple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluatio n de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:
Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:=DateSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
Corto
Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans u ne plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01 /01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/200 7.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages p récédents -
- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup !
Je pense effectivement avoir un problème avec le format des dates, car les
cellules affichent une date "18/6" et non "18/06/2007". Du coup, Find ren voie
Nothing systématiquement...
Comment puis-je m'affranchir de ce problème (je ne peux pas changer le
format de l'affichage) ?
Merci d'avance !
--
Jean-Luc, Auriol, FRANCE
"JB" wrote:Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:teSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'éva luation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule con tient une
_valeur_ date, les cellules suivantes contiennent "+7", par exem ple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluatio n de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:teSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans u ne plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01 /01/2007, B1 =
A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/200 7.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages p récédents -
- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup !
Je pense effectivement avoir un problème avec le format des dates, car les
cellules affichent une date "18/6" et non "18/06/2007". Du coup, Find renvoie
Nothing systématiquement...
Comment puis-je m'affranchir de ce problème (je ne peux pas changer le
format de l'affichage) ?
Merci d'avance !
--
Jean-Luc, Auriol, FRANCE
"JB" wrote:Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 > > > > > A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup !
Je pense effectivement avoir un problème avec le format des dates, car les
cellules affichent une date "18/6" et non "18/06/2007". Du coup, Find renvoie
Nothing systématiquement...
Comment puis-je m'affranchir de ce problème (je ne peux pas changer le
format de l'affichage) ?
Merci d'avance !
--
Jean-Luc, Auriol, FRANCE
"JB" wrote:
Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:
Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:
Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
Corto
Bonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 > > > > > A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Merci beaucoup !
Je pense effectivement avoir un problème avec le format des dates, car les
cellules affichent une date "18/6" et non "18/06/2007". Du coup, Find renvoie
Nothing systématiquement...
Comment puis-je m'affranchir de ce problème (je ne peux pas changer le
format de l'affichage) ?
Merci d'avance !
--
Jean-Luc, Auriol, FRANCE
"JB" wrote:Bonjour,
Ce pgm fonctionne:
-Il pourrait y avoir un pb si le format des dates dans le tableur
était <> jj/mm/aa
-Il faut dans ce cas adapter le format de la date cherchée.
-Sachant que les dates sont dans une ligne, on peut utiliser
Application.Match
http://cjoint.com/?gfmdjjFDwJ
Sub essai()
Set xyz = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18),
LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai2()
Set xyz = [A8:AZ8].Find(What:=Format(DateSerial(2007, 6, 18),
"dddd d mmmm yyyy"), LookIn:=xlValues, LookAt:=xlWhole)
If xyz Is Nothing Then
MsgBox "non trouvé"
Else
MsgBox xyz.Column
xyz.Select
End If
End Sub
Sub essai3()
x = Application.Match(CDbl(DateSerial(2007, 6, 18)), [A8:AZ8], 0)
If IsError(x) Then
MsgBox "non trouvé"
Else
MsgBox x
End If
End Sub
JB
On 5 juin, 11:37, Jean-Luc GARNIER <jean-luc.garnier(at)gemalto.com>
wrote:Merci Corto, mais cela ne peut pas marcher : Find ne fait pas l'évaluation
d'une fonction au vol !
En effet, dans la plage de recherche, seule la première cellule contient une
_valeur_ date, les cellules suivantes contiennent "±+7", par exemple.
Il faut donc que la fonction de recherche fasse d'abord l'évaluation de la
formule, puis compare la valeur obtenue à la valeur recherchée.
Dans l'exemple, la valeur cherchée est en colonne Y1: Y1 = X1+7, qui doit
donner 18/06/2007 et là, la fonction de recherche doit donner OK.
Est-ce plus clair ?
--
Jean-Luc, Auriol, FRANCE
"Corto" wrote:Bonjour Jean-Luc GARNIER,
Je te propose tout simplement la fonction find :
Set XYZ = [A1:AZ1].Find(What:ÚteSerial(2007, 6, 18), _
LookIn:=xlValues, LookAt:=xlWhole)
if XYZ is nothing then
'------ Pas trouvé
else
'------ Trouvé, XYZ contient la cellule trouvée
endif
CortoBonjour à toutes et à tous,
Je cherche une fonction de recherche en VBA pour localiser dans une plage de
cellules celle dont la formule donne le résultat recherché.
Exemple:
- une ligne de cellules contient une date calculée: A1 = 01/01/2007, B1 > > > > > A1+7, C1 = B1 + 7, D1 = C1 + 7, etc.
- je cherche la date 18/06/2007 dans la plage A1:AZ1
- je veux connaitre la colonne où la cellule "vaut" 18/06/2007.
En gros, un mix entre Find et Evaluate...
Merci d'avance pour toute aide !- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -