Choisir repertoire, modifier un code existant ?

re4

XLDnaute Occasionnel
Bonjour
J'ai récupéré le code ci-dessous qui fonctionne bien, mais je voudrais pouvoir choisir le répertoire ou il y a les photos
ici le répertoire est en dur : Image = ThisWorkbook.Path & "\Test photos\" & .Cells(Lg, "B") , mes connaissances en VBA ne me permettent pas de le modifier.

En vous remerciant beaucoup pour votre aide
Bonne journée

ps: déontologiquement je ne sais s'il faut mettre le lien du forum ou j'ai récupéré ce code (?)

HTML:
Option Explicit


Sub Affiche_Image()
Dim Ws As Worksheet                   ' Sert à manipuler plus facilement l'objet feuille
Dim Image As String                   ' Contiendra le nom de l'image
Dim Lg As Long                        ' Numéro de la dernière ligne colonne B


  Set Ws = Sheets("Feuil1")                                           ' Nom de la feuille

  Application.ScreenUpdating = False                                  ' Interdit le raffraîchissement d'écran
  
  Efface_Images
  
  With Ws
  
    For Lg = 1 To .Range("B65536").End(xlUp).Row                      ' Parcourt de toute la colonne B
 

     Image = ThisWorkbook.Path & "\Test photos\" & .Cells(Lg, "B")        ' Répertoire à actualiser
        
      On Error Resume Next                                            ' On s'affranchit des erreurs
      With .Pictures.Insert(Image).ShapeRange                         ' On insère l'image dont le nom est en colonne B
        '.LockAspectRatio = msoFalse                                   ' On peut la redimmensionner comme on veut
        .LockAspectRatio = msoTrue
        .Left = Ws.Cells(Lg, "A").Left                                ' Position gauche
        .Top = Ws.Cells(Lg, "A").Top                                  ' Position Haut
        .Width = Ws.Cells(Lg, "A").Width                              ' Largeur
        .Height = Ws.Cells(Lg, "A").Height                            ' hauteur
      

      
      End With
      If Err.Number > 0 Then                                          ' Si une erreur (image non présente)
        MsgBox .Cells(Lg, "B") & vbCr & "Image inexistante"           ' On le signale
      End If
    Next Lg
  End With
End Sub
 
Dernière édition:

re4

XLDnaute Occasionnel
Re : Choisir repertoire, modifier un code existant ?

Bonjour,
Je découvre ton super boulot, je fais le tour de la bête et je te dis mais ça parait excellent, je soumets à mes amis qui ont intérêt à approuver ! ;-) non je rigole je ne suis pas comme ça mais il faut reconnaitre que tu as fait un super travail.
Je vais regarder si je peux faire une mise en page (cadre autour des cellules, centrage vertical et autres petits détails.
J'attends leurs retour pour avancer la dessous, peut être que je reviendrais vers toi ;-)

Encore merci, je suis agréablement surpris par ton implication et je ne sais comment te remercier.
Je te tiens informé.

Uge
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Choisir repertoire, modifier un code existant ?

Bonsoir,

content pour toi !
je suis en train de travailler sur un routine pour modifier automatiquement les images
lorsqu'on modifie la largeur de colonne dans "data" ! tu peux agrandir ou diminuer directement !?
je suis bien avancé et ça fonctionne, mais j'attend demain pour revérifier tout ça !
à bientôt !
 
Dernière édition:

re4

XLDnaute Occasionnel
Re : Choisir repertoire, modifier un code existant ?

Bonjour
Super idée pour l'incrémentation / décrémentation et en plus c'est dynamique !
Mes amis (es) ont trouvé ton programme génial,
J'ai eu quelques questions en retour :
1- Est il possible d'importer d'autres formats photo => RAW, TIFF, NEF, j'ai essayé RAW la photo n'est pas importé, c'est peut être normal excel ne sais pas lire ces formats ?
2- Est il possible de visualiser la liste des fichiers dans le répertoire choisi ? (Comme l'exploreur Windows)
3- Centrage => ok dans ta V5
4- Date de prise de vue, => code 12 (j'ai testé sous win7, ok)
5- Afficher la définition ok dans ta V5 (code 31)
6- faire une bordure pour les cellules non vides
7 - Afficher le ratio, ça se complique, d'après les tests sous Win7, j'ai :
31 pour pixels H pixels V - xxxx pixels (win7) => ok dans tes versions​
162 pour pixels H - xxxx pixels (win7)​
164 pour pixels V - xxxx pixels (win7)​
Il y a un hic ce ne sont pas des valeurs mais du texte, il faut donc les convertir en valeur pour obtenir le ratio (ex h/v = 1.5)
J'ai une macro qui fait ça mais je ne sais pas l'inclure dans ton super code !

Remarque, lorsque l'on dimensionne une petite cellule puis ''load répertoire'' si l'on agrandi l'imagette avec le curseur le ratio n'est pas linéaire et au bout d'un moment l'imagette déborde sur la colonne B. Tu n'avais peut être pas prévue cette manip (moi non plus) mais la fonctionnalité existe. On peut l'exclure et dire que la dimension de l'imagette est celle d'avant l'import, sinon on recommence l'import.

Je pensais faire un tableau à cocher ou pas dans une feuille pour sectionner les exifs que l'on veut extraire, ça peut être tout simplement une ''x'' dans la cellule adjacente du nom de l'exif

Si tu as le temps et si ça t'intéresse.
Encore merci
 

Roland_M

XLDnaute Barbatruc
Re : Choisir repertoire, modifier un code existant ?

bonsoir,

1) concernant les autres extensions je ne connais pas !?
2) affichage des fichiers avec une sélection simplement d'un dossiers Non !
6) bordure c'est fait
7) le ratio c'est fait

pour le reste tout est toujours possible, mais bon il faut bien un moment donné se limiter,
et puis là j'ai du travail que viens de me demander mon fiston pour son entreprise.

revoir ici les modif au post#30

https://www.excel-downloads.com/threads/choisir-repertoire-modifier-un-code-existant.20005173/

EDIT: pour l'histoire des agrandissement je viens de solutionner !
 
Dernière édition:

re4

XLDnaute Occasionnel
Re : Choisir repertoire, modifier un code existant ?

Bonsoir
Je me permets de revenir vers toi.
hors les noms de fichiers le reste des exifs ne sont plus centrés... (je dois pouvoir retrouver les petits en regardant ton code de la V4
Je ne trouve pas comment tu as fait le cadre sur les images j'aurai préféré sur toutes les cellules non vide, si tu me guide je devrai y arriver

Le ratio des images verticale était < 1 j'ai modifié comme suit, qu'en pense tu ?
Code:
   If I Then
      VX! = Val(Left(Temp$, I - 1))
      VH! = Val(Mid(Temp$, I + 1))
        
      ' modification U our ratio >1 sur image verticale
     ' If VX > 0 And VH > 0 Then
      If VH > VX Then                               'origine V5
      '  Cells(Lig, Col) = Format(VX / VH, "0.000") 'origine V5
         Cells(Lig, Col) = Format(VH / VX, "0.00")  'modif U
      Else
         'Cells(Lig, Col) = "nc"                    'modif U
      Cells(Lig, Col) = Format(VX / VH, "0.00") ' pour ratio >1 sur image verticale
      End If
   Else
      Cells(Lig, Col) = "nc"
   End If

Merci
Bonne nuit ;-)
 

Roland_M

XLDnaute Barbatruc
Re : Choisir repertoire, modifier un code existant ?

re

tu tombes à pic !

regarde au post#30 je viens de corriger le problème à l'instant !!!

je regarde pour te mettre des cadres dans toutes les cellules je pensais que c'était que pour l'image !
et pour l'affichage ratio !
à tout de suite toujours au post#30 !
 
Dernière édition:

re4

XLDnaute Occasionnel
Re : Choisir repertoire, modifier un code existant ?

Merci beaucoup
Tout est ok, pour info lorsque je parlais de visualiser les fichiers dans le répertoire, je parlais de la fenêtre qui s'ouvre lorsque l'on clique sur load. Ce n'est pas important... ,-)
Je vais essayer de digérer ton code, y a des truc que je comprends et d'autres je ne sais pas ce que ça mange l'hiver....;)

Encore mille merci de ta précieuse aide et de ta patience
A bientôt peut être,
Uge
 

Roland_M

XLDnaute Barbatruc
Re : Choisir repertoire, modifier un code existant ?

re et dern pour cette nuit

je vais mettre de suite ma toute dernière modif ! dans qq secondes va voir toujours au post#30 !

quand à la fenêtre qui s'ouvre avec load on ne voit pas les fichiers !
c'est quand on veut charger un fichier qu'on les fichiers qui s'affichent mais c'est une autre boîte de dialogue !

je peux si tu veux te faire cette boite pour surfer sur les dossiers mais il ne faudra pas charger de ficher !
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Choisir repertoire, modifier un code existant ?

re

désolé mais je suis persévérant donc là je viens de t'ajouter un bouton pour lister des fichiers !
tu peux cliquer ouvrir un fichier il ne se passera rien !

dans qq secondes je te met le fichier toujours au post#30 !
 

re4

XLDnaute Occasionnel
Re : Choisir repertoire, modifier un code existant ?

Bonjour
Me re-voici ;-)

Petite question, lorsque je diminue le nombre d"exif il y a erreur d'exécution '5'!

Code:
'B=0Nom ' C=12date de prise de vue D=20Auteurs 'E=25Copyright 'F=31Dimensions 'G=1Poids 'H il y aura le chemin
Col = NoPremColImage 'pour départ après Col avec images +1
' For X = 1 To 6 origine
For x = 1 to 4        
'I = Choose(X, 0, 12, 20, 25, 31, 1)  origine
I = Choose(X, 0, 12, 20, 25) 
  Col = Col + 1: Cells(Lig, Col) = myFolder.GetDetailsOf(myFile, I)
  Cells(Lig, Col).VerticalAlignment = xlCenter
  Cells(Lig, Col).Borders.LineStyle = xlContinuous
Next

Ca vient d'où docteur ?
Merci
 

Roland_M

XLDnaute Barbatruc
Re : Choisir repertoire, modifier un code existant ?

Bonsoir,

excuses moi mais en ce moment je suis débordé !
par contre concernant le nombre de colonnes de données, si tu diminues, en l'état, tu vas avoir des problèmes,
car j'extrait des données dans ces colonnes principalement pour redim et si la colonne et modifiée c'est erreur ou plantage assuré !

dès que j'ai un peu de temps je reviendrais car là j'ai un gros soucis à régler pour un logiciel pour mon fils demain matin à son boulot !
 

Statistiques des forums

Discussions
312 360
Messages
2 087 594
Membres
103 604
dernier inscrit
CAROETALEX59