Bonjour,
J'utilise une macro pour rechercher dans une feuille certaines chaînes de caractères, et lorsqu'elles sont trouvées, je peux attribuer un nom à une cellule proche.
Ca marche très bien excepté que la chaîne doit se trouver dans la feuille sinon ERREUR.
Comment faire pour résoudre ce problème.
J'ai également une seconde question: si je double ma condition, c'est à dire si je recherche chaine1 lorsqu'elle est située dans la cellule au-dessus de chaine2 (et non pas lorsqu'elle est suivie de chaine3) comment "by-passer" chaine1 suivi de chaine3 de manière à continuer la recherche dans le fichier jusqu'à tomber sur chaine1 et chaine 2 en-dessous.
Exemple.
Dim c As Range
'
Set c = Cells.Find(What:="chaine_1", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
ActiveWorkbook.Names.Add Name:="chaine_1", RefersToR1C1:=c.Offset(0, 1)
ActiveWorkbook.Names.Add Name:="param_1", RefersToR1C1:=c.Offset(0, 2)
ActiveWorkbook.Names.Add Name:="param_2", RefersToR1C1:=c.Offset(1, 3)
'
Set c = Cells.Find(What:="chaine_2", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
ActiveWorkbook.Names.Add Name:="chaine_2", RefersToR1C1:=c.Offset(0, 1)
ActiveWorkbook.Names.Add Name:="param_21", RefersToR1C1:=c.Offset(2, 4)
'
' de cette façon, je peux lire une feuille excel que je reçois par ailleurs
' mais dont je ne connais pas ce qu'il y a dedans. Lorsque les chaines de caractères
' que je recherche s'y trouvent (par exemple "chaine_1"), j'attribue à la cellule ou sa voisine ou la suivante
' un nom
' ce nom me permet alors de comparer la valeur des cellules avec celles d'autres cellules
' d'un autre classeur
'
' PROBLEME.
'
' lorsque la chaine recherchée (exemple: chaine_2) ne se trouve pas dansla feuille reçue,
' la macro affiche une erreur
'
' Comment résoudre ce problème ?
Merci à tous les experts qui auraient la patience d'essayer de m'aider.
Jean-Claude
J'utilise une macro pour rechercher dans une feuille certaines chaînes de caractères, et lorsqu'elles sont trouvées, je peux attribuer un nom à une cellule proche.
Ca marche très bien excepté que la chaîne doit se trouver dans la feuille sinon ERREUR.
Comment faire pour résoudre ce problème.
J'ai également une seconde question: si je double ma condition, c'est à dire si je recherche chaine1 lorsqu'elle est située dans la cellule au-dessus de chaine2 (et non pas lorsqu'elle est suivie de chaine3) comment "by-passer" chaine1 suivi de chaine3 de manière à continuer la recherche dans le fichier jusqu'à tomber sur chaine1 et chaine 2 en-dessous.
Exemple.
Dim c As Range
'
Set c = Cells.Find(What:="chaine_1", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
ActiveWorkbook.Names.Add Name:="chaine_1", RefersToR1C1:=c.Offset(0, 1)
ActiveWorkbook.Names.Add Name:="param_1", RefersToR1C1:=c.Offset(0, 2)
ActiveWorkbook.Names.Add Name:="param_2", RefersToR1C1:=c.Offset(1, 3)
'
Set c = Cells.Find(What:="chaine_2", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
ActiveWorkbook.Names.Add Name:="chaine_2", RefersToR1C1:=c.Offset(0, 1)
ActiveWorkbook.Names.Add Name:="param_21", RefersToR1C1:=c.Offset(2, 4)
'
' de cette façon, je peux lire une feuille excel que je reçois par ailleurs
' mais dont je ne connais pas ce qu'il y a dedans. Lorsque les chaines de caractères
' que je recherche s'y trouvent (par exemple "chaine_1"), j'attribue à la cellule ou sa voisine ou la suivante
' un nom
' ce nom me permet alors de comparer la valeur des cellules avec celles d'autres cellules
' d'un autre classeur
'
' PROBLEME.
'
' lorsque la chaine recherchée (exemple: chaine_2) ne se trouve pas dansla feuille reçue,
' la macro affiche une erreur
'
' Comment résoudre ce problème ?
Merci à tous les experts qui auraient la patience d'essayer de m'aider.
Jean-Claude