1 votes

Comment copier un tableau de données d'un fichier PDF dans Excel ?

J'ai un tableau de données et je dois le transférer dans Excel. J'ai trouvé quelques sites web qui suggèrent de copier et coller dans MS Word, puis d'utiliser la fonction "Convertir le texte en tableau". Malheureusement, cela ne fonctionne pas, car les colonnes sont séparées par un espace, mais si je choisis l'espace comme séparateur de colonne, les colonnes contenant plusieurs mots sont séparées en plusieurs colonnes.

Existe-t-il un meilleur moyen de récupérer un tableau d'un fichier PDF dans Excel ?

1voto

Marta Karas Points 19

L'ensemble est beaucoup plus simple que ce qui est mentionné dans l'autre réponse.

Dans Acrobat/Reader, choisissez l'outil de sélection de texte, et faites apparaître votre tableau en plein écran.

Appuyez maintenant sur la touche Ctrl/Option et sélectionnez le tableau. Vous remarquerez que le curseur change. Lorsque la sélection est terminée, vous pouvez copier et coller dans Excel.

0voto

Rajesh Sinha Points 8611

Je voudrais vous suggérer un code VBA, qui transposera le tableau de données copié du PDF vers Excel.

Suivez les étapes écrites ci-dessous.

  1. Copier les données de la table à partir du fichier PDF.
  2. Coller dans une colonne de la feuille Excel.
  3. Exécutez le code VBA.

Vérifiez la capture d'écran.

enter image description here

Private Sub CommandButton1_Click()
Dim xLRow As Long
    Dim xNRow As Long
    Dim i As Long
    Dim xUpdate As Boolean
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String

    On Error Resume Next

    xTxt = ActiveWindow.RangeSelection.Address

    Set xRg = Application.InputBox("Select Data Range(only one column):", "Transpose to Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count > 1) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "Used range only contain one column", , "Transpose to Excel"
        Exit Sub
    End If

    Set xOutRg = Application.InputBox("Select output range(specify one cell):", "Transpose to Excel", xTxt, , , , , 8)

    If xOutRg Is Nothing Then Exit Sub

    Set xOutRg = xOutRg.Range(1)

    xUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    xLRow = xRg.Rows.Count

    For i = 1 To xLRow Step 3
        xRg.Cells(i).Resize(3).Copy
        xOutRg.Offset(xNRow, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
        xNRow = xNRow + 1
    Next
    Application.ScreenUpdating = xUpdate

End Sub

NB : Les données que j'ai utilisées pour TESTER le code ont 3 colonnes (valeur de la couleur ROUGE), de sorte qu'avec boucle for Step & Resize la valeur est de 3. Vous changez en fonction de votre structure de données.

J'espère que cela vous aidera.

-1voto

David Points 1

J'arrive un peu tard dans la soirée, mais pour le bénéfice de tous ceux qui trouveront cette information via Google :

Il existe de nombreux services web gratuits que vous pouvez utiliser à cette fin au lieu de vous débattre avec des copier-coller via Word, etc. Le choix du bon service dépend de votre PDF et de vos besoins.

Le fichier entier est-il un tableau et vous voulez tout convertir ? -> Essayez https://smallpdf.com/pdf-to-excel

Y a-t-il des tableaux individuels, par exemple sur une page avec beaucoup d'autres textes, que vous voulez copier ? -> Essayez https://tabellopdf.com

Votre PDF est-il un fichier numérisé (c'est-à-dire qu'il s'agit en fait d'une image enregistrée au format PDF) ? -> Essayez https://www.pdftoexcel.com/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X