Pb :copier/coller ligne active + fonction end xl down

Salut a tous

après plusieurs recherche sur internet, divers forum et des exemple tester par dizaines...

je m'en remet à vous pour mon petit pb:

Tout d'abord (je suis en feuil1)

je sélectionne ma liste dans la colonne A (end xl.down)

je compare avec la colonne A si la chaine recherché est existante (Instr,val,vcellule)

si c est le cas,

je dois la copier la ligne active dans la 1ère ligne libre de ma feuil2 (copier/coller)

puis j'effectue ceci avec toute les cellules de ma sélection: (Création d'une boucle)

(for each vcellule in selection....Next)

Je n'arrive pas a copier coller.... Si je n'ai pas d'erreur en tout genre, je n'ai que des lignes blanches

Le but final est d'alimenter un listbox (Filtrer une liste et l'afficher)

Ps autre point qui alourdit mon programme:

j'incrémente une liste qui peut être vide à la base. le pb c est qu'avec la fonction:

end xl down. mes trois premières lignes doivent être remplie sinon sa bug.

Pour palier a sa je vérifie si la première est vide (si ui j'inscris valeur)

sinon regarde deuxième ligne (si oui je regarde si ma valeur est identique que la premiere ligne si oui msgbox si non j'inscris val)

si troisième ligne vide (je sélectionne plage et vérifie avec une boucle for si valeur déjà existante si oui msgbox si non j'inscris ma val)

Bref beaucoup ligne pour peu de chose...

Quelqu'un connait il une solution pour sélectionner une liste avec xl up

merci d'avance pour ces pb

sebnormand

bonsoir,

peux-tu nous mettre ton fichier avec ton code ?

aucun pb il est complexe ^^

je te le joins comment??

utilise l'option ajouter fichiers joints dans le formulaire de réponse (limité à 300k) sinon lire le message "à lire avant de poster" dans le forum excel vba.

c était surtout le bouton que je n'avais vu ^^

32films.xlsm (31.28 Ko)

bonsoir,

essaie ces corrections

Private Sub bvalid2_Click()
vfilm = tfilm
If (tfilm <> "" And crgenre.Visible = False And cracteur.Visible = False And fannee.Visible = False And fmin.Visible = False And crdisque.Visible = False) Then
    Sheets("Film").Select
    vder = Range("A2").End(xlDown).Address
    Range("A1:" & vder).Select 'je selectionne liste film
    For Each vcellule In Selection
        If (InStr(vfilm, vcellule)) Then
        'MsgBox "ok" & vcellule 'test chemin

        Rows(vcellule.Row).Select
        Selection.Copy Destination:=Sheets("Filtre").Range("A" & Sheets("filtre").Range("A" & Rows.Count).End(xlUp).Row + 1)
        Sheets("Film").Select
        End If
    Next
        vltab = 1
    Menurf.Hide
    Menulf.Show
End If
End Sub

Génial !!!!

sa marche d'enfer

dire que je n’étais pas loin de la vérité^^

merci beaucoup

je le mettrai sur le site une fois finis cela peut peut être intéresser du monde par rapport aux différentes fonctions utilisées

Salut j'ai une dernière question

As tu trouver pour améliore mon programme avec xl up??

Je ne comprend pas la syntaxe de ta ligne de code:

Rows(vcellule.Row).Select

sebnormand a écrit :

Salut j'ai une dernière question

As-tu trouvé pour améliorer mon programme avec xl up??

voir ci-dessous
Private Sub bvalid2_Click()
vfilm = tfilm
If (tfilm <> "" And crgenre.Visible = False And cracteur.Visible = False And fannee.Visible = False And fmin.Visible = False And crdisque.Visible = False) Then
    vder =sheets("film"). Range("A" & rows.count).End(xlup).Address
 'je selectionne liste film
   For Each vcellule In  Range("A1:" & vder)
        If (InStr(vfilm, vcellule)) Then
        Rows(vcellule.Row).Copy Destination:=Sheets("Filtre").Range("A" & Sheets("filtre").Range("A" & Rows.Count).End(xlUp).Row + 1)
        Sheets("Film").Select
        End If
    Next
        vltab = 1
    Menurf.Hide
    Menulf.Show
End If
End Sub

Je ne comprend pas la syntaxe de ta ligne de code:

Rows(vcellule.Row).Select

tu veux copier la ligne contenant le cellule dans laquelle tu as trouvé le film recherché

vcellule est la cellule qui contient le fillm recherché

vcellule.row est le numérode ligne de cette cellule

rows(vcellule.row).select selectionne cette ligne, on aurait pû aussi écrire vcellule.entirerow.select

Merci pour toutes ces infos

Rechercher des sujets similaires à "copier coller ligne active fonction end down"