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 :

Travailler sur deux classeurs avec CITRIX [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Bonjour le forum, et pour commencer meilleurs voeux à tous !

    Voila mon problème :
    Auparavant j'avais des macros pour travailler sur deux classeurs, faire des copies de données de l'un vers l'autre. Hors désormais les serveurs locaux sont tous migrés vers des serveurs centralisés avec un intranet et un accélérateur CITRIX.
    Chaque classeur étant accessible par plusieurs utilisateurs en même temps.
    Quand on travaille avec CITRIX, avant d'ouvrir un classeur excel, on doit faire un " Check out", c'est à dire prendre la main sur ce classeur et faire un"Check in " à la fermeture, un seul utilisateur pouvant ainsi enregistrer son travail.
    Est ce que quelqu'un connait les codes pour cette procédure ? Et déjà est il possible de faire cette manip par le code ?

    Check out
    Check in

    Merci à tous
    Cdlt
    Dom

    Re bonjour le forum,

    Pour info, j'ai également essayer avec l'enregistreur de macro, et cela ne marche pas : l' enregistrement commence après l'ouverture du classeur ...

    Je sèche

    Cdlt
    Dom

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    bonjour

    si Check IN et check OUT sont des commandes externes, ca va être compliquer de les lancer VIA une Macro dans un Classeur alors que ce même classeur a besoin de ces commandes pour s'ouvrir.

    Il faut donc regarder plus haut dans le system. Les Batch (.BAT) pourraient peut être te donner la solution

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut
    Bonjour Wilfried
    Merci de ta réponse.

    C'est un peu ce que je craignais ce ne sont plus des commandes par VBA, cela dépasse largement mes compétences et en plus tout est verrouiller par l'administrateur.

    La seule solution que je vois c'est de faire le check out en manuel, avant de lancer la macro qui me fera le copier coller entre les deux classeurs.
    mais même là je rencontre des problèmes, le code qui fonctionnait auparavant me génère une erreur de syntaxe

    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
    17
    18
    19
      Dim PDL As Workbook
      Dim CP As Workbook
      Set CP = ActiveWorkbook
     
      Application.DisplayAlerts = False  ' supprimer les messages d'alerte pour demande de MAJ liaison ouverture pL
      'On Error Resume Next  supprimer pour test debug
      Application.Workbooks.Open "G:\Gestion bons bleus\Plan de ligne P3 v5.xls"  'ouvre le classeur
      Set PDL = GetObject("G:\Gestion bons bleus\Plan de ligne P3 v5.xls")    'indiquer le chemin réel du fichier  = ("G:\Gestion bons bleus\Plan de ligne P3 v5.xls")
     
     
      PDL.Sheets("Di pair").Range("B39:F49").Value = CP.Sheets("Suivi").Range("F422:J432").Value
      PDL.Sheets("Di pair").Range("B90:F100").Value = CP.Sheets("Suivi").Range("F435:J445").Value
      PDL.Sheets("Di pair").Range("B141:F151").Value = CP.Sheets("Suivi").Range("F448:J458").Value
     
      CP.Sheets("Suivi").Range("A392:D405").ClearContents ' effacer mémoire semaine précédament importée
      Application.DisplayAlerts = True
      PDL.Sheets("Di pair").Activate
     
    End Sub
    je l'ai adapté avec le nouveau chemin ce qui me donne 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
    17
    18
    19
      Dim PDL As Workbook
      Dim CP As Workbook
      Set CP = ActiveWorkbook
     
      Application.DisplayAlerts = False  ' supprimer les messages d'alerte pour demande de MAJ liaison ouverture pL
      'On Error Resume Next
      Application.Workbooks.Open "http://w3ld/sites/xxx/Gestion%20Bons%20Bleus/Semaines%20paires/Plan%20de%20ligne%20P3%20paire.xls"  'ouvre le classeur
      Set PDL = GetObject("http://w3ld/sites/xxx/Gestion%20Bons%20Bleus/Semaines%20paires/Plan%20de%20ligne%20P3%20paire.xls")    'indiquer le chemin réel du fichier CRF = ("G:\Gestion bons bleus\Plan de ligne P3 v5.xls")
     
     
      PDL.Sheets("Di pair").Range("B39:F49").Value = CP.Sheets("Suivi").Range("F422:J432").Value
      PDL.Sheets("Di pair").Range("B90:F100").Value = CP.Sheets("Suivi").Range("F435:J445").Value
      PDL.Sheets("Di pair").Range("B141:F151").Value = CP.Sheets("Suivi").Range("F448:J458").Value
     
      CP.Sheets("Suivi").Range("A392:D405").ClearContents ' effacer mémoire semaine précédament importée
      Application.DisplayAlerts = True
      PDL.Sheets("Di pair").Activate
     
    End Sub
    et cela me génère une erreur -2147221020 " Automation error
    Invalid syntax" sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Set PDL = GetObject("http://w3ld/sites/xxx/Gestion%20Bons%20Bleus/Semaines%20paires/Plan%20de%20ligne%20P3%20paire.xls")
    Je n'arrive pas à définir le deuxième classeur comme objet, je ne vois vraiment pas du tout

    Cordialement
    Dom

  4. #4
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    si c'est une macro qui lance les ouvertures : as tu regardé ? la commande SHELL qui permet de lancer une commande system.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut Re:
    non je n'avais pas penser à ça,
    je vais essayer ce soir (je travaille de nuit cette semaine)
    merci à toi
    Dom

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut Re;
    Bonjour le forum

    je viens d'essayer la cmd Schell "Check out" ou check in et cela ne fonctionne pas non plus. Excel me met : File not found

    je pense que ce n'est pas une macro mais plutot une fonction de l'internet explorer de CITRIX

    Du coup j' ai envoyé un request à l'administrateur système et j'attends une réponse... si j'ai des nouvelles , je préviens.

    Merci à tous ceux qui auront passés du temps sur ce post

    Cdlt

    Dom

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Points : 87
    Points
    87
    Par défaut Re CITRIX
    Bonjour le forum

    Voilà j' ai enfin trouver :

    Workbooks.CheckOut, méthode
    Cette méthode renvoie un objet String représentant un classeur spécifié transmis d'un serveur à un ordinateur local afin de le modifier.
    la syntaxe est:

    expression.CheckOut(NomFichier)

    ce qui en code nous donne ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Workbooks.CheckOut Filename:= _
            "http://w3ld/sites/xxx/yyy/zzz.xls"
        Workbooks.Open Filename:= _
            "http://w3ld/sites/xxx/yyy/zzz.xls"
    code validé et obtenu via l'enregistreur de macro
    Il y a même une rubrique d'aide associée en version 2007

    Si cela peut servir à quelqu'un ...

    Cdlt
    Dom

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

Discussions similaires

  1. Travailler sur deux classeurs différents
    Par Tyler Durden dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/07/2008, 09h42
  2. travailler sur deux classeurs
    Par TEXMAN1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/02/2008, 15h39
  3. [VBA-E] travailler sur deux classeurs
    Par argv666 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/09/2006, 10h40
  4. [VBA-E]travail sur deux classeurs excel
    Par richou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/04/2006, 10h59
  5. Travail sur divers PC avec fichier attaché
    Par mavean dans le forum Access
    Réponses: 2
    Dernier message: 12/12/2005, 16h48

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