Demande d'aide pour finaliser Macro recherche+affichage+photo

pierre93

XLDnaute Nouveau
Bonjour à tous,

Voila j'ai commencé à créer une macro dont le but est d'aller chercher des infos dans une feuille du classeur et de les afficher au bon endroit dans une autre feuille du même classeur. La recherche est simple il suffit de taper un code dans la case correspondante et de cliquer sur "rechercher" et les informations se remplissent automatiquement.
Le problème est que j'ai pris des morceaux de macro à droite et à gauche (merci à Pierre pour le code que j'ai repris et merci à Kim Tucker dont j'ai pris une partie de macro qu'il avait donné sur ce forum) que j'ai complété et modifié bonnant mallant. Le résultat est très bancal.
Je n'arrive pas à résoudre plusieurs problèmes :
1 : La recherche s'effectue sur toutes les feuilles du classeur, je ne sais pas ou changer le code pour ne rechercher que sur la feuille "fichier pierre".
2 : Les résultats de ma recherche s'affiche en ligne et je ne sais pas comment les afficher dans les cases souhaitées. J'ai donc feinté en affichant le résultat de recherche dans une troisieme feuille ("feuille de résultat"), dans laquelle je vais chercher les résultats pour les afficher correctement dans ma feuille "recherche" avec un enrobage en mise en forme conditionnelle.
Mais bon le résultat est quand même très bancal...(et je n'arrive pas à aller prendre la photo) et si ma macro pouvait me permettre de tout faire d'un coup ca serait parfait, plutôt que de faire des bidouillages. De plus je pense qu'une partie du code de ma macro est inutile, mais je ne sais pas vraiment ce que je peux enlever.

Donc si quelqu'un peut me me donner un petit coup de main pour ma macro ca serait parfait.

Je vous remercie par avance. (fichier en pj)


Merci d'avance !
 

Pièces jointes

  • fiche verif appro pour forum.zip
    43.3 KB · Affichages: 37

pierre93

XLDnaute Nouveau
Re : Demande d'aide pour finaliser Macro recherche+affichage+photo

Ah oui effectivement, votre code est quand même BEAUCOUP plus simple que le mien !
Merci beaucoup, il ne me reste plus qu'a redimensionner la photo pour l'adapter à la cellule mais ca je crois que je saurais me débrouiller.
Merci encore !
 

pierre93

XLDnaute Nouveau
Re : Demande d'aide pour finaliser Macro recherche+affichage+photo

Bon c'est la grosse honte, mais je n'arrive pas à faire en sorte que la recherche se fasse dans plusieurs répertoires.

Votre code initial pour aller chercher la photo est :
chemin = ActiveWorkbook.Path & "\" & photo

Je l'ai modifié de la façon suivante :

repertoires = "rep2,rep3,rep4,repertoire photo"
lesrep = Split(repertoires, ",")
rep = ActiveWorkbook.Path
rep_image = rep & "/" & lesrep
chemin = rep_image & "\" & photo & ".jpg"

Mais la macro n'affiche les photos ne se trouvant que dans "rep2", pas dans les autres. (J'ai rajouté le & ".jpg" car la base de données ne contient que la référence sans l'extension). Que dois-je rajouter pour que la recherche s'effectue dans tous les répertoires désirés ?

Merci d'avance !
 

kjin

XLDnaute Barbatruc
Re : Demande d'aide pour finaliser Macro recherche+affichage+photo

Bonjour,
Si les repertoires se nomment "rep2, rep3...et sont des sous-répertoires du repertoire actif
Code:
Sub ImpImage(photo As String)
Dim sRep, Rep As String, i As Integer, Chemin As String, Trouve As Boolean, Img As Object
sRep = Array("rep2\", "rep3\", "rep4\", "repertoire photo\")
Rep = ActiveWorkbook.Path & "\"
For i = LBound(sRep) To UBound(sRep)
    Chemin = Rep & sRep(i) & photo & ".jpg"
    If Dir(Chemin) <> "" Then
        Set Img = ActiveSheet.Pictures.Insert(Chemin)
        Img.Name = "Photo"
        Trouve = True
        Exit For
    End If
Next
If Trouve = False Then MsgBox "pas de photo associée", vbInformation

End Sub
A+
kjin
 

Pièces jointes

  • Pierre.zip
    44.5 KB · Affichages: 33
  • Pierre.zip
    44.5 KB · Affichages: 32
  • Pierre.zip
    44.5 KB · Affichages: 42
Dernière édition:

pierre93

XLDnaute Nouveau
Re : Demande d'aide pour finaliser Macro recherche+affichage+photo

Voila pour ceux que ça intéresse j'ai complété la macro pour que les photos s'adaptent à la taille de la cellule et soient centrées. Je sais pas si c'est bien propre mais ca fonctionne :)

Merci pour votre aide !

Sub ImpImage(photo As String)
Dim sRep, Rep As String, i As Integer, Chemin As String, Trouve As Boolean, Img As Object, Emplacement As Range, ratio As Single


sRep = Array("rep2\", "rep3\", "rep4\", "repertoire photo\")
Rep = ActiveWorkbook.Path & "\"
For i = LBound(sRep) To UBound(sRep)
Chemin = Rep & sRep(i) & photo & ".jpg"
If Dir(Chemin) <> "" Then
Set Img = ActiveSheet.Pictures.Insert(Chemin)
Set Emplacement = Range("C16")
Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)

With Img.ShapeRange
.LockAspectRatio = msoTrue
.Top = Emplacement.Top
.Left = Emplacement.Left
If .Width > Emplacement.Width Then
.Width = Emplacement.Width
Else
.Height = Emplacement.Height
End If
Img.ShapeRange.IncrementLeft (ActiveCell.Width - Img.ShapeRange.Width) / 2
Img.ShapeRange.IncrementTop (ActiveCell.Height - Img.ShapeRange.Height) / 2

End With

Img.Name = "Photo"
Trouve = True
Exit For
End If
Next
If Trouve = False Then MsgBox "pas de photo associée", vbInformation

End Sub
 

Statistiques des forums

Discussions
312 593
Messages
2 090 073
Membres
104 366
dernier inscrit
Porcelaine