IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Impression d'une sélection avec condition [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut Impression d'une sélection avec condition
    Bonjour Mesdames et Monsieur;

    Depuis que j'ai découvert ce site je m'en lasse pas, les possibilités de excel sont infinie et impossible pour moi de tous les connaitres donc encore aujourd'hui je m'en remets a vous.

    Ma problématique aujourd'hui est plutôt simple mais je ne possède pas les connaissances pour cela.

    Explication:
    Je possède Excel 2016, comprenant 7 feuilles (plus a l'avenir) certain lien existe entre elle. Sur la première de ces feuilles, la "TGRI" comprend environ 1200 lignes chacune destinée a un objet pour chaque, identifier par un code spéciale ex:12345-ABCDEF.

    Dans la seconde feuille "FD" (Fiche départ) reprenant les tournées a effectuer pour c'est objets avec leur code spéciale (en gros c'est la carte grise de l'objets )

    Problématique:
    Je souhaiterais, que avec un bouton macro (si possible) le code imprime 1 page de la ligne complété (ou si possible sélectionner les colonnes) des code ce trouvant dans la feuille "fd" et "tgri".
    Je simplifie : le code doit détecter les code identique entre les deux feuilles et imprimer seul concerné dans la feuille "tgri" avec les colonnes "en-tète" (et oui je complique les choses sinon c'est pas drôle )

    Merci pour déjà avoir lu mon texte et je l’espéré votre aide prochaine, bien évidement je peux répondre a toute vos questions sur l'utilisation du document ou la description de ma demande afin de vous aiguiller au mieux.

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Franchement, même en relisant à plusieurs reprise, c'est pas claire ton histoire ...

    peux tu nous mettre un bout de fichier. Comme çà on verra les colonnes concernées (avec des données bidon).
    Là, je suis incapable de savoir quelle est la feuille contenant les lignes à conservées, celle qui donne les colonnes correcte.

    Aide nous à t'aider.

    GG

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut
    Bonjour jerome.vaussenat.

    Pour simplifier la chose je souhaite imprimer des lignes d'un tableau en fonction d'un autre tableau, c'est ligne ayant un code unique (code textuelle), le code serais détecter par la macro et enregistrera les lignes a imprimer. Si possible avec les lignes comprenant les en-tète (3 lignes).

    Sortie.xlsx

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    bonjour ,
    pourquoi ne pas filtrer ton tableau selon les ID qui se trouve sur la deuxième feuille , imprimer les cellules visible puis défiltrer
    si ça t'arrange vous pouvez tester ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub filtreetimprimer()
    Dim F1 As Worksheet
    Dim F2 As Worksheet
    Set F1 = Sheets("Sheet1")
    Set F2 = Sheets("Feuil1")
    Dim I As Long
     Application.ScreenUpdating = False
     With F1
    I = .Cells(Rows.Count, 2).End(xlUp).Row
    .Range("B5:E" & I).AutoFilter field:=1, Criteria1:=Array(F2.Cells(5, 2), F2.Cells(6, 2), F2.Cells(7, 2)), Operator:=xlFilterValues
    Application.Dialogs(xlDialogPrinterSetup).Show 'Pour choisir l'imprimante
    With ActiveSheet.PageSetup
        .PrintArea = ("B5:E" & I)
        .Zoom = False
        .FitToPagesTall = 1
        .FitToPagesWide = 1
    End With
    ActiveSheet.PrintOut copies:=1
    If Not .AutoFilter Is Nothing Then
          If .FilterMode Then .ShowAllData
          .AutoFilter.Range.AutoFilter
        End If
    End With
     Application.ScreenUpdating = True
    End Sub
    à tester avec prudence , c'est un code bricolé par un autodidacte
    Bonne continuation
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2019
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2019
    Messages : 119
    Par défaut
    Bonjour BENNASR;

    Merci beaucoup pour ton code il est très intéressant seulement j'ai du mal a l'adapter a mon véritable classeur, pourrais tu m'expliquer les modif a faire? je l'es déjà testé mais il m'affiche mal ce que je souhaite (ex: seulement l’entête et pas le résultat). De plus après environ 10 test le code me fait un retour d'erreur au niveaux de "ActiveSheet.PrintOut". serait tu pourquoi?

    Merci beaucoup pour t'on aide tout de même.

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    Il se peux que tu appelle la procédure à partir d'un autre onglet, donc j'ai porter quelques modifications
    - Bien vérifiez le noms des onglets
    - si ton tableau commence à partir de B5 de l'onglet Sheet1
    - Que les critère de ton filtre se trouvent en B5, B6 et B7
    - Vous pouvez supprimer momentanément la parite de code qui imprime le tableau après filtre aisni que la partie de code qui annule les filtre et voir si le code fait bien le filtre selon les codes figurant en onglet "feuil1"
    Faites ces vérification et dire ce que ça donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub filtreetimprimer()
    Dim F1 As Worksheet
    Dim F2 As Worksheet
    Set F1 = Sheets("Sheet1") 'Nom onglet ou se trouve le tableau à filtrer
    Set F2 = Sheets("Feuil1") 'Nom onglet ou se trouve le tableau les ID à utiliser  critères de filtre
    Dim I As Long
     Application.ScreenUpdating = False
     With F1
     .Activate
    I = .Cells(Rows.Count, 2).End(xlUp).Row
    .Range("B5:E" & I).AutoFilter field:=1, Criteria1:=Array(F2.Cells(5, 2), F2.Cells(6, 2), F2.Cells(7, 2)), Operator:=xlFilterValues
    Application.Dialogs(xlDialogPrinterSetup).Show 'Pour choisir l'imprimante
    With .PageSetup
        .PrintArea = ("B5:E" & I)
        .Zoom = False
        .FitToPagesTall = 1
        .FitToPagesWide = 1
    End With
    F1.PrintOut copies:=1
    ' ********************** enlever filtre
    If Not .AutoFilter Is Nothing Then
          If .FilterMode Then .ShowAllData
          .AutoFilter.Range.AutoFilter
        End If
     
    End With
     Application.ScreenUpdating = True
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impression d'une page avec logo en VB6
    Par Octave dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/02/2007, 14h06
  2. Réponses: 12
    Dernier message: 12/06/2006, 14h29
  3. [XML][Debutant]Faire une somme avec condition...
    Par cackybis dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/04/2006, 16h07
  4. Calculs dans une requete avec conditions multiples
    Par Sha1966 dans le forum Access
    Réponses: 3
    Dernier message: 13/01/2006, 15h18
  5. Impression d'une form avec controle MSHFlexGrid
    Par felix14 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 10/01/2006, 17h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo