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 :

Besoin d'aide pour macro sur un réseau


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut Besoin d'aide pour macro sur un réseau
    Bonjour à toutes et à tous.
    J'aurais besoin d'aide pour écrire une macro actionnée par un bouton .
    J'ai 3 pc sur un réseau contenant chaqu'un le même classeur.
    Le but pour moi serait de récupérer les valeurs de deux tableau sur deux feuilles d'un même classeur, sur les deux autres classeurs.
    Par exemple j'ai dans un classeur sur mon pc feuille1 1 tableau A4 E6 et le deuxième A10 E12 ( cela correspond exactement au classeur sur le 2 ème pc ), feuille 1 avec les deux mêmes tableaux A4 E6 et a10 e12) le 3 ème pc ayant dans les mêmes conditions sauf que moi je récupère ses données dans feuille2 avec les deux mêmes tableau.
    J'ai essayé avec cel.value mais je n'y arrive pas.
    De plus si l'un des deux poste ne répond pas , soit si le réseau est inactif ou l'un des deux pc éteints, il faudrait une letterbox disant que les données du pc 1 ou 2 ou les deux n'ont pas pas pu être mise a jour.
    Merci par avance pour l'aide que vous pourrez m'apporter sur ce projet . Vous souhaitant une excellente journée.
    Cordialement

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonjour,

    Peux tu nous donner le code qui récupère le contenu d'un classeur distant.

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Bonjour , je suis débutant et j'ai pas bien compris la question ? Le code de quoi , merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    par exemple cel.value
    où as tu mis ce cel.value, qui a t-il avant après?

    Quelles sont les adresses des deux PC sur le réseau ?

    Les fichiers sont -ils bien dans un répertoire visible des autres PC ?

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Merci ta réponse , enfait les 3 ip sont fixes et les trois fichiers sont dans yn répertoire fixe . Je suis archi débutant et en vba et en faisant des recherches j'ai trouvé la fonction cel. Value mais je ne sais pas mettre en forme

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonjour,

    As tu essayé le partage de classeur Excel (menu outil), j'ai l'impression que cela répond à ton besoin sans rien développer.

    Si non, peux tu me décrire comment tu utilises la fonction cel.value ?

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Bonsoir, et merci pour ta réponse , je ne sais pas enfait comment commencer et mener a bien cette tache. Après recherche j'ai vue que je dois commencer par sub () mon prog et end sub , j'aurais besoin enfait que cette macro se déclanche a l'ouverture du classeur et s'actualise toutes les 30 s mais qu'elle l'affiche un message que a l'ouverture du classeur si les donnees ne sont pas disponible . J'ai pensé au partage du classeur , mais mon problème c'est que en cas de réunion si je prend le fichier je pert les donnees . Si tu peux m'aider je t'en remerci par avance

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonsoir,

    J'ai l'impression que tu es un peu fâché(e) avec la langue de Molière ?
    Serais tu un(e) étranger(e) ?
    Cela n'a aucune importance, mais si tu le déclares nous serons plus tolérants.

    Je pense que tes classeurs Excel devraient porter des noms différents.
    Par exemple :
    - FichierTruc_sur PC1.xls
    - FichierTruc_sur PC2.xls
    - FichierTruc_sur PC3.xls
    (merci de me donner les noms que tu souhaites)

    Si j'ai bien compris tes trois fichiers comportent trois feuilles (PC1, PC2,PC3) merci de me donner les noms que tu souhaites,nous nous comprendrons mieux ensuite.

    Si j'ai bien compris :
    - le PC1 ne doit modifier que la feuille PC1 mais souhaite voir le contenu des feuilles PC2 de FichierTruc_sur PC2.xls et de PC3 de FichierTruc_sur PC3.xls
    - le PC2 ne doit modifier que la feuille PC2 mais souhaite voir le contenu des feuilles PC1 de FichierTruc_sur PC1.xls et de PC3 de FichierTruc_sur PC3.xls
    - le PC3 ne doit modifier que la feuille PC3 mais souhaite voir le contenu des feuilles PC1 de FichierTruc_sur PC1.xls et de PC2 de FichierTruc_sur PC2.xls

    Avant de continuer, j'attends ta confirmation

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Merci pour ton coup de main, j'écris depuis mon iPhone car je suis en déplacement et c'est pas simple je suis obligé continuellement de corriger la syntaxe car ce dernier a une correction automatique plutôt bizarre . J'ai fait beaucoup de prog en dhtml et java , je me lance dans le vba et j'avoue que j'ai beaucoup de problèmes . Si tu peux me donner un exemple je pense que j'arriverais a l'adapter a mon besoin , merci en tout cas du temps que tu prend a m'aider . Les trois fichiers ont comme nom , com1 , com2 , com3 sachant que com1 est celui qui va recevoir les données des deux autres, mais ne peut en aucun cas modifier le valeurs de com 2 et com3 ( j'ai deux feuilles dans mon classeur avec le même tableau sur deux feuilles distinctes reprenant com2 et comme 3 . J'aurais besoin que cette macro se declanche a l'ouverture du classeur , et une récupération toutes les 30 secondes, si a l'ouverture du classeur le réseau est hs ou un poste absent juste une alerte une fois par une fenêtre , mais pas toutes les minutes). Au plaisir de te lire , cordialement

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonjour,

    Pour commencer, essaye de faire fonctionner ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Lec_com2()
    '
        Sheets("com2").Cells(1, 1) = "vide" ' Remise à zéro de la copie de com2 dans com1
     
        ' Ouverture dans le mode ReadOnly
        Workbooks.Open FileName:="Desktop:com2.xls", ReadOnly:=True
     
     
        Windows("com1.xls").Activate        ' com1 au premier niveau
        ' Recopie de com2 dans com1
        Sheets("com2").Cells(1, 1) = Workbooks("com2.xls").Sheets("com2").Cells(1, 1)
     
        'Fermeture
         Windows("com2.xls").Close
     
    End Sub
    Cet exemple a été écrit avec Excel Mac

    Il faut adapter à tes répertoires et à la localisation de tes fichiers.
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Bonjour et merci pour ton aide , je crois comprendre la logic de ce code . Arrêtes moi si je me trompe, mais sheet représente le nom de la feuille dans le classeur , et dans cells( A1, e10) représenterais les cases que cette macro devrait recopier? Et enfin filename="186.211.0.10\c:\prive\com\com2.xls ? Je vais essayer ceci , je test et un grand merci pour ta patience . Cordialement

    Bonsoir, j'ai donc essayé le code et hélas il me renvoi un message d'erreur : erreur d'exécution 9 l'indice n'appartient pas a la sélection !!! Une idée ? Merci

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonsoir,

    Quand tu as une erreur, tu clique sur Debug. Alors Excel indique la ligne de code en erreur.
    - Soit le message devient clair pour toi et tu corriges,
    - Si non, tu nous fait un mail dans lequel tu nous détailles ce qui se passe.

    Tu as aussi le mode d'exécution pas à pas qui te permet de suivre ce qui se passe et de comprendre. Dans ce mode, à tout instant tu peux placer la souris sur une variable, sa valeur est alors affichée.

    A+

    Citation Envoyé par scoubi77 Voir le message
    Bonsoir, j'ai donc essayé le code et hélas il me renvoi un message d'erreur : erreur d'exécution 9 l'indice n'appartient pas a la sélection !!! Une idée ? Merci
    C'est surement le nom des feuilles qui ne sont pas justes (Leblanc).

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Pourtant si car j'ai crée deux feuilles et un tableau dans chaqu'une d'elle en faisant bien attention justement de ne pas me tromper!!! J'ai exécuté la macro pas a pas avec la touche f5 et a la deuxième ligne l'erreur apparaît ( si tu organises un diner , je ne suis pas dispo avant 2099 hihihi)

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonsoir,

    Si l'indice n'appartient pas a la sélection à la ligne 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("com2").Cells(1, 1) = "vide"
    c'est que ton classeur ne comporte pas de feuille "com2" (attention aux minuscules et à l'espace (il n'y en a pas) ).

    PPz

    Autre question, ton code est il bien dans un module ?

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Ré bonsoir, ( iPhone de m.....) oui j'ai bien crée un module, et en passant sur cells(A1, b4) il y a A1 = vide , toute la ligne est jaune , tout porte a penser que c'est cette ligne qui génère l'erreur !!! J'ai vérifié l'orthographe , la syntaxe et les espaces , tout est bon !!!! Ou alors cela vient peut être de la ligne 3 , avec la localisation du fichier , j'ai filename=" g:\ci514\test\ess2.xls", readonly:=true

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Re,

    Pour Excel signifie cellule ligne i colonne J.

    Dans ton exemple cells(A1, b4) ne signifie rien car les variables A1 et B4 n'ont pas été initialisées.
    pour la cellule A1 il faut écrire Cells(1,1)
    pour la cellule B4 il faut écrire Cells(4,2) si je ne me trompe pas.

    une autre manière de procéder consiste à recopier toute la feuille


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Windows("com2.xls").Activate        ' com2 au premier niveau
        Sheets("com2").Select            ' Feuille com2 au premier plan
        Cells.Select                     ' sélection de toutes les cellules
        Selection.Copy                   ' Copie du contenu de la feuille
     
        Windows("com1.xls").Activate     ' com1 au premier niveau
        Sheets("com2").Select            ' Feuille com2 au premier plan
        Cells.Select                     ' sélection 
        ActiveSheet.Paste                ' copie
    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Ops , alors dans mon exemple comment combiner A1 b4 ? Récupérer toutes les valeurs comprise dans ce tableau ?

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Pour une zone cela donne ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Windows("com2.xls").Activate        ' com2 au premier niveau
        Sheets("com2").Select            ' Feuille com2 au premier plan
        Range("A1:B4").Select            ' sélection de la zone d'intéret
        Selection.Copy                   ' Copie de la zone
     
        Windows("com1.xls").Activate     ' com1 au premier niveau
        Sheets("com2").Select            ' Feuille com2 au premier plan
        Range("A1").Select               ' sélection 
        ActiveSheet.Paste                ' copie
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Bonjour, merci je vais essayer cela dès ce soir, je pense avoir sûrement mal orthographier la cible de com2 pourais tu me donner exemple d'une syntaxe représentant un emplacement . En ce qui concerne le déclenchement de la macro au démarrage du classeur avec letterbox dans le cas ou les données ne seraient pas disponible et faire une recherche de mise a jour toutes les 30 s sans alerte , aurez tu exemple a me proposer ? Merci pour tes explications et ta disponibilités , te ré merciant par avance je te souhaite une exelente journée. Cordialement

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Bonsoir,

    La syntaxe du chemin dépend de la machine, le plus simple est de te mettre dans le mode enregistrement de macro et d'ouvrir une fois le fichier à la main.
    La lecture du fichier enregistré te donnera le code à utiliser.

    PPz
    La qualité et la précision de la réponse sont proportionnelles à celles de la question.

Discussions similaires

  1. hello "besoin d'aide pour diagramme sur excel"
    Par katwar dans le forum Excel
    Réponses: 1
    Dernier message: 18/06/2007, 11h52
  2. besoin d'aide pour macros ou VBA
    Par jmsor dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/02/2007, 18h41
  3. [VBA-E] aide pour macro sur excel
    Par letoulouzin31 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 24/05/2006, 11h29
  4. besoin d'aide pour de l'administration réseau en perl
    Par benzure dans le forum Programmation et administration système
    Réponses: 18
    Dernier message: 30/03/2006, 08h26
  5. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01

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