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

VBA Discussion :

copier un tableau de valeur depuis un pdf


Sujet :

VBA

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut copier un tableau de valeur depuis un pdf
    bonjour,

    je voudrais copier un tableau de valeurs a partir d un document pdf et coller le tableau sur excel en utilisant la fonction convertir

    il faudrait :
    -supprimer toutes les virgules
    -demander a selectionner la plage
    -selectionner les cellules contenant du texte et les couper vers la colonne la plus a gauche
    -selectionner les cellules contenant des nombres et les couper vers la colonne la plus a droite
    -et cela pour l ensemble des lignes

    pouvez-vous m aider s il vous plait (l ensemble du code VBA)
    merci d avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    Par défaut
    Je suis désolé mais le format PDF est format spécila qui à ma connaissance ne peut aps s'ouvrir avec autre chose qu'Acrobat Reader

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut decaler les cellules
    ok , disons que j'arrive a coller les cellules sur excel

    mon probleme est la mise en forme sous excel :, c'est a dire, selectionner les cellules dans excel, deplacer les celulles d' une meme ligne vers la colonne la plus a droite , pour les celulles contenant les chiffres, et deplacer les celules contenant le texte vers la colonne la plus a gauche

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 549
    Points : 556
    Points
    556
    Par défaut
    Pour avoir une idée des commandes à utiliser ,je te conseille de passer par l'éditeur de macro pour tout ce qui est mise en forme

    je vois à peu près ce que tu veux faire mais c'est pas super clair quand même
    la colonne la plus à droite, çà veut dire quoi pour toi ??
    Les données qui étaient dans cette colonne, tu en fais koi ???
    tu les écrases, tu les redécales ????

    Faut-il toutes les redécaler du fait du "coupage" des celluls ???

    Ton tableau est-il de taille variables ou fixe ?
    Peut-il contenir des lignes vides si il est de taille variable ???

    Donne moi au moins l'info si il est de taille fixe ou non, si il contient des celluls vides ou non et aussi explique moi si toutes les cellules vides après le "coupage" doivent être supprimées afin que ton tableau tiennet en un seul bloc ???

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut precisions
    chaque ligne contient un nombre variable de cellules texte, suivi d' un nombre (a peu pres) fixe de cellules de nombres......(c est donc une pyramide....difforme et chaque ligne formee de cellules de texte , suivi de cellules de nombres. Je veux isoler les cellules de nombre ; je veux obtenir une colonne bien alignee de nombres (bloc droit).

    Je peux t' envoyer un fichier si tu peux me communiquer une adresse mail.

    merci pour ton aide.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par gabvba
    Je peux t' envoyer un fichier si tu peux me communiquer une adresse mail.
    Non, maéis tu peux le joindre après l'avoir "Zippé" (icône trombone)
    Pour ton pb, je ne vois guère d'autre solution que celle-ci
    Déterminer quel est la dernière colonne renseignée de ta base, quelque soit le N° de ligne, texte ou nombres confondus. Tu ajoutes 2 à ce No de colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        DerniereColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column
        NewCol = DerniereColonne + 2 'On garde DerniereColonne pour plus tard
    C'est sur cette colonne que tu mettras la première colonne des nombres.
    Ensuite,
    Citation Envoyé par Tu
    suivi d' un nombre (a peu pres) fixe de cellules de nombres
    Ce n'est pas un nombre fixe, donc d'un nombre indéterminé de cellules de nombres
    Tu détermines la dernière ligne renseignées de ta feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    Maintenant, tu peux parcourir la feuille ligne par ligne pour repérer les cellutes contenant les valeurs et les coller au bon endroit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'd'après la structure de ta base, tu n'as pas d'entête -> on commence à la ligne 1
    For NoLigne = 1 to DerniereLigne
         ColNum = NewCol 
         'ColNum sera le No de colonne de la dernière "valeur" rencontrée sur la ligne
         For NoCol = 1 to DerniereColonne 'parcours de la ligne col par col
             If cells(NoLigne,NoCol).value <> 0 then
                   Cells(NoLigne,ColNum) = cells(NoLigne,NoCol)
                   ColNum = ColNum + 1 'on incrémente le No de la colonne "Coller"
                   Cells(NoLigne,ColNum) = "" ' On nettoie la cellule (voir plus loin **)
             endif
         Next
    Next
    Ainsi les "valeurs" ont toutes été collées à partir de la colonne NewCol
    Pour coller le texte sur la colonne suivant les nombres, il ne te reste plus qu'à connaître la première colonne vide après les nombres : on reprend la formule de tout à l'heure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        NewCol = Range("A1").SpecialCells(xlCellTypeLastCell).Column + 1
    On copie la plage ne contenant plus que le texte. Et comme en faisant NewCol = DerniereColonne + 2, on a isolé le texte des nombres par une colonne vide, on peut donc utiliser CurrentRegion pour déterminer la plage du texte (puisqu'on a nettoyé les cellules des nombres) il ne reste qu'à le faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range("A1").currentRegion.copy destination:=Range(1,NewCol)
    Il ne te reste plus qu'à supprimer les colonnes copiées (**) et là encore, comme tout à l'heure on a pris pour 1ère colonne des nombres DernièreColonne + 2, on peut supprimer les colonnes de A à DerniereColonne + 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range(Cells(1, 1).Column & ":" & Cells(1, DerniereColonne+1).Column).Delete Shift:=xlToLeft
    Je réalise que j'ai tout fait...
    Bien sûr je n'ai pas testé, alors fais ça pour moi mais sur une copie de ton fichier
    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/04/2015, 11h52
  2. [XL-2010] copier et coller la valeur d'un tableau en fonction d'une autre
    Par fapinem dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 28/04/2014, 18h04
  3. [XL-2007] Recherche valeur & copier coller tableau
    Par ARTETA13 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/03/2012, 12h44
  4. Passage valeure depuis un popup
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/12/2005, 13h08
  5. [VB.NET] copier coller d'une valeur
    Par mic56 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/06/2004, 11h43

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