Couper/coller un résultat sur un filtre sous EXCEL en macro.
windhunter56
Messages postés16Date d'inscriptionjeudi 23 octobre 2008StatutMembreDernière intervention 5 mai 2013
-
17 avril 2009 à 17:13
windhunter56
Messages postés16Date d'inscriptionjeudi 23 octobre 2008StatutMembreDernière intervention 5 mai 2013
-
17 avril 2009 à 22:53
Windhunter56
Bonjour à tous,
je solicite une aide pour mon problème sous Excel pour élaborer ma macro.
J'ai une feuille1 (données) sur laquelle il y a deux colonnes (noms et prénoms).
Une feuille2 avec la cellulle A1 (le nom que je recherche)qui doit servir de référence et la feuille3 sur laquelle doit être copier le résultat de mon extraction de la feuille1.
Quand je dis extraction, je veux dire couper le résultat de la feuille1 et le copier dans la feuille3.
J'ai essayé plusieurs réponse sur divers sites mais sans arriver à mon but final.
La version ,je le fais manuellement en même temps que j'enregistre ne régle pas le problème de la sélection du résultat.
J'espère qu'une personne pourra m'aider.
Merci.
Sub ListeSansDoublon(ByRef MaPlage As Range, ByRef MaCombobox As ComboBox)
' on commence par verifier ce qui a été passé en parametre
If Not MaCombobox Is Nothing And Not MaPlage Is Nothing Then
If TypeOf MaCombobox Is ComboBox Then
Application.ScreenUpdating = False
' utilisation du filre de donnée élaboré
MaPlage.AdvancedFilter Action:=xlFilterInPlace, Unique:=True
' le filtre élaboré a besoin d'un colonne de donnée avec etiquette
' donc pour ne pas mettre cette etiquette dans la liste on se decale d'une ligne vers le bas
Set MaPlage = MaPlage.Offset(1, 0).Resize(MaPlage.Rows.Count - 1, 1)
' les données en doubles on été cachées par le filtre
' il suffit donc de ne recupérer que ce qui est visible
Set MaPlage = MaPlage.SpecialCells(xlCellTypeVisible)
' comme on ne peut pas attribuer les valeurs d'une plage composée de plusieurs area a une combobox
' on vas contourner le probleme par un copy paste des valeurs sur une plage temporaire
MaPlage.Copy
Range("Z1").PasteSpecial Paste:=xlPasteValues ' ici la plage temporaire est la colonne Z
MaCombobox.List() = Selection.Value
' on desactive le filtre
ActiveSheet.ShowAllData
' on efface la zone temporaire
Selection.ClearContents
' on centre l'affichage sur la plage d'origine
MaPlage.Cells(1, 1).Activate
Application.ScreenUpdating = True
End If
End If
End Sub
Evidemment il te faudrat l'adapter a ton besoin mais tout y est.
La seul chose d'on tu n'as pas besoin est la partie copy/paste dans une zone temporaire
windhunter56
Messages postés16Date d'inscriptionjeudi 23 octobre 2008StatutMembreDernière intervention 5 mai 2013 17 avril 2009 à 22:53
Windhunter56
Euh....! T'as pas plus simple?
Je voulais simplement couper la ligne de ma recherche vers une autre feuille.
Je vois pas comment la celluleA1de la feuille2 trouve sa place dans ta macro. Et pour le peu que j'ai réussi à utiliser ta macro (en supposant avoir fait ce qu'il faut) je n'arrive qu'a copier une ligne dans le feuil3 et qui ne correspond pas à mon critère.
Peux-tu m'indiquer où je dois placer mes donnéess dans ta macro.
Désolé pour mon petit niveau en VBA.
Merci