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 :

Numériser des documents au format PDF sous VBA excel [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Débutant développement
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Débutant développement
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Numériser des documents au format PDF sous VBA excel
    Bonjour à tous le forum

    Bonne année et bonne santé

    Me voici face un problème sous VBA que je n'arrive pas à solutionner

    Voici :

    Je souhaiterais pouvoir, à partir d'excel, pouvoir scanner des rapports au format PDF vers un dossier spécifique (il doit être nommé en fonction d'un numéro de semaine choisi via une USF, je possède déjà les codes) en ayant la possibilité de choisir le scanner,

    J'ai poster sur plusieurs forum mais les réponses donnée fonctionne mais pas comme je le souhaite.

    Je détail pour vous faire une idée :

    Je clique sur un bouton "Importer les rapport", une USF s'ouvre me demandant de choisir le dossier de destination, puis ensuite, une fois le dossier créer je clique sur le bouton "Importer". `Là, il numérise et me confirme le chemin de destination...

    J'espère que cela est faisable.

    Vous remerciant pour votre aide,

    Une bonne journée tous

    Christian

    Si vous voulez un fichier exemple, n'hésitez pas

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour,

    vraiment pas clair ‼

    Si numériser veut dire l'utilisation d'un scanner, ce n'est pas la peine d'utiliser Excel,
    cela se passe directement dans le logiciel de scan !

    Sinon pour adhérer aux règles de ce forum et qu'un intervenant puisse apporter de l'aide,
    en dehors d'une présentation claire & exhaustive, il serait utile de poster le code en utilisant le bouton # pour le baliser …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Débutant développement
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Débutant développement
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Numériser des documents au format PDF sous VBA excel
    Bonjour Marc-L,

    Pas assez clair ?

    Je reprend alors...

    Numériser = scanner donc oui, utilisation d'un scanner...

    Donc si j'ai bien compris, on ne peut pas ?

    Et une macro qui fait appel au logiciel du scanner, a savoir que mon projet sera mis sur plusieur PC...

    Je possède ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "wiaacmgr.exe", vbNormalFocus
    Mais il n'y a pas le format PDF, donc c'est embêtant...

    En faite je cherche cette solution pour faciliter la vie à certaine personne de l'entreprise n'étant pas à l'aise avec l'informatique, et sur mon projet excel j'ai tout simplifié me manque plus que la numérisation...

    Merci

    Christian

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Je ne vais pas faire le kéké, franchement je n'ai rien sous le coude
    car cela dépend évidemment d'interfaces externes à Excel et sans les connaître ni en disposer …

    Depuis plusieurs années, les logiciels livrés avec les scanners gèrent directement le format .pdf
    ainsi que la destination et le nom par défaut des fichiers numérisés …

    J'ai formé des personnes âgées sur l'utilisation et le paramétrage de logiciels de scan sans souci …

    Donc là je passe mais un autre intervenant pourrait proposer quelque chose …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Débutant développement
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Débutant développement
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Numériser des documents au format PDF sous VBA excel
    Bonjour Marc-L

    J'ai pensé sinon... en créant un bouton qui donne accès à l'application par défaut du logiciel fourni avec le scanner ?

    A moi de mettre des MsgBox afin de donnée les instructions nécessaire...

    L'idée est elle bonne ?

    Christian

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    je ne vois pas trop l'intérêt s'il n'est pas possible de piloter le scanner depuis Excel …

    Mieux vaudrait effectuer une configuration par défaut du logiciel de scan.


    Sinon voir du côté du tutoriel Utiliser la librairie Windows Image Acquisition en VBA , notamment le chapitre IV …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Membre à l'essai
    Homme Profil pro
    Débutant développement
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Débutant développement
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Numériser des documents au format PDF sous VBA excel
    Bonjour Marc-L,

    Je viens de suivre ton liens, effectivement cela pourrais être sympas, mais le soucis est que si j'importe les rapports en JPEG, cela va vite être très lourd pour l'envoi par mail, j'étais d'ailleurs en train de voir pour l'import des documents en JPEG (en suivant ton lien) puis par la suite créer un USF pour convertir les jpeg en PDF ma cela risque d'être pénible également... il faut que je trouve un compromis...

    Dur dur.....

    Christian

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Et certains logiciels de scan numérisent en .pdf et envoient directement un e-mail …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre à l'essai
    Homme Profil pro
    Débutant développement
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Débutant développement
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Numériser des documents au format PDF sous VBA excel
    Oui je sais mais ça sort de mon projet... car finalement ça redeviendrait une usine à gaz

    Mais je continu d'étudier la chose et si je trouve une solution je partagerais ici

    Merci

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    A mon avis, en l'état actuel, vouloir gérer la numérisation depuis Excel est tendre vers une production gazière ! …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #11
    Membre à l'essai
    Homme Profil pro
    Débutant développement
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Débutant développement
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Numériser des documents au format PDF sous VBA excel
    Ba au pire j'aurais bien tenter de faire un bouton contenant le liens de l'application fourni avec le scanner... (HP par exemple)

    ça doit être possible, ensuite ils se débrouilleront à les placer dans le bon dossier...

  12. #12
    Membre à l'essai
    Homme Profil pro
    Débutant développement
    Inscrit en
    Décembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Débutant développement
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2013
    Messages : 30
    Points : 10
    Points
    10
    Par défaut Numériser des documents au format PDF sous VBA excel
    Salut à tous,

    Donc après plusieurs recherche, j'ai enfin trouvé la réponse, du moins on me l'à donnée, et donc je vous la partage :

    A savoir, il faut connaitre l'exe du scanner et le rentrer dans le module de recherche sans oublier de mettre le .exe.

    Dans un module :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    Option Explicit
    'recherche de fichiers avec les fonctions API (rapide, récursif)
    'code à étudier :-)
     
    'code : Randy Birch/RB Smissaert (mpep)
    'http://www.mvps.org/vbnet/index.html?code/fileapi/recursivefolders_minimal.htm
     
    Private Const vbDot = 46
    Private Const MAX_PATH = 260
    Private Const INVALID_HANDLE_VALUE = -1
    Private Const vbBackslash = "\"
    Private Const ALL_FILES = "*.*"
     
    Private fp As FILE_PARAMS  'holds search parameters
    Private List1(1000, 0) As String
    Private i As Long
     
    Private Type FILETIME
       dwLowDateTime As Long
       dwHighDateTime As Long
    End Type
     
    Private Type WIN32_FIND_DATA
       dwFileAttributes As Long
       ftCreationTime As FILETIME
       ftLastAccessTime As FILETIME
       ftLastWriteTime As FILETIME
       nFileSizeHigh As Long
       nFileSizeLow As Long
       dwReserved0 As Long
       dwReserved1 As Long
       cFileName As String * MAX_PATH
       cAlternate As String * 14
    End Type
     
    Private Type FILE_PARAMS
       bRecurse As Boolean
       bFindOrExclude As Long  '1=find matching, 0=exclude matching
       nCount As Long
       nSearched As Long
       sFileNameExt As String
       sFileRoot As String
    End Type
     
    Private Declare Function FindFirstFile Lib "kernel32" _
       Alias "FindFirstFileA" _
      (ByVal lpFileName As String, _
       lpFindFileData As WIN32_FIND_DATA) As Long
     
    Private Declare Function FindNextFile Lib "kernel32" _
       Alias "FindNextFileA" _
      (ByVal hFindFile As Long, _
       lpFindFileData As WIN32_FIND_DATA) As Long
     
    Private Declare Function FindClose Lib "kernel32" _
      (ByVal hFindFile As Long) As Long
     
    Private Declare Function lstrlen Lib "kernel32" _
        Alias "lstrlenW" (ByVal lpString As Long) As Long
     
    Private Declare Function PathMatchSpec Lib "shlwapi" _
       Alias "PathMatchSpecW" _
      (ByVal pszFileParam As Long, _
       ByVal pszSpec As Long) As Long
    Sub Start() 'recherche fichier
        Dim hFile As Long
        Dim WFD As WIN32_FIND_DATA
        Dim FolderName As String
        Dim filename As String
        Dim n As Long
        Dim temps, count
        Dim scan As String
    On Error Resume Next
     Sheets("Feuil1").Select 'choix feuille
    If [A1] = "" Then
     scan = InputBox("Entrez le nom de l'exe du scan" & Chr(10) & " Veuillez patienter ensuite pendant la recherche", "Scanner", "HP Photosmart 5510 series.exe")
     temps = Timer ' Timer pour calculer la durée de la recherche
       FolderName = "C:\" 'Répertoire
    If FolderName = "" Then
            Exit Sub
        End If
    filename = scan 'nom Fichier exe scan
     If filename = "" Then
            Exit Sub
        End If
        i = 0
        Erase List1
     
        With fp
            .sFileRoot = QualifyPath(FolderName)    'start path
            .sFileNameExt = filename             'file type(s) of interest
            .bRecurse = True                     'True = recursive search
            .nCount = 0                          'results
            .nSearched = 0                       'results
            .bFindOrExclude = 1                  '1 = find, 0 = exclude
        End With
     
        Call SearchForFiles(fp.sFileRoot)
     
        If i = 0 Then
            MsgBox filename & "  non trouvé, vérifiez l'orthographe.", , "   Conclusion du dossier"
        Else
            For n = 0 To i - 1
            count = i 'On compte les fichiers
     
      With ActiveSheet("Feuil1")
       [A1] = List1(n, 0) 'on inscrit le chemin du fichier sur la feuille Excel
                       Application.StatusBar = "Trouvé  " & count & " fichier(s)  " & filename & "  en " & Timer - temps & " secondes."
     
     End With
              Next
     
            MsgBox "Trouvé  " & count & " fichier(s)  " & filename & "  en " & Timer - temps & " secondes.", , "   Conclusion du dossier"
        End If
      End If
    End Sub
    Private Sub SearchForFiles(sRoot As String)
     
        Dim WFD As WIN32_FIND_DATA
        Dim hFile As Long
     
        hFile = FindFirstFile(sRoot & ALL_FILES, WFD)
     
        If hFile <> INVALID_HANDLE_VALUE Then
            Do
                'if a folder, and recurse specified, call
                'method again
                If (WFD.dwFileAttributes And vbDirectory) Then
                    If Asc(WFD.cFileName) <> vbDot Then
                        If fp.bRecurse Then
                            SearchForFiles sRoot & TrimNull(WFD.cFileName) & _
                                vbBackslash
                        End If
                    End If
                Else
                    'must be a file and not the open temp file (~$....)
                    If MatchSpec(WFD.cFileName, fp.sFileNameExt) And Not _
                            Left$(WFD.cFileName, 2) = "~$" Then
                        fp.nCount = fp.nCount + 1
                        List1(i, 0) = sRoot & TrimNull(WFD.cFileName)
                        i = i + 1
                    End If
                End If
            Loop While FindNextFile(hFile, WFD)
        End If
     
        Call FindClose(hFile)
     
    End Sub
    Private Function QualifyPath(sPath As String) As String
    If Right$(sPath, 1) <> vbBackslash Then
            QualifyPath = sPath & vbBackslash
        Else
            QualifyPath = sPath
        End If
    End Function
    Private Function TrimNull(startstr As String) As String
     TrimNull = Left$(startstr, lstrlen(StrPtr(startstr)))
    End Function
    Private Function MatchSpec(sFile As String, sSpec As String) As Boolean
    MatchSpec = PathMatchSpec(StrPtr(sFile), StrPtr(sSpec)) = _
        fp.bFindOrExclude
    End Function
    Et ensuite un USF avec 2 boutons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    'rechercher exe scanner
    Private Sub CommandButton1_Click()
    Start
    End Sub
    'boite de dialogue numérisation scanner
    Private Sub CommandButton2_Click()
    If [A1] = "" Then Exit Sub
    Shell [A1], vbNormalFocus
    End Sub
    En espérant que cela serve à quelqu'un...

    Bonne journée

    Chris

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

Discussions similaires

  1. Création des rapports (format PDF) sous Android
    Par iliass001 dans le forum Android
    Réponses: 2
    Dernier message: 11/11/2014, 12h39
  2. Récupération des dimensiosn de l'écran sous VBA
    Par peaceandloveman01 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2007, 13h23
  3. afficher des etats au format PDF
    Par oasma dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/05/2007, 14h51
  4. Envoi d'un Etat par mail au format pdf en vba
    Par johnygrey dans le forum IHM
    Réponses: 13
    Dernier message: 21/12/2006, 15h35
  5. Réponses: 2
    Dernier message: 15/04/2005, 15h51

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