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 :

Enregistrer des données dans un classeur en lecture seule


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable production
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Responsable production

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Par défaut Enregistrer des données dans un classeur en lecture seule
    Bonjour à tous.

    Depuis longtemps, chaque problème que je rencontre trouve toujours sa solution en parcourant vos contributions aux questions déjà posées.
    Veuillez recevoir au préalable ma sincère gratitude pour l'aide précieuse que vous apportez même à ceux qui ne sont pas inscrits.

    Pour autant, je suis sur un problème "simple", mais qui, j'en ai peur, mérite une solution compliquée.

    Je suis en train d'élaborer un formulaire, présent sur notre réseau en lecture seule, avec une macro d'enregistrement qui enregistre ce fichier autre part, avec pour nom le code et le nom du chantier.
    Jusqu'ici, tout va bien.

    J'aimerai pousser plus loin les capacités de mon fichier, avec une petite base client. Dans le formulaire, si on tape un code client, une macro recherche dans une autre feuille si le client existe et pré-remplit certaines cases. La encore, tout va bien.

    Mais si le client n'existe pas, j'aimerai que les données rentrées soient enregistrées, pour être réutilisées à nouveau plus tard. Et c'est là que le bas blesse.

    Comment l'enregistrer dans le fichier d'origine, qui lui est en lecture seule..?

  2. #2
    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,

    Je ne pense pas que tu puisses enregistrer dans un fichier en lecture seule... simple logique...
    Par contre, tu pourrais l'enregistrer temporairement sous un autre nom, enregistrer ce nouveau fichier sous le nom de l'original en lecture seule avec SaveAs, puis détruire le fichier temporaire (Kill).

    Pour éviter le message lorsque tu écrases le fichier original, tu peux soit utiliser
    Application.DisplayAlerts=False au préalable et le remettre à True par la suite
    Soit détruire l'original avec Kill avant de sauvegarder le fichier temporaire sous le nom de l'original.

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable production
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Responsable production

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Par défaut
    Merci de ta réponse, Parmi.

    C'est bien ce qu'il me semblait. le problème simple a une solution assez complexe.

    Ta piste est intéressante, je l'ai déjà croisée.
    J'ai aussi vu la possibilité d'utiliser Excel en tant que base de données. Avec l'histoire de lecture(/écriture?) de fichiers fermés. C'est l'idée qui est la plus séduisante, mais aussi la plus complexe.
    Ou sinon, importer à l'ouverture du fichier une feuille "base client" présent dans un autre classeur qui lui n'est pas en lecture seule. C'est ce qu'il y aurait de plus simple, mais je veux limiter le nombre d'onglets dans le fichier de base.

    En tout cas, merci de m'avoir répondu, Parmi

  4. #4
    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
    Si tu considères un fichier Excel comme une base de données, chaque onglet devient une table avec ses champs et ses enregistrements.
    Ces "tables" peuvent provenir de fichiers texte facilement importables/exportables.

    Dans le cas où tu entres un numéro de client et qu'il n'apparaît pas dans la base, il te suffit de demander les différentes valeurs pour le créer et tu inscris les valeurs dans le ou les onglets nécessaires. Lorsque tu fermes le classeur, tu écrases les fichiers texte existants avec ces nouvelles données.

Discussions similaires

  1. Enregistrer des données dans une base de donnée
    Par fabienlege dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/04/2007, 16h34
  2. [MySQL] Enregistrement des données dans la BD
    Par Panther dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/03/2007, 09h37
  3. Enregistrer des données dans une table à partir du code
    Par Ragnarok85 dans le forum Access
    Réponses: 4
    Dernier message: 24/01/2007, 13h03
  4. [C#] Comment enregistrer des données dans un base Mysql ?
    Par zidenne dans le forum Accès aux données
    Réponses: 3
    Dernier message: 21/09/2006, 17h51
  5. [VB6]enregistrer des données dans un fichier
    Par tchinette42 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/04/2006, 18h55

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