OVH Cloud OVH Cloud

recherche caractères parmi texte en vba

8 réponses
Avatar
massonlafayette
Bonjour,
qq'un pourrait-il me dire comment programmer l'annulation de lignes dont la
cellule de la 1ère colonne contient, parmi son texte, des caractères comme
"rfa", qui peut se situer n'importe où dans le texte de la cellule( donc pas
forcément à gauche ni à droite ni au milieu pile poil mais quelque part dans le
texte et peut-être même imbriqué dans un mot)
merci beaucoup.

8 réponses

Avatar
AV
Sub zzzzzz()
Columns("A:A").AutoFilter Field:=1, Criteria1:="=*rfa*"
Range("A2", [A65536].End(3)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
[A1].AutoFilter
End Sub

AV

"Lionel Masson" a écrit dans le message news:

Bonjour,
qq'un pourrait-il me dire comment programmer l'annulation de lignes dont la
cellule de la 1ère colonne contient, parmi son texte, des caractères comme
"rfa", qui peut se situer n'importe où dans le texte de la cellule( donc pas
forcément à gauche ni à droite ni au milieu pile poil mais quelque part dans
le

texte et peut-être même imbriqué dans un mot)
merci beaucoup.



Avatar
sabatier
salut lionel
ne cherche surtout pas à partir de l'aide copiée ci-dessous ce que
signifie le (3) après le End (index si cher à alain) car si tu lui
demandes, il va te dire que c'est l'équivalent de xlUP mais tu
reconnaitras comme moi que ce n'est pas très apparent dans l'aide...
et on voudrait que moi je comprenne ces présentations qui ne sont pas
appuyées sur beaucoup de réflexion...
jps


End, propriété
Voir aussi S'applique à Exemple Spécificités
Cette propriété renvoie un objet Range qui représente la cellule à la
fin de la zone qui contient la plage source. Elle correspond aux
combinaisons de touches FIN+HAUT, FIN+BAS, FIN+GAUCHE ou
FIN+DROITE.(NDLR : ici le haut est en position 1)
Objet Range en lecture seule.

expression.End(Direction)

expression Obligatoire. Expression qui renvoie un des objets
répertoriés dans la liste S'applique à.

Direction Argument XlDirection obligatoire. Direction du déplacement.

XlDirection peut être l'une de ces constantes XlDirection.
xlDown
xlToRight
xlToLeft
xlUp (NDLR : ici le haut est en position 4 et, certise sur le gâteau,
dans l'assistant en VBE, l'ordre est xlDown, xlLeft, xlRight et xlUp)


AV a écrit:
Sub zzzzzz()
Columns("A:A").AutoFilter Field:=1, Criteria1:="=*rfa*"
Range("A2", [A65536].End(3)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
[A1].AutoFilter
End Sub

AV

"Lionel Masson" a écrit dans le message news:


Bonjour,
qq'un pourrait-il me dire comment programmer l'annulation de lignes dont la
cellule de la 1ère colonne contient, parmi son texte, des caractères comme
"rfa", qui peut se situer n'importe où dans le texte de la cellule( donc pas
forcément à gauche ni à droite ni au milieu pile poil mais quelque part dans


le

texte et peut-être même imbriqué dans un mot)
merci beaucoup.








Avatar
Pascal Engelmajer
Salut,
xlUp n'est pas égal à 3 !!! mais à -4162
Const xlUp = -4162 (&HFFFFEFBE)
xlDown est égal à -4121
par contre .End(3) est bien équivalent à .End(-4162)
C'est très simple. Ou trouver ce détail ?
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"sabatier" a écrit dans le message de news:

salut lionel
ne cherche surtout pas à partir de l'aide copiée ci-dessous ce que
signifie le (3) après le End (index si cher à alain) car si tu lui
demandes, il va te dire que c'est l'équivalent de xlUP mais tu
reconnaitras comme moi que ce n'est pas très apparent dans l'aide...
et on voudrait que moi je comprenne ces présentations qui ne sont pas
appuyées sur beaucoup de réflexion...
jps


End, propriété
Voir aussi S'applique à Exemple Spécificités
Cette propriété renvoie un objet Range qui représente la cellule à la
fin de la zone qui contient la plage source. Elle correspond aux
combinaisons de touches FIN+HAUT, FIN+BAS, FIN+GAUCHE ou
FIN+DROITE.(NDLR : ici le haut est en position 1)
Objet Range en lecture seule.

expression.End(Direction)

expression Obligatoire. Expression qui renvoie un des objets
répertoriés dans la liste S'applique à.

Direction Argument XlDirection obligatoire. Direction du déplacement.

XlDirection peut être l'une de ces constantes XlDirection.
xlDown
xlToRight
xlToLeft
xlUp (NDLR : ici le haut est en position 4 et, certise sur le gâteau,
dans l'assistant en VBE, l'ordre est xlDown, xlLeft, xlRight et xlUp)


AV a écrit:
Sub zzzzzz()
Columns("A:A").AutoFilter Field:=1, Criteria1:="=*rfa*"
Range("A2",
[A65536].End(3)).SpecialCells(xlCellTypeVisible).EntireRow.Delete


[A1].AutoFilter
End Sub

AV

"Lionel Masson" a écrit dans le message
news:




Bonjour,
qq'un pourrait-il me dire comment programmer l'annulation de lignes dont
la



cellule de la 1ère colonne contient, parmi son texte, des caractères
comme



"rfa", qui peut se situer n'importe où dans le texte de la cellule( donc
pas



forcément à gauche ni à droite ni au milieu pile poil mais quelque part
dans




le

texte et peut-être même imbriqué dans un mot)
merci beaucoup.











Avatar
AV
xlUp n'est pas égal à 3 !!! mais à -4162


Là tu chinoises ;-)
On a jamais dit que xlUp est égal à 3 mais que End(3) est égal à End(xlUp)

AV

Avatar
sabatier
ah! mais....
jps

AV a écrit:
xlUp n'est pas égal à 3 !!! mais à -4162



Là tu chinoises ;-)
On a jamais dit que xlUp est égal à 3 mais que End(3) est égal à End(xlUp)

AV





Avatar
Frédéric Sigonneau
Bonsoir,

xlDirection est défini comme une énumération (enum). C'est assez comparable à
une collection dont le nombre de membres serait prédéfini (ici 4). Les membres
de cette énumération sont des constantes nommées, avec, donc, un nom (xlUp par
ex) et une valeur (-4162 pour xlUp), ainsi qu'une position dans l'énumération (3
pour xlUp).
Ainsi, pour faire le tour des 4 coins d'une feuille de calcul, les 3 écritures
ci-dessous sont équivalentes (à recopier dans un module standard et à lancer
dans Excel, pas VBE, pour profiter du voyage) :

'==================== Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
' 1 -> xlToLeft
' 2 -> xlToRight
' 3 -> xlUp
' 4 -> xlDown

Range("A1").Select
Sleep 500

'positions
Selection.End(4).Select
Sleep 500
Selection.End(2).Select
Sleep 500
Selection.End(3).Select
Sleep 500
Selection.End(1).Select
Sleep 500

' -4159 -> xlToLeft
' -4161 -> xlToRight
' -4162 -> xlUp
' -4121 -> xlDown

'valeurs
Range("A1").End(-4121).Select
Sleep 500
Selection.End(-4161).Select
Sleep 500
Selection.End(-4162).Select
Sleep 500
Selection.End(-4159).Select
Sleep 500

' et le classique (noms):
Range("A1").End(xlDown).Select
Sleep 500
Selection.End(xlToRight).Select
Sleep 500
Selection.End(xlUp).Select
Sleep 500
Selection.End(xlToLeft).Select

End Sub
'====================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


salut lionel
ne cherche surtout pas à partir de l'aide copiée ci-dessous ce que
signifie le (3) après le End (index si cher à alain) car si tu lui
demandes, il va te dire que c'est l'équivalent de xlUP mais tu
reconnaitras comme moi que ce n'est pas très apparent dans l'aide...
et on voudrait que moi je comprenne ces présentations qui ne sont pas
appuyées sur beaucoup de réflexion...
jps

End, propriété
Voir aussi S'applique à Exemple Spécificités
Cette propriété renvoie un objet Range qui représente la cellule à la
fin de la zone qui contient la plage source. Elle correspond aux
combinaisons de touches FIN+HAUT, FIN+BAS, FIN+GAUCHE ou
FIN+DROITE.(NDLR : ici le haut est en position 1)
Objet Range en lecture seule.

expression.End(Direction)

expression Obligatoire. Expression qui renvoie un des objets
répertoriés dans la liste S'applique à.

Direction Argument XlDirection obligatoire. Direction du déplacement.

XlDirection peut être l'une de ces constantes XlDirection.
xlDown
xlToRight
xlToLeft
xlUp (NDLR : ici le haut est en position 4 et, certise sur le gâteau,
dans l'assistant en VBE, l'ordre est xlDown, xlLeft, xlRight et xlUp)

AV a écrit:
Sub zzzzzz()
Columns("A:A").AutoFilter Field:=1, Criteria1:="=*rfa*"
Range("A2", [A65536].End(3)).SpecialCells(xlCellTypeVisible).EntireRow.Delete
[A1].AutoFilter
End Sub

AV

"Lionel Masson" a écrit dans le message news:


Bonjour,
qq'un pourrait-il me dire comment programmer l'annulation de lignes dont la
cellule de la 1ère colonne contient, parmi son texte, des caractères comme
"rfa", qui peut se situer n'importe où dans le texte de la cellule( donc pas
forcément à gauche ni à droite ni au milieu pile poil mais quelque part dans


le

texte et peut-être même imbriqué dans un mot)
merci beaucoup.










Avatar
Pascal Engelmajer
Salut Frédéric,
C'est très clair ainsi.
Cependant quel est la logique (le mécanisme) qui associe la valeur de
l'énumération à sont index ?

J'aurais mieux compris par exemple xlDirection(3) qui ne correspond à
rien...

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

xlDirection est défini comme une énumération (enum). C'est assez
comparable à

une collection dont le nombre de membres serait prédéfini (ici 4). Les
membres

de cette énumération sont des constantes nommées, avec, donc, un nom (xlUp
par

ex) et une valeur (-4162 pour xlUp), ainsi qu'une position dans
l'énumération (3

pour xlUp).
Ainsi, pour faire le tour des 4 coins d'une feuille de calcul, les 3
écritures

ci-dessous sont équivalentes (à recopier dans un module standard et à
lancer

dans Excel, pas VBE, pour profiter du voyage) :

'==================== > Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
' 1 -> xlToLeft
' 2 -> xlToRight
' 3 -> xlUp
' 4 -> xlDown

Range("A1").Select
Sleep 500

'positions
Selection.End(4).Select
Sleep 500
Selection.End(2).Select
Sleep 500
Selection.End(3).Select
Sleep 500
Selection.End(1).Select
Sleep 500

' -4159 -> xlToLeft
' -4161 -> xlToRight
' -4162 -> xlUp
' -4121 -> xlDown

'valeurs
Range("A1").End(-4121).Select
Sleep 500
Selection.End(-4161).Select
Sleep 500
Selection.End(-4162).Select
Sleep 500
Selection.End(-4159).Select
Sleep 500

' et le classique (noms):
Range("A1").End(xlDown).Select
Sleep 500
Selection.End(xlToRight).Select
Sleep 500
Selection.End(xlUp).Select
Sleep 500
Selection.End(xlToLeft).Select

End Sub
'==================== >
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


salut lionel
ne cherche surtout pas à partir de l'aide copiée ci-dessous ce que
signifie le (3) après le End (index si cher à alain) car si tu lui
demandes, il va te dire que c'est l'équivalent de xlUP mais tu
reconnaitras comme moi que ce n'est pas très apparent dans l'aide...
et on voudrait que moi je comprenne ces présentations qui ne sont pas
appuyées sur beaucoup de réflexion...
jps

End, propriété
Voir aussi S'applique à Exemple Spécificités
Cette propriété renvoie un objet Range qui représente la cellule à la
fin de la zone qui contient la plage source. Elle correspond aux
combinaisons de touches FIN+HAUT, FIN+BAS, FIN+GAUCHE ou
FIN+DROITE.(NDLR : ici le haut est en position 1)
Objet Range en lecture seule.

expression.End(Direction)

expression Obligatoire. Expression qui renvoie un des objets
répertoriés dans la liste S'applique à.

Direction Argument XlDirection obligatoire. Direction du déplacement.

XlDirection peut être l'une de ces constantes XlDirection.
xlDown
xlToRight
xlToLeft
xlUp (NDLR : ici le haut est en position 4 et, certise sur le gâteau,
dans l'assistant en VBE, l'ordre est xlDown, xlLeft, xlRight et xlUp)

AV a écrit:
Sub zzzzzz()
Columns("A:A").AutoFilter Field:=1, Criteria1:="=*rfa*"
Range("A2",
[A65536].End(3)).SpecialCells(xlCellTypeVisible).EntireRow.Delete



[A1].AutoFilter
End Sub

AV

"Lionel Masson" a écrit dans le
message news:





Bonjour,
qq'un pourrait-il me dire comment programmer l'annulation de lignes
dont la




cellule de la 1ère colonne contient, parmi son texte, des caractères
comme




"rfa", qui peut se situer n'importe où dans le texte de la cellule(
donc pas




forcément à gauche ni à droite ni au milieu pile poil mais quelque
part dans





le

texte et peut-être même imbriqué dans un mot)
merci beaucoup.














Avatar
Frédéric Sigonneau
Bonsoir,


Cependant quel est la logique (le mécanisme) qui associe la valeur de
l'énumération à sont index ?


Franchement, je ne sais pas si il y a une logique dans cette association. C'est
peut-être le cas, et dans ce cas je ne la connais pas.. D'ailleurs la logique ne
semble pas très évidente non plus pour le choix des valeurs des constantes
(pourquoi "sauter" -4160 et utiliser -4121 ?).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

xlDirection est défini comme une énumération (enum). C'est assez
comparable à

une collection dont le nombre de membres serait prédéfini (ici 4). Les
membres

de cette énumération sont des constantes nommées, avec, donc, un nom (xlUp
par

ex) et une valeur (-4162 pour xlUp), ainsi qu'une position dans
l'énumération (3

pour xlUp).
Ainsi, pour faire le tour des 4 coins d'une feuille de calcul, les 3
écritures

ci-dessous sont équivalentes (à recopier dans un module standard et à
lancer

dans Excel, pas VBE, pour profiter du voyage) :

'==================== > > Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
' 1 -> xlToLeft
' 2 -> xlToRight
' 3 -> xlUp
' 4 -> xlDown

Range("A1").Select
Sleep 500

'positions
Selection.End(4).Select
Sleep 500
Selection.End(2).Select
Sleep 500
Selection.End(3).Select
Sleep 500
Selection.End(1).Select
Sleep 500

' -4159 -> xlToLeft
' -4161 -> xlToRight
' -4162 -> xlUp
' -4121 -> xlDown

'valeurs
Range("A1").End(-4121).Select
Sleep 500
Selection.End(-4161).Select
Sleep 500
Selection.End(-4162).Select
Sleep 500
Selection.End(-4159).Select
Sleep 500

' et le classique (noms):
Range("A1").End(xlDown).Select
Sleep 500
Selection.End(xlToRight).Select
Sleep 500
Selection.End(xlUp).Select
Sleep 500
Selection.End(xlToLeft).Select

End Sub
'==================== > >
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


salut lionel
ne cherche surtout pas à partir de l'aide copiée ci-dessous ce que
signifie le (3) après le End (index si cher à alain) car si tu lui
demandes, il va te dire que c'est l'équivalent de xlUP mais tu
reconnaitras comme moi que ce n'est pas très apparent dans l'aide...
et on voudrait que moi je comprenne ces présentations qui ne sont pas
appuyées sur beaucoup de réflexion...
jps

End, propriété
Voir aussi S'applique à Exemple Spécificités
Cette propriété renvoie un objet Range qui représente la cellule à la
fin de la zone qui contient la plage source. Elle correspond aux
combinaisons de touches FIN+HAUT, FIN+BAS, FIN+GAUCHE ou
FIN+DROITE.(NDLR : ici le haut est en position 1)
Objet Range en lecture seule.

expression.End(Direction)

expression Obligatoire. Expression qui renvoie un des objets
répertoriés dans la liste S'applique à.

Direction Argument XlDirection obligatoire. Direction du déplacement.

XlDirection peut être l'une de ces constantes XlDirection.
xlDown
xlToRight
xlToLeft
xlUp (NDLR : ici le haut est en position 4 et, certise sur le gâteau,
dans l'assistant en VBE, l'ordre est xlDown, xlLeft, xlRight et xlUp)

AV a écrit:
Sub zzzzzz()
Columns("A:A").AutoFilter Field:=1, Criteria1:="=*rfa*"
Range("A2",
[A65536].End(3)).SpecialCells(xlCellTypeVisible).EntireRow.Delete



[A1].AutoFilter
End Sub

AV

"Lionel Masson" a écrit dans le
message news:





Bonjour,
qq'un pourrait-il me dire comment programmer l'annulation de lignes
dont la




cellule de la 1ère colonne contient, parmi son texte, des caractères
comme




"rfa", qui peut se situer n'importe où dans le texte de la cellule(
donc pas




forcément à gauche ni à droite ni au milieu pile poil mais quelque
part dans





le

texte et peut-être même imbriqué dans un mot)
merci beaucoup.