Filtre élaboré en VBA AVEC LIENS HYPERTEXTE

Bonjour,

sous excel 2003

J'ai une macro qui applique un filtre élaboré sur une base de données et qui copie le résultat sur une nouvelle plage et recopie ce dernier sur une autre feuille.

Problème : dans ma BDD il y a des liens hypertextes et dans le résultat copié sur la nouvelle plage il n'y a plus de lien hypertexte alors que j'ai besoin de les conservé.

Ci dessous mon code

Sub filtre()

' effectue un filtre élaboré et colle le résultat dans nouveau tableau même page

Sheets("DONNEES").Select

Range("A5:g198").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _

"A1:A2"), CopyToRange:=Range("A200:g200"), Unique:=True

' copie et colle le résultat dans la page de garde

Range("B201:I499").Select

Selection.Copy

Sheets("GARDE").Select

Range("B13").Select

ActiveSheet.Paste

Range("c1").Select

End Sub

Merci d'avance pour votre aide

Salut,

Envoi nous un fichier, pour mieux voir comment sont organisées tes données

Sinon va voir le fil suivant :

https://forum.excel-pratique.com/excel/envoi-d-un-mail-via-excel-t17924.html

Et regarde la réponse de Math, ça peut peut-etre t'aider.

A+

Bonjour à tous,

A ma connaissance un filtre élaboré vers un autre emplacement renvoie des valeurs,

J'ai fais un test avec des liens comme données et effectivement çà ne renvoie pas les liens,

Par contre avec un filtre sur place, puis copie du filtrage çà a l'air de fonctionner.

pour ton cas essaye :

Sub filtre2()
' effectue un filtre élaboré sur place
    Sheets("DONNEES").Select
    Range("a5:g198").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Range("a1:a2"), Unique:=True

    Range("b6:g198").SpecialCells(xlCellTypeVisible).Copy
        With Sheets("GARDE")
            .Paste .Range("b13")
        End With
End Sub

Amicalement

Claude

Bonjour,

Tout d'abord merci de votre rapidité et de la quailité des réponses apportée.

La solution proposé par Claude fonctionne très bien mais malheuresement j'ai véritablement besoin de passer par un résultat copié sur une nouvelle plage pour les raisons suivantes :

  • ma base de données sera actualisée à fréquence hebdomadaire et son intégralité doit être visualisable pour les utilisateurs qui la mette à jour
  • dans ma nouvelle plage intermédiaire (résultat du filtre) je rajoute 2 colonnes qui seront alimentées par des formules dont les données sources se trouve dans la feuille ("Lieux)
  • ensuite je recopie cette nouvelle plage + les 2 colonnes et je la colle dans la page de garde. (D'ailleurs si vous avez une solution pour copier dans ces 2 colonnes supplémentaires uniquement le nombre de lignes correspondantes à la plage de résultats du filtre plutôt qu'une plage fixe, je suis preneur).

Ci-joint le fichier en cours de construction

Fred

Je vous remercie encore par avance

Bonsoir Fred, forum,

Si on peut identifier les lignes de la feuille 'Lieux" avec celles de la base,

çà ne devrait pas poser de problème,

Peux-tu joindre un exemple (2 ou 3 lignes) du résultat escompté ?

en remplissant "Lieux"

Tu devrais placer la plage intermédiaire sur une autre feuille, afin de ne pas limiter

la base à 200 lignes.

à te relire

Claude

Bonjour Claude,

Je te remercie mais j'ai trouvé une solution en figeant mon tableau de réception final ("garde").

Par contre pour info, je peux rester limiter à 200 ligne car il n'y aura jamais plus de données.

En espérant échanger prochainement avec toi

Fred

Bonjour,

Sans problème, quand tu veux

Pour clôturer le poste c'est ici

a resolu2
Rechercher des sujets similaires à "filtre elabore vba liens hypertexte"