Impression filtrée

Fermé
Allouettto Messages postés 4 Date d'inscription lundi 7 janvier 2019 Statut Membre Dernière intervention 15 janvier 2019 - 15 janv. 2019 à 16:37
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 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 !
A voir également:

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
15 janv. 2019 à 18:16
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

0
Allouettto Messages postés 4 Date d'inscription lundi 7 janvier 2019 Statut Membre Dernière intervention 15 janvier 2019
15 janv. 2019 à 18:42
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
15 janv. 2019 à 18:48
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à
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 16 janv. 2019 à 10:15
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
0