Selectionner l'avant-dernière cellule de la colonne qui contient le texte
13 réponses
ManBas
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
En supposant que j'ai compris... Tu remplaces A:A par la colonne de ton application..
Sub test() Dim DerLig As Long DerLig = Range("A:A").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Range("A" & DerLig).Offset(-1).Select End Sub
"ManBas" a écrit dans le message de news:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
En supposant que j'ai compris...
Tu remplaces A:A par la colonne de ton application..
Sub test()
Dim DerLig As Long
DerLig = Range("A:A").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Range("A" & DerLig).Offset(-1).Select
End Sub
"ManBas" <nonospamMaBas@wanadoo.fr> a écrit dans le message de news:
eiWUcwJDHHA.1016@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
En supposant que j'ai compris... Tu remplaces A:A par la colonne de ton application..
Sub test() Dim DerLig As Long DerLig = Range("A:A").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Range("A" & DerLig).Offset(-1).Select End Sub
"ManBas" a écrit dans le message de news:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Elliac
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Bonjour
Sub Toto()
Dim n As Integer
Range("a1").Select
n = Application.CountIf(Columns(1), "bonjour")
For cpt = 1 To n - 1
Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Next
End Sub
Camille
"ManBas" wrote:
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
ManBas
Bonjour MichDenis, Merci de ton aide. Ben ça le fait pas... ça sélectionne l'avant-dernière ligne tout court (j'ai remplacé * par le texte)
"MichDenis" a écrit dans le message de news:
En supposant que j'ai compris... Tu remplaces A:A par la colonne de ton application..
Sub test() Dim DerLig As Long DerLig = Range("A:A").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Range("A" & DerLig).Offset(-1).Select End Sub
"ManBas" a écrit dans le message de news:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Bonjour MichDenis,
Merci de ton aide.
Ben ça le fait pas...
ça sélectionne l'avant-dernière ligne tout court (j'ai remplacé * par le
texte)
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
OqXD82JDHHA.4928@TK2MSFTNGP02.phx.gbl...
En supposant que j'ai compris...
Tu remplaces A:A par la colonne de ton application..
Sub test()
Dim DerLig As Long
DerLig = Range("A:A").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Range("A" & DerLig).Offset(-1).Select
End Sub
"ManBas" <nonospamMaBas@wanadoo.fr> a écrit dans le message de news:
eiWUcwJDHHA.1016@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les
2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
Bonjour MichDenis, Merci de ton aide. Ben ça le fait pas... ça sélectionne l'avant-dernière ligne tout court (j'ai remplacé * par le texte)
"MichDenis" a écrit dans le message de news:
En supposant que j'ai compris... Tu remplaces A:A par la colonne de ton application..
Sub test() Dim DerLig As Long DerLig = Range("A:A").Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row Range("A" & DerLig).Offset(-1).Select End Sub
"ManBas" a écrit dans le message de news:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
ManBas
Merci Camille, Et non plus. Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Merci Camille,
Et non plus.
Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" <Elliac@discussions.microsoft.com> a écrit dans le message de news:
07A3164B-3774-45DD-9377-731D3755EF4F@microsoft.com...
Bonjour
Sub Toto()
Dim n As Integer
Range("a1").Select
n = Application.CountIf(Columns(1), "bonjour")
For cpt = 1 To n - 1
Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Next
End Sub
Camille
"ManBas" wrote:
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la
dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre
les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
Merci Camille, Et non plus. Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
MichDenis
Si dans ta dernière cellule, il y a toujours le mot "Bonjour" remplace dans la procédure : What:="*" par What:="Bonjour"
Si dans ta dernière cellule, il y a toujours le mot "Bonjour"
remplace dans la procédure : What:="*" par What:="Bonjour"
Si dans ta dernière cellule, il y a toujours le mot "Bonjour" remplace dans la procédure : What:="*" par What:="Bonjour"
Ellimac
Tu indiques dans ton message que la dernière cellule de la colonne A contient ton libellé et que tu veux atteindre l'avant dernière cellule contenant ce libellé !!!
Camille
"ManBas" a écrit dans le message de news:
Merci Camille, Et non plus. Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Tu indiques dans ton message que la dernière cellule de la colonne A
contient ton libellé et que tu veux atteindre l'avant dernière cellule
contenant ce libellé !!!
Camille
"ManBas" <nonospamMaBas@wanadoo.fr> a écrit dans le message de news:
uaAa2GKDHHA.2328@TK2MSFTNGP02.phx.gbl...
Merci Camille,
Et non plus.
Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" <Elliac@discussions.microsoft.com> a écrit dans le message de
news: 07A3164B-3774-45DD-9377-731D3755EF4F@microsoft.com...
Bonjour
Sub Toto()
Dim n As Integer
Range("a1").Select
n = Application.CountIf(Columns(1), "bonjour")
For cpt = 1 To n - 1
Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Next
End Sub
Camille
"ManBas" wrote:
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la
dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre
les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
Tu indiques dans ton message que la dernière cellule de la colonne A contient ton libellé et que tu veux atteindre l'avant dernière cellule contenant ce libellé !!!
Camille
"ManBas" a écrit dans le message de news:
Merci Camille, Et non plus. Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
ManBas
En regardant la base, il n'y a pas plus de 8 lignes entre le dernier et l'avant dernier "bonjour". Donc on peut peut-être faire une boucle sur une plage de cellules qui commencerait au-dessus du dernier "bonjour": la boucle va forcément s'arreter sur l'avant-dernier ! Mais j'ai un problème de "grammaire" VBA:
Sub cherche_valeur() Dim Valtext As String Dim ligne Dim ad Dim adHuit Valtext="bonjour" Range("A65536").End(xlUp).Offset(-1, 0).Select 'on se met sur la cellule au-dessus du dernier bonjour ligne = ActiveCell.Row ad = ActiveCell.Address ligneHuit = ligne - 8 ' l'avant dernier bonjour ne peut pas etre au-dela de 8 lignes Range("A" & ligneHuit).Select adHuit = ActiveCell.Address MsgBox " plage entre " & ad & ":" & adHuit For Each c In [ad:adHuit] 'et c'est là que ce n'est pas bien écrit !!! et que ça plante !!! If c Like Valtest Then c.Select Exit Sub End If Next
Qu'en pensez-vous ?
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
En regardant la base, il n'y a pas plus de 8 lignes entre le dernier et
l'avant dernier "bonjour".
Donc on peut peut-être faire une boucle sur une plage de cellules qui
commencerait au-dessus du dernier "bonjour": la boucle va forcément
s'arreter sur l'avant-dernier !
Mais j'ai un problème de "grammaire" VBA:
Sub cherche_valeur()
Dim Valtext As String
Dim ligne
Dim ad
Dim adHuit
Valtext="bonjour"
Range("A65536").End(xlUp).Offset(-1, 0).Select 'on se met sur la cellule
au-dessus du dernier bonjour
ligne = ActiveCell.Row
ad = ActiveCell.Address
ligneHuit = ligne - 8 ' l'avant dernier bonjour ne peut pas etre au-dela de
8 lignes
Range("A" & ligneHuit).Select
adHuit = ActiveCell.Address
MsgBox " plage entre " & ad & ":" & adHuit
For Each c In [ad:adHuit] 'et c'est là que ce n'est pas bien écrit !!! et
que ça plante !!!
If c Like Valtest Then
c.Select
Exit Sub
End If
Next
Qu'en pensez-vous ?
"Elliac" <Elliac@discussions.microsoft.com> a écrit dans le message de news:
07A3164B-3774-45DD-9377-731D3755EF4F@microsoft.com...
Bonjour
Sub Toto()
Dim n As Integer
Range("a1").Select
n = Application.CountIf(Columns(1), "bonjour")
For cpt = 1 To n - 1
Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Next
End Sub
Camille
"ManBas" wrote:
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la
dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre
les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
En regardant la base, il n'y a pas plus de 8 lignes entre le dernier et l'avant dernier "bonjour". Donc on peut peut-être faire une boucle sur une plage de cellules qui commencerait au-dessus du dernier "bonjour": la boucle va forcément s'arreter sur l'avant-dernier ! Mais j'ai un problème de "grammaire" VBA:
Sub cherche_valeur() Dim Valtext As String Dim ligne Dim ad Dim adHuit Valtext="bonjour" Range("A65536").End(xlUp).Offset(-1, 0).Select 'on se met sur la cellule au-dessus du dernier bonjour ligne = ActiveCell.Row ad = ActiveCell.Address ligneHuit = ligne - 8 ' l'avant dernier bonjour ne peut pas etre au-dela de 8 lignes Range("A" & ligneHuit).Select adHuit = ActiveCell.Address MsgBox " plage entre " & ad & ":" & adHuit For Each c In [ad:adHuit] 'et c'est là que ce n'est pas bien écrit !!! et que ça plante !!! If c Like Valtest Then c.Select Exit Sub End If Next
Qu'en pensez-vous ?
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
ManBas
C'était fait. J'ai envoyé un message entre temps. "MichDenis" a écrit dans le message de news: %
Si dans ta dernière cellule, il y a toujours le mot "Bonjour" remplace dans la procédure : What:="*" par What:="Bonjour"
C'était fait. J'ai envoyé un message entre temps.
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23yfFEKKDHHA.3524@TK2MSFTNGP06.phx.gbl...
Si dans ta dernière cellule, il y a toujours le mot "Bonjour"
remplace dans la procédure : What:="*" par What:="Bonjour"
C'était fait. J'ai envoyé un message entre temps. "MichDenis" a écrit dans le message de news: %
Si dans ta dernière cellule, il y a toujours le mot "Bonjour" remplace dans la procédure : What:="*" par What:="Bonjour"
ManBas
Oui. ? J'ai envoyé un autre message dans l'intervalle, avec un essai par une boucle, mais ma "grammaire" n'est pas bonne!
"Ellimac" a écrit dans le message de news:
Tu indiques dans ton message que la dernière cellule de la colonne A contient ton libellé et que tu veux atteindre l'avant dernière cellule contenant ce libellé !!!
Camille
"ManBas" a écrit dans le message de news:
Merci Camille, Et non plus. Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Oui.
?
J'ai envoyé un autre message dans l'intervalle, avec un essai par une
boucle, mais ma "grammaire" n'est pas bonne!
"Ellimac" <ellimac_cremelier@hotmail.com> a écrit dans le message de news:
OQiVRLKDHHA.652@TK2MSFTNGP02.phx.gbl...
Tu indiques dans ton message que la dernière cellule de la colonne A
contient ton libellé et que tu veux atteindre l'avant dernière cellule
contenant ce libellé !!!
Camille
"ManBas" <nonospamMaBas@wanadoo.fr> a écrit dans le message de news:
uaAa2GKDHHA.2328@TK2MSFTNGP02.phx.gbl...
Merci Camille,
Et non plus.
Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" <Elliac@discussions.microsoft.com> a écrit dans le message de
news: 07A3164B-3774-45DD-9377-731D3755EF4F@microsoft.com...
Bonjour
Sub Toto()
Dim n As Integer
Range("a1").Select
n = Application.CountIf(Columns(1), "bonjour")
For cpt = 1 To n - 1
Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Next
End Sub
Camille
"ManBas" wrote:
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la
dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi
le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre
les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
Oui. ? J'ai envoyé un autre message dans l'intervalle, avec un essai par une boucle, mais ma "grammaire" n'est pas bonne!
"Ellimac" a écrit dans le message de news:
Tu indiques dans ton message que la dernière cellule de la colonne A contient ton libellé et que tu veux atteindre l'avant dernière cellule contenant ce libellé !!!
Camille
"ManBas" a écrit dans le message de news:
Merci Camille, Et non plus. Il reste des tas de "bonjour" plus bas dans la colonne.
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Elliac
Bonjour,
Une boucle de type compteur devrait suffire : Sub Test() Range("A65536").End(xlUp).Offset(-1, 0).Select For cpt = 1 To 8 If ActiveCell = "bonjour" Then End ActiveCell.Offset(-1).Select Next End Sub
Camille
"ManBas" wrote:
En regardant la base, il n'y a pas plus de 8 lignes entre le dernier et l'avant dernier "bonjour". Donc on peut peut-être faire une boucle sur une plage de cellules qui commencerait au-dessus du dernier "bonjour": la boucle va forcément s'arreter sur l'avant-dernier ! Mais j'ai un problème de "grammaire" VBA:
Sub cherche_valeur() Dim Valtext As String Dim ligne Dim ad Dim adHuit Valtext="bonjour" Range("A65536").End(xlUp).Offset(-1, 0).Select 'on se met sur la cellule au-dessus du dernier bonjour ligne = ActiveCell.Row ad = ActiveCell.Address ligneHuit = ligne - 8 ' l'avant dernier bonjour ne peut pas etre au-dela de 8 lignes Range("A" & ligneHuit).Select adHuit = ActiveCell.Address MsgBox " plage entre " & ad & ":" & adHuit For Each c In [ad:adHuit] 'et c'est là que ce n'est pas bien écrit !!! et que ça plante !!! If c Like Valtest Then c.Select Exit Sub End If Next
Qu'en pensez-vous ?
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions
Bonjour,
Une boucle de type compteur devrait suffire :
Sub Test()
Range("A65536").End(xlUp).Offset(-1, 0).Select
For cpt = 1 To 8
If ActiveCell = "bonjour" Then End
ActiveCell.Offset(-1).Select
Next
End Sub
Camille
"ManBas" wrote:
En regardant la base, il n'y a pas plus de 8 lignes entre le dernier et
l'avant dernier "bonjour".
Donc on peut peut-être faire une boucle sur une plage de cellules qui
commencerait au-dessus du dernier "bonjour": la boucle va forcément
s'arreter sur l'avant-dernier !
Mais j'ai un problème de "grammaire" VBA:
Sub cherche_valeur()
Dim Valtext As String
Dim ligne
Dim ad
Dim adHuit
Valtext="bonjour"
Range("A65536").End(xlUp).Offset(-1, 0).Select 'on se met sur la cellule
au-dessus du dernier bonjour
ligne = ActiveCell.Row
ad = ActiveCell.Address
ligneHuit = ligne - 8 ' l'avant dernier bonjour ne peut pas etre au-dela de
8 lignes
Range("A" & ligneHuit).Select
adHuit = ActiveCell.Address
MsgBox " plage entre " & ad & ":" & adHuit
For Each c In [ad:adHuit] 'et c'est là que ce n'est pas bien écrit !!! et
que ça plante !!!
If c Like Valtest Then
c.Select
Exit Sub
End If
Next
Qu'en pensez-vous ?
"Elliac" <Elliac@discussions.microsoft.com> a écrit dans le message de news:
07A3164B-3774-45DD-9377-731D3755EF4F@microsoft.com...
Bonjour
Sub Toto()
Dim n As Integer
Range("a1").Select
n = Application.CountIf(Columns(1), "bonjour")
For cpt = 1 To n - 1
Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Next
End Sub
Camille
"ManBas" wrote:
Bonjour à tous,
Dans une table-base de données, après la fermeture du userform la
dernière
cellule de la colonne A contient toujours le texte "bonjour" (par ex).
Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le
texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre
les 2
cellules.
Comment l'écrire en VBA?
Merci de vos suggestions
Une boucle de type compteur devrait suffire : Sub Test() Range("A65536").End(xlUp).Offset(-1, 0).Select For cpt = 1 To 8 If ActiveCell = "bonjour" Then End ActiveCell.Offset(-1).Select Next End Sub
Camille
"ManBas" wrote:
En regardant la base, il n'y a pas plus de 8 lignes entre le dernier et l'avant dernier "bonjour". Donc on peut peut-être faire une boucle sur une plage de cellules qui commencerait au-dessus du dernier "bonjour": la boucle va forcément s'arreter sur l'avant-dernier ! Mais j'ai un problème de "grammaire" VBA:
Sub cherche_valeur() Dim Valtext As String Dim ligne Dim ad Dim adHuit Valtext="bonjour" Range("A65536").End(xlUp).Offset(-1, 0).Select 'on se met sur la cellule au-dessus du dernier bonjour ligne = ActiveCell.Row ad = ActiveCell.Address ligneHuit = ligne - 8 ' l'avant dernier bonjour ne peut pas etre au-dela de 8 lignes Range("A" & ligneHuit).Select adHuit = ActiveCell.Address MsgBox " plage entre " & ad & ":" & adHuit For Each c In [ad:adHuit] 'et c'est là que ce n'est pas bien écrit !!! et que ça plante !!! If c Like Valtest Then c.Select Exit Sub End If Next
Qu'en pensez-vous ?
"Elliac" a écrit dans le message de news:
Bonjour
Sub Toto() Dim n As Integer Range("a1").Select n = Application.CountIf(Columns(1), "bonjour") For cpt = 1 To n - 1 Cells.Find(What:="bonjour", After:¬tiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:úlse, SearchFormat:úlse).Activate Next End Sub
Camille
"ManBas" wrote:
Bonjour à tous, Dans une table-base de données, après la fermeture du userform la dernière cellule de la colonne A contient toujours le texte "bonjour" (par ex). Je voudrais sélectionner l'avant-dernière cellule qui contienne aussi le texte "bonjour" en sachant qu'il n'y a pas de séquence régulière entre les 2 cellules. Comment l'écrire en VBA? Merci de vos suggestions