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 d'un formulaire vers un ensemble d'autres classeurs excel avec VBA


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 2
    Par défaut Enregistrer des données d'un formulaire vers un ensemble d'autres classeurs excel avec VBA
    Bonjour,

    Lorsque l'on veut inscrire des données dans un Worksheet, comment l'activer ou le sélectionner par son nom désigné par une variable qui correspond à la valeur d'une cellule?

    Après avoir réussi à ouvrir un workbook dont le nom est désigné dans le contenu d'une cellule, pourquoi le code suivant ne fonctionne il pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim mafeuille As Worksheet
    contenuB5 = Range("B5").Value 'this workbook 
    mafeuille = monclasseur.Worksheets("contenuB5") 'monclasseur est le workbook destination et mafeuille la worksheet de destination
    mafeuille.Activate
    Ci-dessous mes explications un peu plus fastidieuses :

    J’ai créé un classeur excel"macst.xlsm" avec un onglet "source" qui ne sert qu'à contenir un formulaire pour saisir des données affectées à 10 variables.
    Je souhaite enregistrer directement ces données dans des classeurs autres que celui qui contient mon userform (autre que ce qui est actif?).
    Mes fichiers de destination sont une cinquantaine de classeurs Excel différents situés dans un même répertoire (dossier de fichiers .xlsx) avec un grand nombre de worksheet mais tous conçus exactement de la même manière.

    Pour désigner un classeur de destination spécifique, dans mon classeur "macst" sur mon onglet "source" j'ai inscrit en B4 le nom du classeur destination et en B5 le nom de l'onglet/worksheet de destination. Dans ma macro mon code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim monclasseur As Workbook
    contenuB4 = Range("B4").Value
    Set monclasseur = Workbooks.Open(Filename:="\\C:\Users\Channel\Documents\06. PRODUCTION & OPTIMISATION\06. VBA test\" & contenuB4 & ".xlsx")
    Ce qui fonctionne et m'ouvre le classeur de destination choisi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim mafeuille As Worksheet
    contenuB5 = Range("B5").Value 'this workbook
    mafeuille = monclasseur.Worksheets("contenuB5")
    mafeuille.Activate
    Ce qui ne fonctionne pas et ne m'ouvre pas l'onglet correspondant ... sachant que mes onglets ont des noms numériques

    La suite de mon code pour enregistrer mes données dans des cellules à partir de mes variables fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Range("A8").Value = dhab
    Range("B8").Value = refpo
    Range("C8").Value = cx
    etc...
    Mais les données ne s'exportent pas là où je le souhaite.
    Si j'écris : Worksheets("9900").Activate cela marche et m'ouvre l'onglet "9900" dans le bon classeur de destination mais ne me permet pas de changer le nom de l'onglet au fur et à mesure des différentes saisies
    Si j'écris : Worksheets("contenuB5").Activate cela marche mais enregistre les données dans l'onglet actif "source" du classeur de la macro "macst"

    1) Je n'arrive donc pas à faire le lien entre mon classeur de destination et son onglet de manière à l'activer, le sélectionner, écrire dessus...
    2) Je ne suis pas très douée en syntaxe VBA car je ne comprends pas pourquoi on ne pourrait pas écrire : monclasseur.Worksheets("contenuB5").activate.

    Quelqu'un pourrait il m'aider à trouver l'erreur dans mon code svp ?
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/05/2009, 17h17
  2. Envoyer des données d'une formulaire vers une BD dès le chargement d'une page
    Par rebhihabib dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 11/03/2008, 01h33
  3. Enregistrement des données d'un formulaire dans SharePoint
    Par fanfan49 dans le forum SharePoint
    Réponses: 1
    Dernier message: 06/06/2007, 23h12
  4. Rediriger des données d'un formulaire vers deux pages différentes
    Par griese dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/12/2006, 11h30
  5. Enregistrement des données d'un formulaire
    Par mymyma dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/07/2006, 10h28

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