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 :

Connaitre si une image existe ou pas [XL-MAC 2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut Connaitre si une image existe ou pas
    Bonjour à tous,

    j'ai un fichier excel avec des références et à coté de ça j'ai également un dossier avec des images
    ce qui est bien le nom des images sont les mêmes que ceux des références

    exemple de fichier excel

    REFERENCE - IMAGES

    123 - 123.jpg
    198 - 198.jpg
    234 - 234.jpg

    ce que j'aimerais faire c'est interrogé la colonne images et de savoir si physiquement l'image existe ou pas dans le dossier images

    ainsi j'aurais une 3eme colonne avec VRAI pour existant FAUX pas présent

    comme ça au final je peux trier les FAUX et faire ma recherche d'image

    c'est possible?


    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    En faisant une fonction VBA tu peux y arriver.

    Regarde les solutions que te donnent
    - Dir()
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Bonjour et merci pour votre réponse,

    j'ai googlé et essaye de faire des test mais je n'arrive pas
    j'essaye déjà de voir si ce code fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Not Dir("Macbook Pro DE:Users:pecde:Desktop/img/img_IMG_SITE/0XM.jpg", vbDirectory) = vbNullString Then
        MsgBox "exists"
    Else
        MsgBox "does not exist"
    End If
    Puis je devrez trouvez la méthode pour insérer dans la cellule

    merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Un lien vers le cours en anglais de la reference en terme de dev vba sous Mac :
    https://www.rondebruin.nl/win/s9/win003.htm

    Quant a la syntaxe pour arriver a pointer sur ton fichier, je n'ai plus de mac sous la main pour te donner la solution.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Ok je regarde ça, sans passé par du vba on sais faire cela? avec excel?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    j'ai résolu mon problème avec mysql
    merci

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonsoir tous,

    Jean-Philippe André : Attention le lien donné est pour PC

    Pour ceux qui passe par là :

    Solutions Valables pour Excel Mac 2016 et 2011

    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
    Sub FicExiste()
        'Type de chemin Excel 2016 
        Chm = "/Users/UserName/Desktop/DeveloppezCom/TESTS EXCEL 2016/"
        'Type de chemin Excel 2011
        'Chm = "Macintosh HD:Users:UserName:Desktop:DeveloppezCom:TESTS EXCEL 2016:"
        With Sheets("Feuil1")
            DL = .Cells(Rows.Count, 2).End(xlUp).Row
            For i = 2 To DL
                On Error Resume Next
                FichierExiste = Dir(Chm & .Range("B" & i).Value, vbDirectory)
                If Not Err.Number > 0 Then .Range("C" & i) = "Vrai" Else .Range("C" & i) = "Faux"
                On Error GoTo 0
            Next
        End With
    End Sub
    @IVIedia : N'oublie pas de mettre et de mettre des si des posts t'ont été utile
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Bonsoir tous,

    Jean-Philippe André : Attention le lien donné est pour PC

    Pour ceux qui passe par là :

    Solutions Valables pour Excel Mac 2016 et 2011

    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
    Sub FicExiste()
        'Type de chemin Excel 2016 
        Chm = "/Users/UserName/Desktop/DeveloppezCom/TESTS EXCEL 2016/"
        'Type de chemin Excel 2011
        'Chm = "Macintosh HD:Users:UserName:Desktop:DeveloppezCom:TESTS EXCEL 2016:"
        With Sheets("Feuil1")
            DL = .Cells(Rows.Count, 2).End(xlUp).Row
            For i = 2 To DL
                On Error Resume Next
                FichierExiste = Dir(Chm & .Range("B" & i).Value, vbDirectory)
                If Not Err.Number > 0 Then .Range("C" & i) = "Vrai" Else .Range("C" & i) = "Faux"
                On Error GoTo 0
            Next
        End With
    End Sub
    @IVIedia : N'oublie pas de mettre et de mettre des si des posts t'ont été utile

    Bonjour votre code fonctionne bien sans erreur j'ai un peux adapter les colonnes pour mon usage
    cependant ça me donne des faux ...

    Le fichier excel ce trouve au même niveau que les images dans le bureau dossier IMG puis IMG_SITE

    la colonne I c'est ou il ya les nom des images et la colonne K c'est ou le vrai, faux doit être visibile

    voici comment j'ai adapté merci

    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
    Sub FicExiste()
        'Type de chemin Excel 2016
        'Chm = "/Users/UserName/Desktop/DeveloppezCom/TESTS EXCEL 2016/"
        'Type de chemin Excel 2011
        Chm = "Macintosh HD:Users:Moi:Desktop:IMG:IMG_SITE:"
        With Sheets("Feuille1")
            DL = .Cells(Rows.Count, 2).End(xlUp).Row
            For i = 2 To DL
                On Error Resume Next
                FichierExiste = Dir(Chm & .Range("I" & i).Value, vbDirectory)
                If Not Err.Number > 0 Then .Range("K" & i) = "Vrai" Else .Range("K" & i) = "Faux"
                On Error GoTo 0
            Next
        End With
    End Sub

  10. #10
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    PS : merci de ne pas répéter le message précédent me correspondant afin que l'on puisse avoir une fluidité dans la lecture

    Il me semble que la discussion ouverte, concerne Excel Mac 2016.
    Hors le chemin indiqué dans ton code, est celui de Excel Mac 2011, donc pas le bon.
    Il faut remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chm = "Macintosh HD:Users:Moi:Desktop:IMG:IMG_SITE:"
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chm = "/Users/UserName/Desktop/IMG/IMG_SITE/"
    Remplacer UserName par le nom de session correspondant.

    De plus, le code pour trouver la dernière ligne est à modifier, on a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DL = .Cells(Rows.Count, 2).End(xlUp).Row
    Qui correspond à la colonne B, il faut le modifier le code afin qu'il correspond à la colonne "J" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DL = .Cells(Rows.Count, 10).End(xlUp).Row
    Attention que le nom de la feuille correspond bien, dans mon code c'est : "Feuil1"
    Est ce bien le nom de ta feuille ? Sinon mettre le nom correspondant dans ton code.

    Voilà

    Edit : petite modif de texte
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Re bonjour


    MERCI !!!

    - Car le code fonctionne très bien
    - Pour l’explication

    ça fonctionne à merveille

    grâce à votre aide vous m'avez sauvé ma journée,
    je pouvais effectué ce genre de tâches sans excel mais un peux long et beaucoup de chipotage et manipulation avec mysql, import, export, re ouvrir le fichier csv adapter ...

    et la avec cet macro en 1 clique je peux connaitre si il existe ou pas

    Merci encore une fois
    bonne journée

  12. #12
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    De rien,
    N'oublie pas de voter en bas à droite des posts qui t'ont été utile
    Bonne continuation
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Bonsoir je re ouvre ce topic car au mois d'avril 2017 j'avais demander de l'aide pour une macros, mais je n'arrive plus a le faire fonctionner pourtant le code fonctionner bien, pouvez vous me dire si il y a du changements au niveau du excel ou une erreur dans le code? normalement j'ai rien toucher ....

    dans le résultat il me met ou faux partout ou vrai ...

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub FicExiste()
        'Type de chemin Excel 2016
        Chm = "/Users/me/Desktop/drapeau/images/"
        With Sheets("Feuil1")
            DL = .Cells(Rows.Count, 2).End(xlUp).Row
            For i = 2 To DL
                On Error Resume Next
                FichierExiste = Dir(Chm & .Range("b" & i).Value, vbDirectory)
                If Not Err.Number > 0 Then .Range("c" & i) = "Vrai" Else .Range("c" & i) = "Faux"
                On Error GoTo 0
            Next
        End With
    End Sub

  14. #14
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    sur quel version du système OS X es tu ? la dernière ?
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Bonjour je suis sur mac os 10.11.6 et excel 15.41

    merci

  16. #16
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    J'ai bien le problème aussi avec le 2016 que je n'avais pas avant mais c'est ok avec Excel 2011
    Là j'ai pas trop le temps mais je vais regarder …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Merci à votre aise,
    malheureusement je n'est plus office 2011

    à bientôt

  18. #18
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    re,

    j'ai essayé comme cela et ça marche chez moi avec Excel 2016 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub FicExiste()
        'Type de chemin Excel 2016
        Chm = "/Users/me/Desktop/drapeau/images/"
        With Sheets("Feuil1")
            DL = .Cells(Rows.Count, 2).End(xlUp).Row
            For i = 2 To DL
                On Error Resume Next
                FichierExiste = Dir(Chm & .Range("B" & i).Value, vbDirectory)
                If FichierExiste > "" Then .Range("C" & i) = "Vrai" Else .Range("C" & i) = "Faux"
                On Error GoTo 0
            Next
        End With
    End Sub
    Edit : n'oublie pas de mettre le bon chemin en Chm
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Bonsoir votre code macros fonctionne,

    lorsque je lance la macros j'ai une fenêtre qui s'ouvre pour "accorder l’accès", voir image -> https://d.pr/i/aeuVs4

    on sais confirmer ce message pour tout les images une fois pour tout?

    car il ouvre cet fenêtre pour chaque ligne ou il y a une image existante ...

    Merci

  20. #20
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    L'explication et ce qu'il faut faire :
    https://msdn.microsoft.com/fr-fr/lib.../mt654020.aspx

    donc lister les fichiers dans un array et utlisé la commande GrantAccessToMultipleFiles
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Vérifier si une image existe
    Par mika0102 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/01/2008, 12h14
  2. Hover sur une image ne fonctionne pas
    Par adrix26 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 08/08/2007, 17h54
  3. Vérifier si une image existe
    Par kevinf dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2007, 11h21
  4. comment insérer une image dans mon .pas
    Par korntex5 dans le forum Langage
    Réponses: 3
    Dernier message: 04/05/2006, 11h54

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