Menu

Impression filtrée

Messages postés
4
Date d'inscription
lundi 7 janvier 2019
Statut
Membre
Dernière intervention
15 janvier 2019
- - Dernière réponse : cs_Le Pivert
Messages postés
6138
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 juillet 2019
- 16 janv. 2019 à 10:11
Bonsoir,

Après de nombreuses heures de tentative grâce à d'autres posts et forums je n'y arrive toujours pas ...

J'ai créé un exemple tout bête sur un Excel que j'adapterai ensuite à mon fichier d'origine.
Je voudrais réaliser un enregistrement des données sous PDF pour chacun des pays. Pour la France un tableau à 2 lignes donc et Luxembourg une ligne etc.

Si possible, l'extraction PDF se limite à la dernière ligne du tableau.

Voilà le fichier : https://www.cjoint.com/c/IAppj4oXxHn

Pour une autre macro, une liste entière de pays possédait des données donc je n'avais pas à me soucier je les sélectionnais tous un à un dans mes extracts avant de sélectionner le pays suivant.

Je vous remercie par avance !
Afficher la suite 

1 réponse

Messages postés
6138
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 juillet 2019
373
0
Merci
Bonjour,

a adapter:

Sub savePDF()
Dim rg As Range
Sheets("Feuil1").Select
   ActiveSheet.Range("$F$4:$H$11").AutoFilter Field:=2, Criteria1:="France" ' a adapter
  Set rg = Application.Range("$F$4:$H$11")
    rg.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                           ThisWorkbook.Path & "\monpdfselection.pdf", _
                           Quality:=xlQualityStandard, _
                           IncludeDocProperties:=True, _
                           IgnorePrintAreas:=False, _
                           OpenAfterPublish:=False
    Set rg = Nothing
    MsgBox "Votre PDF est enregistré dans le même dossier que ce classeur.", vbOKOnly + vbInformation, "Enregistrement en PDF"
   ActiveSheet.Range("$F$4:$H$11").AutoFilter Field:=2
End Sub

Allouettto
Messages postés
4
Date d'inscription
lundi 7 janvier 2019
Statut
Membre
Dernière intervention
15 janvier 2019
-
Tout d'abord merci pour ton aide, faire une extraction pour un critère spécifié (Ex : "France") ça j'y arrive (pour moi c'est déjà énorme :D). Mais je cherche une formule qui ferait un enregistrement pour chaque pays de manière distincte dans 2 fichiers séparés. Les 2 tableaux que j'ai glissé en dessous en feuille 1 sont un exemple.

Les pays peuvent également être Uruguay ou Belgique, néanmoins, les extracts ne doivent se faire seulement sur les pays étant mentionnés dans la liste en colonne G.

Néanmoins, je ne connaissais pas le Msg box et je vous en remercie je l'ajoute à d'autres macros
cs_Le Pivert
Messages postés
6138
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 juillet 2019
373 -
avec l'enregistreur de macro:

ActiveSheet.Range("$F$4:$H$11").AutoFilter Field:=2, Criteria1:="=France", _
        Operator:=xlOr, Criteria2:="=Luxembourg"


il faudrait donc remplacer France et Luxembourg par les lignes correspondantes de la colonne G !

Range("G10").Value
par exemple

Voilà
cs_Le Pivert
Messages postés
6138
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 juillet 2019
373 -
voilà un exemple de ce que l'on peut faire:

Sub savePDF()
Dim rg As Range
Sheets("Feuil1").Select
        Filtre
  Set rg = Application.Range("$K$5:$M$12")
    rg.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                           ThisWorkbook.Path & "\monpdfselection.pdf", _
                           Quality:=xlQualityStandard, _
                           IncludeDocProperties:=True, _
                           IgnorePrintAreas:=False, _
                           OpenAfterPublish:=False
    Set rg = Nothing
    MsgBox "Votre PDF est enregistré dans le même dossier que ce classeur.", vbOKOnly + vbInformation, "Enregistrement en PDF"
   ActiveSheet.Range("$F$4:$H$11").AutoFilter Field:=2
   Range("K5:M12").Select
    Selection.Delete Shift:=xlToLeft
End Sub
Sub Filtre()
    ActiveSheet.Range("$F$4:$H$11").AutoFilter Field:=2, Criteria1:=Range("G25").Value '"France"
    Range("F4:H11").Select
    Selection.Copy
    Range("K5").Select
    ActiveSheet.Paste
    ActiveSheet.Range("$F$4:$H$11").AutoFilter Field:=2, Criteria1:=Range("G26").Value ' "Luxembourg"
    Range("F4:H11").Select
    Selection.Copy
    Range("K11").Select
    ActiveSheet.Paste
 ActiveSheet.Range("$F$4:$H$11").AutoFilter Field:=2
   End Sub


@+ Le Pivert
Commenter la réponse de cs_Le Pivert