(VBA)selectionner toutes les lignes visibles

Y compris Power BI, Power Query et toute autre question en lien avec Excel
R
Rag02700
Membre fidèle
Membre fidèle
Messages : 296
Appréciations reçues : 4
Inscrit le : 26 décembre 2017
Version d'Excel : 2010

Message par Rag02700 » 24 mai 2019, 17:21

Hello,

Je voudrais envoyer par mail via outlook un Range après un filtre...
Jusque là pas de problème.
Le problème survient lorsque je fais un filtre sur une de mes colonnes ...
Mon programme ne me prend plus en compte la sélection mais la feuille entière ...

Auriez-vous une soluce ??? :) :) Merci.

Mon code + fichier exemple :
Sub Diffusion()
Dim Ligne_En_Tete_VIVIER As Byte
Dim Feuille_VIVIER As Worksheet
Dim Plage_De_Diffusion As Range
'Generer le mail sans cocher la référence OUTLOOK LIBRARY
Dim oAPP                       As Object
Dim oItem                      As Object
Const olMailItem               As Long = 0

'###########################################################################################
'~~~~~~~~~~~~~~~~ Variables à modifier si la structure change ~~~~~~~~~~~~~~~~~~~

'## Si la ligne de référence de l'en-tete du classeur VIVIER change, modifier cette variable ! ##
Ligne_En_Tete_VIVIER = 10
'## Si la feuille de référence de ce classeur change, modifier cette variable ! ##
Nom_Feuille_VIVIER = "TDB_VIVIER"

'On defitnit la feuille VIVIER
Set Feuille_VIVIER = ThisWorkbook.Sheets(Nom_Feuille_VIVIER)
Dim derlig As Integer
derlig = Feuille_VIVIER.Range("F65000").End(xlUp).Row '//choix de la dernière ligne
'For Each Ligne In Range("A10:L" & derlig).SpecialCells(xlCellTypeVisible).Rows
'Ligne.Select
'Next Ligne
Range("L" & derlig).Select '//choix de l'angle de sélection inférieur droit
Range(Selection, Selection.End(xlUp)).Select
Range(Selection, Selection.End(xlToLeft)).Select '//jusqu'à A1
Selection.SpecialCells(xlCellTypeVisible).Select '// sélectionne que les cellules visible


''On definit la Plage de diffusion
'Set Plage_De_Diffusion = Feuille_VIVIER.Cells(Ligne_En_Tete_VIVIER, 1).CurrentRegion.SpecialCells(xlVisible)
''Copie de la plage
'Plage_De_Diffusion.Select
'ActiveSheet.Range("A10:B15").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True
 
With ActiveSheet.MailEnvelope
    .Introduction = "Bonjour," & vbLf & "Vous trouverez ci-joint le VIVIER"
    .Item.To = ""
    .Item.Subject = "VIVIER RECRUTEMENT"
    .Item.Display
End With
End Sub
Conso_vivier.xlsm
(68.63 Kio) Téléchargé 2 fois
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 412
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 25 mai 2019, 06:17

Bonjour,

Ton instruction :
Selection.SpecialCells(xlCellTypeVisible).Select
permet effectivement de ne sélectionner que les lignes visibles ...

Au delà du fait que tu devrais éliminer tous les Select ... et toutes tes anciennes instructions que tu as placées en commentaires ...

quel problème a ton code ...?
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
R
Rag02700
Membre fidèle
Membre fidèle
Messages : 296
Appréciations reçues : 4
Inscrit le : 26 décembre 2017
Version d'Excel : 2010

Message par Rag02700 » 25 mai 2019, 07:54

Hello,

Le problème c'est qu'il ne me propose pas d'envoyer la sélection mais la feuille entière...

Si je n'applique pas de filtre, il me propose la sélection ...

R@g
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 412
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 25 mai 2019, 08:07

Bonjour,

Sans Outlook ... je ne peux pas faire de tests réels ... mais as-tu essayé :
With ActiveSheet.Selection.MailEnvelope
En espèrant que cela t'aide
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
R
Rag02700
Membre fidèle
Membre fidèle
Messages : 296
Appréciations reçues : 4
Inscrit le : 26 décembre 2017
Version d'Excel : 2010

Message par Rag02700 » 25 mai 2019, 10:51

Non j'ai pas essayé cette syntaxe.

Je vais essayer lundi.

Merci.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message