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 :

VBA - recopier un tableau sans les lignes vides


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut VBA - recopier un tableau sans les lignes vides
    Bonjour à tous,

    Je suis dans une impasse !
    Le but est de prendre une commande sur un listing (Feuil! PAR) puis extraire les lignes choisie sur une Feuil! pour en tirer un format pdf.

    1- la vendeuse prend les commandes et saisie les quantité sur la feuille PAR.
    2- via des fonctions, si une quantité > 0 est saisie, la référence se retrouve sur la feuille "récupération" : chaque référence de la feuille PAR possède sa propre ligne sur la feuille "récupération".

    3- c'est maintenant le problème : j'ai automatisé, via une macro, le fait de "copier" les données récupérées sur la feuille "récupération" puis de les coller en utilisant le "collage spécial Valeur" : tous cela sur la page "collagevaleur"
    4- Sur cette feuille, si je tri, le tri ne se fait pas correctement... Il considère les cellule vides malgré le collage spécial "valeur". Ou encore si je tri de façon décroissante et que j'enregistre en pdf, il m'enregistre 13 page blanche car là encore il considère les cellule vides malgré le collage spécial valeur.
    L'ojectif étant d'avoir un pdf le plus compressé possible, sinon j'imprime le listing directement !!!

    Je suis au bout.
    Si la communauté peut me venir en aide ce serait génial.
    Merci d'avoir pris le temps.
    Au plaisir de vous lire.

    Alex
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour en opérant un simple filtre on se rends compte que tu a une bonne partie jusqu'à 200 puis toute les lignes vides

    jusqu'à 513 pourquoi un tel trou dans la feuille

    je pense que la copie dynamique de ta feuille par ne se fait pas de la bonne manière

    ca c'est déjà un point a revoir
    tu n'aurais pas a l recopier dans feuil2 sans les vides pour imprimer ou autre sans vides
    cela dit si tu y tiens vraiment a ta feuille2 tu applique un filtre et tu copie le rangevisible tout simplement

    si c'est une question d'ordre (plat chaud,desseert,etc)
    il te suffirait de reproduire directement ton sheets par dans récupération en mettant tout en invisible et de mettre visible que au change de la même ligne dans "par"
    et la toujours pareil copier ensuite le range visible dans feuille2

    réfléchi sur cette partie de la conception et dis moi je te donnerais un exemple

    en l'etat comme ca je ne peut que te proposer ceci j'ai mis ton code original en commentaire

    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
     
    Sub copiercoller()
    '
    ' copiercoller Macro
    '
    'il ne faut pas selmectionner ta plage entiere
    'il ne faut pas selectionner ca prend de la memoire pour rien
    'Columns("A:C").Select
    'Selection.Copy
    'Sheets("Feuil2").Select
    'Columns("A:C").Select
    'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, transpose:=False
    'Range(Cells(1, 1), Cells(c, derlig)).Copy Destination:=Sheets(2).Range(Cells(1, 1), Cells(c, derlig))
        derlig = Cells(Rows.Count, 1).End(xlUp).Row
        With ActiveSheet.Range("A1:C" & derlig)
            .AutoFilter Field:=1, Criteria1:="<>"
            .SpecialCells(xlVisible).Copy Destination:=Sheets("Feuil2").Cells(1, 1)
            .AutoFilter
        End With
        Sheets("Feuil2").Columns("A:C").AutoFit
    End Sub
    tu n'a plus les trous dans feuil2
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub copierSansVides()
      ActiveSheet.Range("$A$1:$F$10000").AutoFilter Field:=1, Criteria1:="<>", Operator:=xlAnd
      Sheets.Add after:=Sheets(Sheets.Count)
      Sheets("BD").Range("_FilterDataBase").SpecialCells(xlCellTypeVisible).Copy [A1]
    End Sub
    Boisgontier
    http;//boisgontierjacques.free.fr
    Fichiers attachés Fichiers attachés

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Novembre 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 4
    Par défaut re
    Merci patricktoulon !

    Je m'explique : n'étant pas capable de générer un code dans son entièreté, j'ai préféré le faire par étape.

    1- "... puis toute les lignes vides jusqu'à 513 pourquoi un tel trou dans la feuille" : j'ai fais l'équivalent d'un rappel car je ne savais pas comment faire.
    Si il est possible d'imprimer la feuille PAR sans y faire notifier les références sans quantité, ce serait génial !!! Mais je suis pas assez fort.

    Alors je fais un rappel des référence qui contiennent une valeur > 0 pour les quantité dans la feuille "récupération".
    L’objectif suivant était d’éliminer toutes les lignes de rappels sans valeur (mais aussi sans éliminer leur formule de rappel (=SIERREUR(RECHERCHEV(récupération!A23;BDD!B$2:E$457;4;FAUX);"")) en vue d'un prochain bon..

    Du coup je voulais copier cette plage de donnée en faisant un collage spécial "valeur" : Fail... Je n'ai pas su le faire.

    2- j'ai intégré ton code pour la macro et il fonctionne parfaitement bien.
    J'ai du l'adapter pour qu'il s'intègre dans la feuille "Fiche".
    Et pour finir j'ai du mal à lui dire de coller à partir de la cellule C15.
    Je te laisse le fichier pour voir où la macro disjoncte.

    3- la dernière étape sera, via un code, d'enregistrer "Fiche" en pdf. (si tu as un moment en plus... Je suis preneur)

    Au plaisir de te lire.
    Encore merci.
    Alex.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [CR 7] Afficher les lignes vides dans un tableau croisé
    Par Nico_Pri dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 22/08/2017, 11h14
  2. [XL-2003] (Cacher) modifié en : Supprimer les lignes vides dans un tableau
    Par azerty1956 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 15/04/2009, 19h12
  3. suprimer les lignes vides d'un tableau
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/01/2009, 18h03
  4. Réponses: 10
    Dernier message: 10/10/2008, 14h22
  5. Réponses: 1
    Dernier message: 12/12/2006, 13h00

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