récupérer cellule après un filtre en vba

zesuila

XLDnaute Occasionnel
Bonjour, bon le titre encore une fois n'est pas clair ! :eek:
Voilà mon soucis:
comment faire après avoir fait un filtre automatique(par vba et avec un userform), pour accéder à une cellule précise de ce filtre.
Par exemple, après avoir filtré, c'est la ligne 4 qui apparait en premier dans mon onglet "archives". Comment faire en vba pour mettre une valeur précise dans la cellule C4 (par exemple).

merci d'avance
 

zesuila

XLDnaute Occasionnel
Re : récupérer cellule après un filtre en vba

comprend pas , j'ai envoyé le fichier mais il est pas parti !!!
le voilà
 

Pièces jointes

  • GESTION ED.zip
    21.3 KB · Affichages: 66
  • GESTION ED.zip
    21.3 KB · Affichages: 64
  • GESTION ED.zip
    21.3 KB · Affichages: 79

zesuila

XLDnaute Occasionnel
Re : récupérer cellule après un filtre en vba

Spitnolan08 à dit:
Re,

Une sol de bidouille...
Code:
Sub Test()
'***Pour une liste en A1:C16 et une recherche sur la colonne 1 de "bb"
    Range("A1:C16").Select
    Selection.AutoFilter Field:=1, Criteria1:="bb"
    SendKeys "{DOWN}"
    Cells(ActiveCell.Row, "C") = TaValeurPrécise
End Sub
Cordialement

Comme Wilfried;)

MAis là il ne faut pas de critère précis dans le code (ici : bb) vu que les N° de bon changent à chaque fois pour le filtre
 

wilfried_42

XLDnaute Barbatruc
Re : récupérer cellule après un filtre en vba

re:

Code:
Private Sub CommandButton5_Click()
    Dim valeur As String ' déclaration de Valeur
    valeur = InputBox("Quel N° de BON  ?")
    If Not AutoFilterMode Then
'on vérifie s'il n'y a pas déjà un filtre automatique
       Range("F1").AutoFilter Field:=6, Criteria1:="=" & valeur, Operator:=xlAnd
' application du filtre
    End If
[COLOR="Red"]    Range("E" & Range("A65535").End(xlUp).Row).Select
    SendKeys "{UP}"[/COLOR]
End Sub

Tu peux selectionner n'importe quelle cellule, quand tu appelles un N° de bon, la cellule active devient automatiquement la cellule de la colonne E derniere ligne
 

zesuila

XLDnaute Occasionnel
Re : récupérer cellule après un filtre en vba

Ca y est !! Il manquait simplement
ActiveCell.Value = TextBox1.Value dans mon code.
Merci beaucoup Wilfried42 (et les autres bien sûr)
pendant que j'y suis, comment faire pour réupérer dans ma list box le code et le nom du client par rapport au filtre efféctué
 

zesuila

XLDnaute Occasionnel
Re : récupérer cellule après un filtre en vba

Bonjour Wilfried42
Bon terminant ma journée à 14 h je ne pouvais pas te répondre hier.
J'ai testé ton dernier code ce matin (celui pour entrer également le code et nom) mais cela ne fonctionne pas. Il me met la quantité dans le combobox !
Comme tu as pu t'en douter, je suis un novice (bon non un peu plus quand même depuis que je fréquente quasiment tous les jours ce forum) mais ne peut on passer par un offset - mais là pour moi c'est encore du chinois !!
Merci
 

wilfried_42

XLDnaute Barbatruc
Re : récupérer cellule après un filtre en vba

re:

selon le fichier que tu as posté, le code client est en colonne A et son nom en colonne B

donc je confirme, selon le fichier recu

Code:
Range("E" & Range("A65535").End(xlUp).Row).Select
SendKeys "{UP}"
combobox1 = range("A" & activecell.row)
listbox1 = range("B" & activecell.row)

activecell est la cellule ou on met la quantite ----> activecell donne le n° de la ligne
Range("A" & activecell.row) ---> Colonne A de la bonne ligne --> N° de client
Range("B" & activecell.row) ---> Colonne B de la bonne ligne --> Nom du client

Par contre, je ne comprends pas le besoin du ComboBox personnelement un textbox, voire un label serait suffisant
Pareil pour le nom du client

@ te lire
 

zesuila

XLDnaute Occasionnel
Re : récupérer cellule après un filtre en vba

Super !
En mettant des textbox cela fonctionne :D
je pense que cela ne fonctionnait pas car.... mes combo et listbox n'avait pas les noms de ton (mon)exemple :rolleyes: mais je n'ai pas essayé avec les combo

Encore merci
 

zesuila

XLDnaute Occasionnel
Re : récupérer cellule après un filtre en vba

et si je veux faire l'inverse : ecrire dans une cellule précise

Range("F" & Range("A65535").End(xlUp).Row).Select
SendKeys "{UP}"
les 2 lignes pour le code et le nom qui apparaissent sur la ligne filtrée
TextBox3 = Range("A" & ActiveCell.Row)
TextBox4 = Range("B" & ActiveCell.Row)

et là une date à entrer dans la colonne D filtrée :
textbox5 = ???????

 

Discussions similaires

Réponses
40
Affichages
982

Statistiques des forums

Discussions
312 370
Messages
2 087 690
Membres
103 640
dernier inscrit
So pizza