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 :

Renommage de photo ex : 0001 image en Dupont Jullien d'après tableau Microsoft Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Photographe Retoucheur
    Inscrit en
    Août 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Photographe Retoucheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 23
    Par défaut Renommage de photo ex : 0001 image en Dupont Jullien d'après tableau Microsoft Excel
    Bonjour à tous.

    je suis confronté à un problème de renommage de visuels numéroté de 0001 à 9999 il faudrait les remommer d'après un tableur Microsoft Excel comportant des noms et prénom les prises de vue sont réalisée dans l'ordre alphabétique rigoureux quelqu'un aurait il la solution miracle?

    Travail sous mac osx 10.10.5 et photoshop CS 6

    Merci pour toute vos suggestions

    Bien cordialement
    Macprogresse

  2. #2
    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
    Par défaut
    Salut, via Name As, et une boucle sur la liste de tes noms / prénoms.

  3. #3
    Membre averti
    Homme Profil pro
    Photographe Retoucheur
    Inscrit en
    Août 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Photographe Retoucheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 23
    Par défaut
    Merci pour ta réponse
    peux tu développer je ne maitrise pas Excel Name As est un fonction Excel?
    Une appli?
    comment mettre en oeuvre?

  4. #4
    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
    Par défaut
    Salut, on sent l'attente du tout cuit : à lire.

    Bref bestialement une solution PC avec un appel d'API . Cela sans tenir compte des autres particularités possibles sur Mac ( voir ici )
    N'en ayant plus depuis presque 20 ans à toi de poursuivre et adapter à ton contexte.

    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
    Option Explicit
     
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                                 (ByVal hwnd As Long, _
                                                  ByVal pszPath As String, _
                                                  ByVal lngsec As Long) As Long
     
    Private Function CreationDossier(sDossier) As Long
    Dim Rep As Long
        Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function
     
    Sub Tst()
    Dim LastRow As Long
    Dim i As Long, sNomPrenom As String, sNum As String
    Dim sDossier As String, sFichier As String
    Dim sDossierOut As String
     
        LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
        sDossier = ThisWorkbook.Path
        sDossierOut = ThisWorkbook.Path & "\" & "Out"
        CreationDossier sDossierOut
     
        For i = 2 To LastRow
            sNomPrenom = Feuil1.Cells(i, 1) & " " & Feuil1.Cells(i, 2) & ".jpg"
            sNum = Format(Feuil1.Cells(i, 3), "0000")
            sFichier = sDossier & "\" & sNum & ".jpg"
            If Dir(sFichier, vbNormal) <> "" Then
                Name sFichier As sDossierOut & "\" & sNomPrenom
            End If
        Next i
    End Sub
    Images attachées Images attachées  

  5. #5
    Membre averti
    Homme Profil pro
    Photographe Retoucheur
    Inscrit en
    Août 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Photographe Retoucheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 23
    Par défaut
    veux tu que je t'envoi la liste de tous les sites consultés et toutes les solutions que j'ai tester avant de lancer ce SOS?

  6. #6
    Membre averti
    Homme Profil pro
    Photographe Retoucheur
    Inscrit en
    Août 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Photographe Retoucheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 23
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    Salut, on sent l'attente du tout cuit : à lire.

    Bref bestialement une solution PC avec un appel d'API . Cela sans tenir compte des autres particularités possibles sur Mac ( voir ici )
    N'en ayant plus depuis presque 20 ans à toi de poursuivre et adapter à ton contexte.

    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
    Option Explicit
     
    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
                                                 (ByVal hwnd As Long, _
                                                  ByVal pszPath As String, _
                                                  ByVal lngsec As Long) As Long
     
    Private Function CreationDossier(sDossier) As Long
    Dim Rep As Long
        Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function
     
    Sub Tst()
    Dim LastRow As Long
    Dim i As Long, sNomPrenom As String, sNum As String
    Dim sDossier As String, sFichier As String
    Dim sDossierOut As String
     
        LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
        sDossier = ThisWorkbook.Path
        sDossierOut = ThisWorkbook.Path & "\" & "Out"
        CreationDossier sDossierOut
     
        For i = 2 To LastRow
            sNomPrenom = Feuil1.Cells(i, 1) & " " & Feuil1.Cells(i, 2) & ".jpg"
            sNum = Format(Feuil1.Cells(i, 3), "0000")
            sFichier = sDossier & "\" & sNum & ".jpg"
            If Dir(sFichier, vbNormal) <> "" Then
                Name sFichier As sDossierOut & "\" & sNomPrenom
            End If
        Next i
    End Sub



    Merci à toi effectivement j'avais vu çà mais n'est pas réussi à l'adapter pour mac, je vais donc me repencher vers cette solution en espérant trouver la solution dans le lien
    [URL="http://www.rondebruin.nl/mac/section3.htm"]

    Bonne soirée à toi
    Bien Cordialement
    Macprogresse

  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
    Bonjour,

    commence par lire ceci : https://www.developpez.net/forums/d1...ommer-fichier/
    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é
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    1)
    Citation Envoyé par kiki29 Voir le message
    Salut, via Name As, et une boucle sur la liste de tes noms / prénoms.
    2)
    peux tu développer je ne maitrise pas Excel Name As est un fonction Excel?
    Une appli?
    comment mettre en oeuvre?
    3)
    Salut, on sent l'attente du tout cuit : à lire.
    4)
    veux tu que je t'envoi la liste de tous les sites consultés et toutes les solutions que j'ai tester avant de lancer ce SOS?
    Sans d'autres commentaires ! on fouille partout sur la toile (c'est également chercher le tout-cuit) , mais on n'ouvre pas son aide interne VBA ? Trop de travail, de lecture ?

  9. #9
    Membre averti
    Homme Profil pro
    Photographe Retoucheur
    Inscrit en
    Août 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Photographe Retoucheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 23
    Par défaut MERCI
    Citation Envoyé par unparia Voir le message
    1)
    2)
    comment mettre en oeuvre?
    3)
    4)
    Sans d'autres commentaires ! on fouille partout sur la toile (c'est également chercher le tout-cuit) , mais on n'ouvre pas son aide interne VBA ? Trop de travail, de lecture ?
    Bonjour Monsieur "Expert éminent" il fut un temps où quelques personnes de ce forum ne jugeaient pas sans savoir.
    Non je ne connais pas Excel non je ne connais pas le C++ le Python le Java et plein d'autres langages
    Et non avant que tu parles d'aide VBA je ne connaissais pas!!!

    "Avec Excel 2011, vous pouvez continuer à utiliser et gérer des macros Excel 4.0 (XLM macros) qui n'ont pas été mises à niveau vers Visual Basic® for Applications (VBA). Vous ne pouvez pas enregistrer de nouvelles macros Excel 4.0 dans Excel 2011, mais vous pouvez les exécuter et les modifier.
    Excel 4.0 Macro Reference fournit des informations (syntaxe et exemples) pour les fonctions de macro. Pour plus d'informations sur Excel 4.0 Macro Référence, voir le site Web de MicrosoftCliquez sur ce lien pour ouvrir une fenêtre de navigateur. (www.microsoft.com/downloads)
    " et là maintenant je sais que je sais pas et que plus je creuse plus çà me parait être du chinois
    Connais tu le chinois ? NON il va falloir t'y mettre si un jour tu es confronté à devoir dialoguer avec une personne pour une raison urgente ....
    Mais renseignes toi avant car comme pour Excel tout n'est pas rose et en fonction que tu sois sur PC ou Mac que tu disposes de la version Excel 2007/ 2011/ 2016 le langage diffère sans parler des Macros et de leurs mises en oeuvre ???

    La macro étant photographe je maîtrise y compris le Stacking.
    Pour le chinois moi non plus je ne connais pas d'autant que le chinois c'est vaste que ce soit en dialecte : gan ,Guang , keijia, Jie, Wu , Xiang et le Yue ...

    Merci de ton aide

    Bien Cordialement
    Finalement je sais que je ne saurais jamais

  10. #10
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Non, je ne connais pas le chinois.
    Je sais par contre que si je décidais un jour, par nécessité, de le parler, je commencerais par en apprendre les bases.
    Et il ne me viendrait pas à l'idée que n'existe aucun dictionnaire de vocabulaire. Pas plus qu'il ne me viendrait à l'idée qu'un meuble IKEMACHIN est livré sans mode d'emploi de montage.
    Bonne chance dans tes "approches" du développement.

    Je n'y connais rien, non plus, en photographie. Mais si je devais un jour m'y intéresser, j'en apprendrais d'abord les bases, plutôt que d'interroger des photographes à chaque petit bobo élémentaire (ils m'enverraient vite bouler en m'invitant à commencer par le commencement). Et je lirais avec avidité la documentation de chacun de mes outils de photographie. Et si ne n'en comprenais même pas les formulations, j'abandonnerais probablement l'idée d'apprendre la photographie ou m'inscrirais à un stage d'apprentissage de A à Z (à au moins B, hein ...)

  11. #11
    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,

    la comparaison est abusé, le vba n'est pas du chinois (surtout que c'est écrit avec notre Alphabet), il n y a rien de compliquer de comprendre que :
    - une macro commence par Sub et fini par End Sub
    - d'indiquer un chemin dans une variable par exemple =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chm = "Macintosh HD:Users:NomUtilisateur:Desktop:DeveloppezCom:MonDossierImageATraiter:"
    - de faire une boucle afin de boucler sur les anciens noms dans une colonne et mettre les nouveaux noms de la la colonne adjacente -> http://silkyroad.developpez.com/vba/boucles/
    - et d'utiliser l'aide vba (même avec une petite recherche) pour appliquer -> https://msdn.microsoft.com/fr-fr/vba...name-statement

    c'est comme les Math faut appliquer les formules
    Après c'est une question de logique et de bon sens
    PS : la plupart de ce qui demande de l'aide, le font en ayant travailler un minimum et amène un code (même si il n'est pas nickel), afin de faire part des points bloquant (he oui on ne donne pas du tout cuit)

    La logique est quasi la même que dans la vrai vie par analogie :
    si tu déménages des cartons du camions à l'appart du va faire x tour de A vers B

    Je commence au camion
        Action de porter le carton de A vers B
    Je depose le carton 'et on retourne au camion -> je viens de faire un tour de la boucle - et on continue ainsi de suite jusqu'au dernier carton et la boucle se finit

    le principe n'est pas si éloigné, bien sur il faut les bases que l'on peut trouver dans la Faq
    l'une des base importante à savoir est : Utiliser les variables en VBA Excel

    T'as de quoi commencer …
    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 ;)

  12. #12
    Membre averti
    Homme Profil pro
    Photographe Retoucheur
    Inscrit en
    Août 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Photographe Retoucheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 23
    Par défaut
    Citation Envoyé par RyuAutodidacte Voir le message
    Bonjour,

    la comparaison est abusé, le vba n'est pas du chinois (surtout que c'est écrit avec notre Alphabet), il n y a rien de compliquer de comprendre que :
    - une macro commence par Sub et fini par End Sub
    - d'indiquer un chemin dans une variable par exemple =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chm = "Macintosh HD:Users:NomUtilisateur:Desktop:DeveloppezCom:MonDossierImageATraiter:"
    - de faire une boucle afin de boucler sur les anciens noms dans une colonne et mettre les nouveaux noms de la la colonne adjacente -> http://silkyroad.developpez.com/vba/boucles/
    - et d'utiliser l'aide vba (même avec une petite recherche) pour appliquer -> https://msdn.microsoft.com/fr-fr/vba...name-statement

    c'est comme les Math faut appliquer les formules
    Après c'est une question de logique et de bon sens
    PS : la plupart de ce qui demande de l'aide, le font en ayant travailler un minimum et amène un code (même si il n'est pas nickel), afin de faire part des points bloquant (he oui on ne donne pas du tout cuit)

    La logique est quasi la même que dans la vrai vie par analogie :
    si tu déménages des cartons du camions à l'appart du va faire x tour de A vers B

    Je commence au camion
        Action de porter le carton de A vers B
    Je depose le carton 'et on retourne au camion -> je viens de faire un tour de la boucle - et on continue ainsi de suite jusqu'au dernier carton et la boucle se finit

    le principe n'est pas si éloigné, bien sur il faut les bases que l'on peut trouver dans la Faq
    l'une des base importante à savoir est : Utiliser les variables en VBA Excel

    T'as de quoi commencer …

    Si la connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein
    Le savoir ce transmet c'est l'apprentissage. - macprogresse

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Comme je n'y connais rien en MAC, je vais être d'une aide inestimable!

    En revanche Excel je connais un peut!

    Tu as le nom le prénom, sous Windows je dirai le chemin.

    Ça ne devrait pas posé de problème de préparer le travail dans Excel via des formules?

    A=path; B=nom;C=prénom;D=extension(.Gif);E=0001.Gig;F=cible;G=Source!

    Code formule Excel : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    F=A & B & & C & D
    G= A & E
    Pour la partie vba sur Mac pour moi c'est du chinois!

  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
    Admettons que tu ne connais pas les différences de programmation avec PC :
    Ce qu'il faut éviter à tout prix, ce sont les ActiveX et DDL utiliser dans le code :
    on reprends le code de kiki29 :
    Option Explicit

    Private Declare Function SHCreateDirectoryEx Lib "Shell32.dll" Alias "SHCreateDirectoryExA" _
    (ByVal hwnd As Long, _
    ByVal pszPath As String, _
    ByVal lngsec As Long) As Long

    Private Function CreationDossier(sDossier) As Long
    Dim Rep As Long
    Rep = SHCreateDirectoryEx(0&, sDossier, 0&)
    End Function


    Sub Tst()
    Dim LastRow As Long
    Dim i As Long, sNomPrenom As String, sNum As String
    Dim sDossier As String, sFichier As String
    Dim sDossierOut As String

    LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    sDossier = ThisWorkbook.Path => A modifier
    sDossierOut = ThisWorkbook.Path & "\" & "Out"
    CreationDossier sDossierOut


    For i = 2 To LastRow
    sNomPrenom = Feuil1.Cells(i, 1) & " " & Feuil1.Cells(i, 2) & ".jpg"
    sNum = Format(Feuil1.Cells(i, 3), "0000")
    sFichier = sDossier & "\" & sNum & ".jpg" => A modifier
    If Dir(sFichier, vbNormal) <> "" Then
    Name sFichier As sDossierOut & "\" & sNomPrenom => A modifier
    End If
    Next i
    End Sub
    j'ai commencé à te mâcher le travail, à toi de jouer et reviens avec tes modif
    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 ;)

Discussions similaires

  1. Perte photos dans mes images
    Par Danablain dans le forum Windows XP
    Réponses: 1
    Dernier message: 10/08/2009, 22h14
  2. Programme de renommage de photos
    Par Caro-Line dans le forum Téléchargez
    Réponses: 0
    Dernier message: 14/05/2009, 12h09
  3. [Traitement d'image] Probleme d'affichage de photo et d'image.
    Par GeneralDee dans le forum Webdesign & Ergonomie
    Réponses: 5
    Dernier message: 12/05/2008, 22h49
  4. Faire la différence entre texte et photos sur une image
    Par NiuAge dans le forum Traitement d'images
    Réponses: 12
    Dernier message: 23/02/2007, 23h45

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