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 :

Vba code pour condition read only


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut Vba code pour condition read only
    Bonjour,

    J ai fait un code macro pour envoyer par mail mon classeur Excel lorsque je clic sur le bouton que j ai inséré!

    Mais j aimerais savoir le code vba afin de mettre une condition que si j ouvre mon fichier en mode read only le macro ne s active pas ou se désactive car je suis sur un réseau et je n ai pas besoin que chq personne qui va ouvrir le fichier puisse envoyer un mail avec mon fichier si il s amuse à cliquer sur le bouton

    Je ne sais pas si je suis compréhensible!!!

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jfn1234 Voir le message
    Bonjour,

    Vous pourriez aussi mettre votre macro dans un autre fichier qui serait installé uniquement sur votre poste. Voir aussi les macros complémentaires avec un exemple ici additionner-plage-cellules-contenant-caracteres-numeriques-alphanumeriques

  3. #3
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Vous pourriez aussi mettre votre macro dans un autre fichier qui serait installé uniquement sur votre poste. Voir aussi les macros complémentaires avec un exemple ici additionner-plage-cellules-contenant-caracteres-numeriques-alphanumeriques
    Pas possible . On travail sur un fichier partagé Entre 8 personnes à faire de l encodage et je mets le fichier sur le réseau afin que d autres personnes qui n ont pas le code accès puissent voir le fichier mais san rien modifier!
    A part que le bouton que j ai créé qui envoi mon fichier sur internet même en lecture seule fonctionne alors que je ne voudrais pas

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jfn1234 Voir le message
    Avec une macro complémentaire, vous pouvez distribuer le code qui vous sert à envoyer votre fichier uniquement à ceux qui en ont besoin. Votre macro sera disponible dans le menu des compléments d'Excel.

  5. #5
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Avec une macro complémentaire, vous pouvez distribuer le code qui vous sert à envoyer votre fichier uniquement à ceux qui en ont besoin. Votre macro sera disponible dans le menu des compléments d'Excel.
    Merci!!*Mais vous ne pensez pas que je pourrais mettre une condition?
    Je débute la dedans!!

    Je ne comprends pas bien votre message avec les compléments d Excel!

    J ai ajouter un bouton sur le fichier dans le classeur et mes collaborateurs ont juste appuyer dessus pour que le fichier s envoie par mail automatiquement car trop compliqué pour eux de l envoyer ne pièce jointe

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jfn1234 Voir le message
    Juste un exemple visuel de macros complémentaires dans le menu d'Excel. Une macro complémentaire ne contient que du code.
    Dans l'exemple ci-dessous, vous pouvez voir la macro complémentaire Marketing dont vous avez le lien. Dans le fichier Marketing.xlam, des menus ont été développés pour lancer des macros.

    Pièce jointe 367204

    Ce n'est qu'une piste et vous aurez sans doute d'autres réponses qui correspondront mieux à votre demande.

    Bon courage.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    De ce que je comprends de ta demande, tu peux utiliser en début de procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ThisWorkbook.ReadOnly Then Exit Sub

  8. #8
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Citation Envoyé par parmi Voir le message
    Bonjour,

    De ce que je comprends de ta demande, tu peux utiliser en début de procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ThisWorkbook.ReadOnly Then Exit Sub
    Quand je mets cette ligne il me met

    Erreur de compilation

    Instruction incorrecte à l extérieur d’une procédure

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Tu dois l'inscrire au début de la macro où tu fais l'envoi, pas en début de module

  10. #10
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Citation Envoyé par parmi Voir le message
    Tu dois l'inscrire au début de la macro où tu fais l'envoi, pas en début de module
    bonjour merci pour votre reponse.

    je dois l inscrire ou?? je capte pas deso je debute dedans

  11. #11
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Disons que ta macro s'appelle EnvoiClasseur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub EnvoiClasseur()
       If ThisWorkbook.ReadOnly Then Exit Sub
     
       'Ici le code qui fait l'envoi
     
    End Sub
    De cette façon, si le classeur est ouvert en mode lecture seule, la macro sera inactive.

    Une autre façon de procéder serait d'utiliser ton Username Windows ou Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        If LCase(Environ("username")) <> "mon username windows en minuscules" Then Exit Sub
     
        'ou encore
        'MsgBox Application.UserName 'pour savoir comment est écrit ton nom d'usager dans Excel
        'Tu peux aussi le voir en allant dans les options d'Excel...
        If Application.UserName <> "Nom, Prénom" Then Exit Sub

  12. #12
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Merci ça fonctionne je le mettais avant le code donc ça n allait pas!!
    Je ne dois pas mettre option explicit???? Ça sert à quoi ça option explicit??

    Mais je ne peux pas mettre mon user name car on est sur un réseau entreprise avec plusieurs ID différent
    Et si chacun ouvre le fichier ça va pas aller chacun sur sa session !!!

  13. #13
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Autre sous question!
    Est il possible que lorsque j appuies sur le bouton pour envoyer
    Cela crée une copie de mon fichier que ça se renomme ??

    Merci

  14. #14
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Mais je ne peux pas mettre mon user name car on est sur un réseau entreprise avec plusieurs ID différent
    Et si chacun ouvre le fichier ça va pas aller chacun sur sa session !!!
    En réseau, chacun a son propre ID, donc ça ne devrait pas causer de problème.
    Si ton ID Windows est Jfn1234, tu l'écris comme mentionné dans mon code.
    Personne ne pourra utiliser ta macro puisqu'activée selon leur ID

    Pour faire une copie, utilise SaveCopyAs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.SaveCopyAs ThisWorkbook.Path & "\Nouveau nom.xlsm"
    Et tu peux utiliser cette copie dans ton envoi...

  15. #15
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Mais je veux que les autres utilisateurs puissent utiliser la macro!
    Mais le premier truc fonctionne nikel!!

    Pour la copie je mets ou la ligne dans la macro!
    MonMessage.attachment.add après ca ou avant

  16. #16
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Cela crée une copie dans mon dossier ou est mon fichier ou juste pour l envoie de mon fichier Excel!!a savoir que je devrai supprimer a chs fois ce fichier!!

  17. #17
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Ça dépend de tes besoins.

    SaveCopyAs sauvegarde une copie de ton classeur sous le nom que tu lui donnes.
    Tu peux donc envoyer cette copie et la supprimer si tu n'en n'a plus besoin (Commande Kill - voir l'aide)

    Tu dis que les utilisateurs doivent pouvoir utiliser la macro, mais tu dis aussi qu'ils ne doivent pas pouvoir envoyer le classeur... (?!)
    Il faudrait comprendre comment ta ou tes macros fonctionnent.

    Plutôt que Exit Sub, tu peux juste mettre une condition.
    Si le Username est bon, fais l'envoi sinon passe à la suite...

  18. #18
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Ok merci pour ton aide!!

    On est 10 utilisateurs du fichier! Et 50 personnes peuvent lire mais pas envoyer, ( j essaye d être le plus clair)

    La commande kill c est dans la macro de mon classeur???

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    La commande Kill est une commande VBA que tu utilises si tu veux supprimer un fichier dans un répertoire.
    Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Dir(Chemin & Fichier) <> "" then Kill Chemin & Fichier 'Si le fichier existe le supprimer
    Si 10 personnes peuvent lire et envoyer, il faudrait vérifier que ces personnes ont les droits.
    Si tu mets un mot de passe sur le fichier que seules ces 10 personnes connaissent, seules ces personnes pourront envoyer le fichier en utilisant la méthode ReadOnly que je t'ai donnée puisqu'ils ont le mot de passe.

    Autrement, tu pourrais avoir une feuille masquée dans laquelle tu entres les ID de chacun et tu vérifies à l'ouverture du classeur (Workbook_Open).

    Si ta macro est démarrée par un bouton, tu pourrais aussi le faire disparaître à l'ouverture au besoin.

    Comme tu peux voir, il existe plusieurs possibilités...

  20. #20
    Membre averti
    Femme Profil pro
    Responsable des études
    Inscrit en
    Avril 2018
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Avril 2018
    Messages : 29
    Par défaut
    Oui merci , on a tous le code du fichier donc c’est ok avec la commande read only!
    Merci beaucoup beaucoup

    Pour le kill je peux juste mettre
    Kil et le nom du fichier qui sera à supprimer??
    Par contre si vous pouviez me dire ou en dois placer le copy as Dans le code ! Merci beaucoup

Discussions similaires

  1. [WD-2003] Code pour condition: S'il n'y a pas de pied de page
    Par galak49 dans le forum VBA Word
    Réponses: 2
    Dernier message: 10/04/2009, 11h07
  2. [VBA] Code pour ouverture de dossier
    Par "Rone" dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/10/2008, 10h06
  3. [VBA-E] Sauver en Read-Only et reprendre la main
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/04/2007, 11h30
  4. Réponses: 8
    Dernier message: 08/03/2007, 16h54
  5. [VBA] code pour recherche automatique de données
    Par lg022 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/02/2007, 10h20

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