Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 sélection 1ère ligne vide sans annuler le filtre

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à toutes et à tous,

Malgré mes recherches et tentatives, je n'arrive pas à résoudre mon besoin suivant,
Le contexte :
Je filtre en sélectionnant un critère "cellule A3". Pour l'exemple, j'ai 240 lignes au total.
Mon besoin
Sélectionner la ligne après la dernière ligne NON VIDE, c’est-à-dire à partir de la ligne 241
en gardant les lignes filtrées SANS ANNULER LE FILTRAGE
Je ne suis pas certain que ce soit possible !
Auriez-vous la solution ? ça m'arrangerait bien
Je joins un fichier test.
Avec mes remerciements,
Je vous souhaite une belle journée,
Amicalement,
lionel
 

Pièces jointes

  • filtre_test.xlsm
    32.8 KB · Affichages: 8

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Je ne pige pas bien le truc, mais tu peux essayer quelque chose comme ceci :

ActiveSheet.Range("A" & Rows.Count).End(xlUp).Select
Application.SendKeys ("{DOWN}")


ou

ActiveSheet.Range("A5").End(xlDown).Select
Application.SendKeys ("{DOWN}")
 

patricktoulon

XLDnaute Barbatruc
bonsoir

VB:
 With ActiveSheet.Range("blablabla")
        .AutoFilter Field:=1, Criteria1:=trucbidule
        .Cells(.Cells.Count).Offset(1).Select
    End With

et si c'est post traitement (en dehors de la macro filter)
VB:
With Worksheets(1).AutoFilter.Range: .Cells(.Cells.Count).Offset(1).Select: End With
épicétou
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil

[Confinement- jour 1]
VB:
Sub Confi_ture1(Optional Covid19MakeMeDumb)
With ActiveSheet
pf = Split(.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Address, "$")
MsgBox pf(UBound(pf)) + 1
End With
End Sub
Reste la question du pourquoi de la chose
Si on applique un filtre, pour chercher une cellule qui ne réponds pas au critère du filtre, c'est qu'elle n'a intrinsèquement pas d’intérêt puisque non filtrée, non ?
[/Confinement - jour 1]
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Marcel, Patrick, JM, le Forum,

Merci à vous pour m'avoir répondu
@Marcel32
Tes codes sélectionnent bien la 1ère ligne vide (241) cellule A ... mais lol, je voudrais écrire dans la cellule A241 et ça écrit dans la dernière ligne filtrée
@patrick ... pareil

JM
Ton code m'affiche un msg avec le chiffre 175 qui ne correspond pas à la ligne à atteindre et ce n'est pas un msg dont j'ai besoin mais de la sélection de A241 en gardant les lignes filtrées.
PS : c'est qu'elle n'a intrinsèquement pas d’intérêt puisque non filtrée, non ? : ce serait trop long à expliquer mais SI, dans mon procès, le filtrage est bon et doit être conservé. Et il me faut atteindre et écrire dans la 1ère ligne dans NON vide (filtrage maintenu).

Je remets le fichier test à jour de vos codes
Je continue mes recherches.
lionel
 

Pièces jointes

  • filtre_test.xlsm
    34.8 KB · Affichages: 4
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Un barbatruc (ce que tu es) sait qu'une MsgBox sert souvent pour faire des tests.
Un barbatruc saura donc adapter le code en conséquence
Un barbatruc sait aussi lire entre les lignes
(Et aura par exemple remarqué le nom que j'ai donné à ma macro )
 

Staple1600

XLDnaute Barbatruc
Re,

•>Arthour973
Voici pourquoi je trouve 17
(et si on prend cette exemple , tu aurais voulu 28, non ?)
[Confinement - jour 1 - m5]
VB:
Sub CaptainSayWhat()
[A1:D1].Formula = "=""ITEM_""&COLUMN()": [A2:D27] = "=ROW()*COLUMN()"
[A1].CurrentRegion = [A1].CurrentRegion.Value
[C8:C16] = 1600
ActiveSheet.Range("$A$1:$D$27").AutoFilter Field:=3, Criteria1:="1600"
End Sub
Sub Confi_ture1(Optional Covid19MakeMeDumb)
With ActiveSheet
pf = Split(.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Address, "$")
MsgBox pf(UBound(pf)) + 1
End With
End Sub
[/Confinement - jour 1 - m5]
A tester sur une feuille vierge en lançant d'abord la première macro.
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
JM, avec toi c'est trop compliqué et trop de "parlottes"
Je n'ai pas le temps, même maintenant, de philosopher (sur un barbatruc), et d'expliquer les raisons de mon besoin ...... de faire des tests sur fichiers vierges etc....

J'ai, je crois, émis un besoin clairement expliqué avec un fichier test à l'appui sur lequel je travaille !

PS : en toute amitié je te précise que tu n'es pas obligé de répondre à mes demandes
lionel,
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Avant de sortir tes piques inutiles, lis le message#7
et fais ce simple test

PS: Je te ne réponds pas à tes demandes.
Je réponds à une question telle que je l'ai interprétée. Ni plus, ni moins.


[en toute amitié]
Et pour les caca nerveux, il y a les MP
[en toute amitié]
 

Staple1600

XLDnaute Barbatruc
Re,

•>arthour973
Je ne réponds pas à la question
Mais je poste juste une suggestion (j'ai le droit?)
En théorie, ceci devrait suffire, non ?
[Confinement - jour 1 - m6]
VB:
Sub critere1()
If [a3] <> "" Then Rows(4).AutoFilter 1, [a3].Value2
End Sub
[/Confinement - jour 1 - m6]
 

Staple1600

XLDnaute Barbatruc
Re

•>arthour973
Alors? Pas de commentaires sur le code proposé au message#10?
Je l'ai pourtant écrit et testé sur ton fichier du post#5
Et le résultat de mon test: cellule A241
C'est le but visé ou pas?
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour JM,
Merci pour ton code post #10
Il fonctionne et c'est super si on sélectionne en A3 "OK RdV Bientôt"
Malheureusement, ça ne fonctionne plus si on sélectionne un autre texte ou ça écrit trop bas.
Il faudrait que ça écrive toujours sur la ligne 241, quel que soit le texte sélectionné.
Mais merci vraiment pour ce code c'est déjà une belle avancée
Je remets le fichier avec ton code et je continue mes recherches en partant de ton code auquel je ne comprends rien lol
lionel,
PS : t'as quand même bien fait de me répondre et je t'en remercie
 

Pièces jointes

  • filtre_test_JM.xlsm
    35.5 KB · Affichages: 1

Staple1600

XLDnaute Barbatruc
Re

Comme ceci, cela donne quoi?
VB:
Sub Pêche_à_la_Ligne_II()
Dim ToGo As Range, Ligne&
Set ToGo = Cells(Rows.Count, 1).End(3)(2)
Ligne = ToGo.Row + (241 - ToGo.Row)
Application.Goto Cells(Ligne, 1), True
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

En me remettant un neurone dans le cortex
Est-ce que ceci ne suffirait-il pas?
VB:
Sub Pêche_à_la_Ligne_III()
Application.Goto Cells(ActiveSheet.UsedRange.Rows.Count + 1, 1), True
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…