Afficher une image sous condition

Résolu
Sacha_H Messages postés 12 Statut Membre -  
Sacha_H Messages postés 12 Statut Membre -
Bonjour,

J'ai un fichier Excel dans lequel j'aimerais :

- Faire insérer à l'utilisateur leur signature scannée dans un onglet "paramétrage"
- Lui faire nommer "Signature" : insertion - Nom - Définir

Pour qu'ensuite (et c'est là que j'ai besoin de vous) : dans les onglets "opérationnels" lorsqu'il cliquera sur le bouton "Valider" une macro vienne copier-coller l'image "Signature" dans :

- La cellule W32 si Z1 = 1
- Les cellules W32 + W73 si Z1 = 2
- Les cellules W32 + W73 + W114 si Z1 = 3

Je ne sais pas si c'est très clair, n'hésitez pas à me poser des questions ...

Grand merci par avance pour votre aide

Sacha
Configuration: Windows XP Internet Explorer 6.0

12 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Récupères sur ce lien un fichier exemple.
    Pour que ce code fonctionne, il est impératif que la signature soit enregistrée en format .JPG et se trouve dans le même répertoire.
    Pour ne pas toucher au code, remplaces la photo déjà nommée Signature.JPG par la photo de ta signature du même nom.

    https://www.cjoint.com/?lEvbEKRoTT

    Si le code répond à tes attentes, je le reverrais pour essayer de l'alléger

    Option Explicit

    Sub image()
    Dim image As Picture
    Dim design As String
    'efface les images
    Dim photo As Shape
    For Each photo In Worksheets("Feuil1").Shapes
    If photo.Name Like "*Photo*" Then
    photo.Delete
    End If
    Next
    'Suivant valeur en Z1 colle image
    If [Z1] = 1 Then
    [W32].Select
    design = ThisWorkbook.Path & "\Signature.jpg"
    Set image = ActiveSheet.Pictures.Insert(design)
    With image.ShapeRange
    .Name = "Photo1"
    .Height = [W32].Height
    .Width = [W32].Width
    End With
    End If

    If [Z1] = 2 Then
    [W32].Select
    design = ThisWorkbook.Path & "\Signature.jpg"
    Set image = ActiveSheet.Pictures.Insert(design)
    With image.ShapeRange
    .Name = "Photo2"
    .Height = [W32].Height
    .Width = [W32].Width

    [W73].Select
    design = ThisWorkbook.Path & "\Signature.jpg"
    Set image = ActiveSheet.Pictures.Insert(design)
    With image.ShapeRange
    .Name = "Photo3"
    .Height = [W73].Height
    .Width = [W73].Width
    End With
    End With
    End If

    If [Z1] = 3 Then
    [W32].Select
    design = ThisWorkbook.Path & "\Signature.jpg"
    Set image = ActiveSheet.Pictures.Insert(design)
    With image.ShapeRange
    .Name = "Photo4"
    .Height = [W32].Height
    .Width = [W32].Width

    [W73].Select
    design = ThisWorkbook.Path & "\Signature.jpg"
    Set image = ActiveSheet.Pictures.Insert(design)
    With image.ShapeRange
    .Name = "Photo5"
    .Height = [W73].Height
    .Width = [W73].Width

    [W114].Select
    design = ThisWorkbook.Path & "\Signature.jpg"
    Set image = ActiveSheet.Pictures.Insert(design)
    With image.ShapeRange
    .Name = "Photo6"
    .Height = [W114].Height
    .Width = [W114].Width

    End With
    End With
    End With
    End If
    [A1].Select
    End Sub
    0
  2. Sacha_H Messages postés 12 Statut Membre
     
    Bonjour Mike

    Tout d'abord merci ... c'est presque ça :D !!!

    J'aurais préféré que l'mage ne se trouve dans un onglet de mon document, les utilisateurs pourront utiliser ce document sur n'importe quel PC via une clé USB ou un autre PC (domicile et bureau) et par conséquent c'est plus simple ! Par ailleurs, je leur demande de la dimentionner pour qu'elle se colle dans une case précisemment !

    Ne peut on utiliser la fonction copier coller d'une image nommée ?? Je n'ai pas trouvé !

    Merci

    Sacha
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Mon lien n'est pas complet, il manque la photo pour tester le code.
    Pour que le code macro fonctionne, sorts le fichier du fichier ZIP.
    en Z1 j'ai créé une liste déroulante pour sélectionner la cellule vide, 1, 2 ou 3. Pour effacer les photos il suffit de sélectionner l'appostrophe qui correspond à un vide et actionner le bouton ou effacer la valeur en Z1 et clic bouton

    https://www.cjoint.com/?mbk3rULUwx
    0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Mon post c'est croisé, il est possible de paramétrer les dimensions de l'image au départ ou en fonction de la cellule, mais la on va charger le code.
    Pour la signature elle pourrait également être intégrée au fichier dans une colonne masquée, dans ce cas le code serait plus simple

    bien sur fichier à personnaliser avec une simple photo, jettes un œil sur ce fichier

    https://www.cjoint.com/?mble5dTgMI

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Sacha_H Messages postés 12 Statut Membre
     
    Non pardon je ne me suis pas bien fait comprendre ...

    Au lieu d'aller chercher la photo dans un fichier JPG à part (dans le même répertoire) j'aurais préféré que les utilisateurs l'insèrent dans un onglet du document nommé "paramétrage" puisqu'ils sont mobiles et pourront traiter ce document à distance !Mais peux tu adapter ton code à une image nommée "Signature" dans le document j'avoue que je n'en sais rien ... je suis contrôleur de gestion pas dans l'informatique :D !!!!

    Sinon cela fonctionne ; si je peux abuser je n'arrive pas à dimensionner correctement l'image : tel que tu l'as fait tu la formate selon la taille de W32 or W32 est en fait la fusion de plusieurs cellules et fait 1.5 cm de hauteur pour 3 cm de large !

    J'ai écris dans ton code :

    With image.ShapeRange
    .Name = "Photo1"
    .Height = 42.75
    .Width = 84.75

    Mais ça ne semble pas fonctionner !

    Sacha
    0
  7. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Le code est différent mais ça peut, je suis pris par le temps, je te regarde tout ça ce soir
    0
  8. Sacha_H Messages postés 12 Statut Membre
     
    Oui merci c'est très gentil ... si tu as besoin de mon fchier je peux te le joindre (rien de bien confidentiel) !!

    Sacha
    0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,
    Je ne t'oublie pas, je te regarde ça dès que j'ai un moment
    0
  10. Sacha_H Messages postés 12 Statut Membre
     
    Oui grand merci ... mon fichier passe en présentation lundi au comité de pilotage de ma boite ... j'aurais aimé qu'il soit complet ... sinon ce n'est rien ... si je pense que c'est réalisable je le "vendrai" dans l'état ... il sera (sous réserve de validation) en circulation au 01/01/2010 ça laisse un peu de marge !

    Merci pour ton aide

    Sacha
    0
  11. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Alors il faut faire vite, regardes ce fichier si ça te convient, on verra les explications après, testes la liste déroulante en A4, l'apostrophe en fin de sélection dans la liste déroulante est pour afficher "rien" et donc aucune photo.
    La photo qui sera ta signature est stockée sur le fichier dans une cellule qui pour l'exemple est le couché de soleil Windows

    https://www.cjoint.com/?mdlPNi7851
    0
  12. Sacha_H Messages postés 12 Statut Membre
     
    Ne crois pas que mon silence vaut désintérêt ... je me creuse la tête (blonde ... tu vas commencer à comprendre) depuis 2 heures et sens que je suis proche mais n'aboutit pas à la mise en place des formules dans mon fichier ...

    Je crierai au secours dans une heure (en argumentant sur les ??) si je n'ai pas réussi ... j'en ai oublié de déjeuner ... ça me rend dingue de ne pas y arriver !!!

    Sacha
    0
  13. Sacha_H Messages postés 12 Statut Membre
     
    ça y est !!!!!!!! J'ai réussi !!!!

    Bon j'ai finalement simplifié 2-3 trucs ... mais ça fonctionne !!!

    Grand merci pour ton aide !

    Bravo pour cette implication au service des autres .... c'est du bonheur à l'état pur !

    Sacha
    0