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 :

comparaison fichiers .xls et .pdf


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut comparaison fichiers .xls et .pdf
    Bonjour,

    Le petit souci :

    J'ai dans un dossier des classeurs xls (exemple :a.xls) et des documents (a.pdf).
    Le fichier "a" est en fait le même (=1 enregistré sous excel et l'autre sous pdf)

    Il m'arrive de me tromper et donc d'enregistrer un fichier "a" en xls et d'oublier de l'enregistrer en .pdf (je schématise volontairement)

    J'essaye d'utiliser la méthode de Silky Read (au passage, merci pour tes excellentes FAQ ) pour lister dans un colonne les fichiers .xls et dans l'autre les fichier .pdf. La colonne A regroupant l'indice "a"

    En fait, j'essaye de comparer la colonne des .xls et des .pdf et de m'avertir s'il y a un décalage....c'est à dire colonne A, le nom du fichier, colonne B si le fichiera.xls existe, colonne C, si le fichier a.pdf existe...et ça couince.....: j'ai "vrai-vrai-" alors que le fichier n'existe pas dans le dossier....

    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
    Sub Test()
     
     
            Dim c As Range
     
       ' ouverture base des chemins
       i = 1
      For Each c In Range("a2", Range("a2").End(xlDown))
        If c <> "" Then
       i = i + 1
       Cells(i, 2) = DossierExiste("C:\Essai\er\c.Value.xls")
    Cells(i, 3) = DossierExiste("C:\Essai\er\c.Value.pdf")
     
     
        End If
        Next
    End Sub
     
     
    Function DossierExiste(NomDossier As String) As Boolean
        DossierExiste = Dir(NomDossier, vbSystem + vbDirectory) = ""
    End Function
    Une idée d'où je déconne ????

    Merci,
    A+

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    bonsoir,

    j'ai pas tout lu, mais à moins que tes fichiers se nomment c.value.xls , sort c.value des " :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells(i, 2) = DossierExiste("C:\Essai\er\" & c.Value & ".xls")
    Cells(i, 3) = DossierExiste("C:\Essai\er\" & c.Value & ".pdf")
    et dis nous quoi.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut






    y a pas d'autres mots....

    Evidemment ..........dire que je planche dessus depuis 1h, alors que c'était devant moi.......

    Trop cool JackOuYA,

    Merci pour ravoir rallumé la lumière de ma "conscience"

    Merci,
    A+

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonsoir,
    Mais non ...

    L'erreur essentielle (en plus de celle relevée) est dans la fonction elle même (remplacer = par <>, pardi...

    Encore que je n'aime pas le nom de cette fonction, qui donne à penser que l'on recherche l'existence d'un dossier et non d'un fichier ... mais bon ...

    Analyse, comprens et adapte cet exemple :

    Appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim mon_fichier As String
      mon_fichier = "d:\essai.txt"
      MsgBox DossierExiste(mon_fichier)
    Fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function DossierExiste(NomDossier As String) As Boolean
        DossierExiste = Dir(NomDossier, vbNormal Or vbHidden Or vbSystem) <> ""
    End Function
    Edit : si tu ne fais pas ce que je te dis, tu auras bien des True et des False, mais certainement pas ceux que tu attends ...... ne serait-ce qu'en raison de ton VbDirectory !!! (fais tes essais et tu comprendras le coup !)

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci ucfoutu,


    Effectivement, j'avais fait cette erreur (tout comme celle de Read, au lieu de ROAD (encore pardon.....)), mais comme j'ai bossé dessus, j'ai effectivement changé le = par les <>, qui, comme tu me le conseilles si bien ,fonctionnent vachement mieux !!!!! et sont surtout, plus logiques....

    Merci .....



    A+ pour de prochaines aventures.....

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

Discussions similaires

  1. Convertir fichier .xls en .pdf
    Par Niiin dans le forum C++
    Réponses: 5
    Dernier message: 08/03/2011, 01h22
  2. [BO]:Taille des fichiers xls, pdf..
    Par fatima ezzahra dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 07/01/2011, 13h48
  3. [E-00] Syntaxe pour convertir un fichier .xls en pdf
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/02/2009, 08h38
  4. Fusion de fichiers .csv et comparaison avec fichier .xls
    Par GourenBZH dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/04/2008, 14h15
  5. Réponses: 1
    Dernier message: 26/02/2008, 09h08

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