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 :

Macro pour inserer une image dans une feuille excel [XL-2013]


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
    Cadre Finance
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre Finance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut Macro pour inserer une image dans une feuille excel
    Bonjour,

    j'ai cette macro pour attacher une image à une feuille excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub addem()
     
    Dim vFile As Variant, Sh As Object
    vFile = Application.GetOpenFilename("All Files,*.*", Title:="Find file to insert")
    If LCase(vFile) = "false" Then Exit Sub
    ActiveSheet.OLEObjects.Add Filename:=vFile, Link:=False, DisplayAsIcon:=False, IconFileName:= _
    "C:\WINDOWS\Installer\{90110409-6000-11D3-8CFE-0150048383C9}\xlicons.exe", _
    IconIndex:=0, IconLabel:=vFile
    End Sub
    Elle fonctionne très bien normalement, mais elle ne fonctionne plus quand je protégé ma feuille.
    quelqu'un aurait il une idée des modifications à y apporter?

    d'avance merci

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,

    Interesse-toi à Worksheet.Unprotect et Worksheet.Protect.
    Quand une feuille est protégée, avec une macro, on ne peut pas faire ce qu'on ne peut pas faire non plus "à la main". Par exemple, la modification d'une cellule n'est pas possible. C'est le but de la protection d'une feuille.
    Si tu as besoin de faire qqc sur la feuille en VBA, enlève la protection, fais ce que tu as à faire, puis remet la protection. J'imagine que c'est toi qui a mis la protection et que tu connais l'éventuel mot de passe lié à la protection.

    Je me permets 2 commentaires quant à ton intervention dans le forum :
    • Il y a un forum entièrement dédié à VBA-Excel, il faut y poser ces questions liées à VBA et non pas dans le forum Excel tout court
    • Quand tu écris du code, utilise les balises code (bouton #), cela permet une meilleure lisibilité.

    Ce sera pour la prochaine fois

  3. #3
    Membre averti
    Homme Profil pro
    Cadre Finance
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre Finance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut
    ok merci pour les infos, je vais aller voir dans le forum VBA après avoir étudier les infos

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    La méthode de riaole est la meilleure mais si tu veux simplement permettre l'insertion d'image (par ta macro ou un autre moyen), tu peux laisser cette possibilité au moment où tu protège ta feuille.
    Il suffit, dans la partie "Autoriser...", de cocher l'option "Modifier les objets".

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Pour protéger une feuille côté interface Excel sans la verrouiller pour des modifs réalisées par VBA, tu peux aussi utiliser la méthode Protect avec UserInterfaceOnly à True. Tu pourras ainsi la modifier en VBA alors qu'elle est verrouillée pour l'interface utilisateur. Ce n'est possible qu'en VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil1.Protect userinterfaceonly:=True
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre averti
    Homme Profil pro
    Cadre Finance
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre Finance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut
    Merci pour cette info....j'avance...

    Probleme, l'image insérée s'insère n'importe ou sur mon document de base....
    une idée pour le positioner directement à un endroit predefine?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    La méthode Add de OleObjects te permet de préciser Top, Left, Width et Height lors de l'ajout. (https://msdn.microsoft.com/fr-fr/lib.../ff195728.aspx)

    Tu peux aussi utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim oo as oleobject
     
    set oo = feuil1.oleobjets.add(...)
    with oo
        .top = ...
        .left = ...
        .width = ...
        .height = ...
    end with
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre averti
    Homme Profil pro
    Cadre Finance
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre Finance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut
    Merci Pierre....mais je suis vraiment un bleu en VBA...

    à quel endroit le placer dans ma macro de base?

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Si tu positionnes ton objet au moment de l'ajout, il te suffit de compléter ta ligne ActiveSheet.OLEObjects.Add ... top:=..., left:=...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Probleme, l'image insérée s'insère n'importe ou sur mon document de base....
    une idée pour le positioner directement à un endroit predefine?
    je suis vraiment un bleu en VBA...
    Lis ça :
    https://msdn.microsoft.com/fr-fr/lib.../ff197177.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff840244.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff195728.aspx

  11. #11
    Membre averti
    Homme Profil pro
    Cadre Finance
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre Finance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Par défaut
    Merci beaucoup, ça fonctionne comme je voulais

    à la prochaine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. [CS5.5] extension php upload pour insérer le nom d'une image dans une table
    Par barale61 dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 14/02/2013, 10h48
  3. inserer un lien vers une image dans une news
    Par jerrypeeren dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/07/2008, 22h51
  4. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19

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