Se connecter avec
S'enregistrer | Connectez-vous

[VBA/EXCEL] Dire non à mise à jour de liaison/réouverture de fich

Dernière réponse : dans Programmation

Je post un nouveau sujet car cette question n'a pas grand chose à voir avec la première !

J'ai maintenant réussi à quasiment finalisé mon petit projet mais je me confronte à un dernier soucis !

Quand je clique sur " mon super boutton "Ok" ! qui donne vachement la classe à mon truc " ma Macro se met en route. Jusque là tout va bien, pas de message d'erreur rien !

A la fin du processus un message bien connu vient serieusement m'enquiquiner ( pour rester poli... ) !

Le classeur que vous avez ouvert comporte des liaisons avec un autre classeur . Voulez vous mettre à jour ce classeur avec les modifications apportées à l'autre classeur?

- Pour mettre à jour toutes les liaisons, cliquez sur oui !
- Pour conserver les informations actuelles, cliquez sur non !


... Bon, dans l'absolu, j'aimerai bien que ce petit message n'apparaisse pas et que à chaque fois qu'il aurait une envie subite de venir m'enquiquiner ( oui encore ! ) un code viendrait gentiment dire non à ma place :) 

Alors, premier reflexe en tant que gros débutant, on active l'enregistreur de Macro ! En se disant : " Mouahahahah c'est trop facile les Macros ! "
Et comme à chaque fois, en tant que gros débutant, après un de ces exces de confiance on se prend un gros mur :)  !

Voilà ce que me donne l'enregistrement !

  1. Sub DireNon()
  2. '
  3. ' DireNon Macro
  4. ' Macro enregistrée le 31/07/07 par Nico
  5. '
  6.  
  7. '
  8. End Sub


Comme vous pouvez le constater... Ca m'aide beaucoup :) 


Bon je ne perds pas espoir et je pars en quete du saint-Graal sur l'explorateur d'objet et sur Internet ! Alors j'ai trouvé deux trois trucs... Nottament quelquechose qui permet de "zapper" les messages d'erreurs mais ca fonctionne pas dans mon cas : "Je ne veux pas qu'il disparaisse le message, je veux qu'on y réponde non, morbleu ( dis-je ) !

Bref ya rien qui ne réponde vraiment à ma question :! Mais je perds pas espoir !

Quelqu'un aurait-il une idée ? un indice ?

Je continue mes recherches en attendant une réponse d'un gentil internaute ! J'éditerai si je trouve mon bonheur !

Bonne journée à tous et à tous bientôt !
Lassé par la pub ? Créez un compte

Citation :
Indice : RTFM à la page Open - Second paramètre :o 

:bounce:  je suis un gentil internaute :bounce: 


Je sais toujours pas où est le RTFM mais Open second paramêtre ça m'a ramené à UpdateLinks !

Merci Le gentil Internaute !

Bon allez... Un dernier soucis pour la route et j'y ai plus bossé cette fois, j'ai même un début de code ! Mais je le simplifie parceque j'ai pas tout imbriquer et il faut que je le fignole avant de te le montrer sinon je vais me faire taper sur les doigts !



Dans l'absolu ca doit donner ca

  1. ' If mon fichier n'existe pas ( Ca j'ai ) Then
  2. ' Alors j'ouvre une nouveau classeur ( J'ai aussi )
  3. ' Else
  4. ' If le classeur est déja ouvert Then ( Ca j'ai presque enfin j'éspère )
  5. ' On active Nom_Du_classeur au premier plan ( Ca j'ai pas mais ca devrait être facile à trouver )
  6. ' Else
  7. ' On ouvre le fichier demandé !


Nan nan me tape pas tout de suite, je sais pas si les imbrications de If Then Else sont possibles comme je les ai fait, je me pencherai plus sur la question quand mon code fonctionnera !

Mon problème se pose sur "Est ce que le classeur est déja ouvert ou non"... Ya des propositions sur le forum mais que je suis pas sur de vraiment comprendre!

J'ai par contre trouver une propriété qui me semble plus adapter à mes compétences ! C'est la propriété IsWorkBookOpen ! Le but étant d'éviter le message d'erreur qui dit que le fichier est déja ouvert et blablabla en le contournant ! ( cf plus haut )



Bon l'idée c'est que avant de la mettre dans mon code, ( qui commence à être long ) et de tout faire planter, J'ai décidé de tester un peu la propriété voir comment elle fonctionnait.
Je l'ai donc intégré dans une MsgBox pour voir ce que IsWorkBookOpen renvoyait quand le fichier était ouvert ou fermé !

Voilà mon ( petit ) Code :

  1. Sub Try ()
  2.  
  3. Dim Nom_du_classeur As String
  4.  
  5. With Workbooks("Formulaire.xls").Worksheets("Feuil1")
  6. Nom_du_classeur = .Range("E5").Text & .Range("E8").Text
  7. End With
  8.  
  9. MsgBox (Isworkbookopen = ("Nom_Du_classeur"))
  10.  
  11. End Sub


Il me renvoit faux à chaque fois que le classeur soit ouvert ou non !

Bref, je sais pas trop comment gérer ca ^^ ! J'ai fait une big boulette ? La technique est elle adaptée à ce que je veux faire ? Est ce que je vais devoir essayer de comprendre les codes bizaroides des topics traitant du mêmes sujets ! J'aurai très bien pu faire un copier coller... Mais j'aime pas quand je ne comprends pas ce que je fais !

Bonne journée tout le monde et à bientôt !







Lassé par la pub ? Créez un compte