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 :

lien fichier vbA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Par défaut lien fichier vbA
    slt
    j'ai une 4 onglet chacun contient environ 1000 lignes.
    sur chaque ligne, je dois récupérer 6 informations provenant de divers fichiers
    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
     
    for Y = 1  to 4
            If y = 1 Then Sheets("1").Select
            If y = 2 Then Sheets("2").Select
            If y = 3 Then Sheets("3").Select
            If y = 4 Then Sheets("4").Select
     
    for i = 1 to nbligne
    '6 info de ce genre
     
    Cells(i, 27) = "=if('\\Fiche Verification Materiel\" & Cells(i, 3).Value & "\" & Cells(i, 1).Value & "\" & "[FICHE_INCIDENT_" & Cells(i, 1).Value & ".XLS" & "]Feuil1'!R22C8=0,"" "",'\\Fiche Verification Materiel\" & Cells(i, 3).Value & "\" & Cells(i, 1).Value & "\" & "[FICHE_INCIDENT_" & Cells(i, 1).Value & ".XLS" & "]Feuil1'!R22C8)"
     
    next i    
     
    next y

    mon code met environ 20 min pour s'executer, je cherche une solution pour gagner du temps. En fait ici je fais des liens est ce que ce serait pas plus rapide de seulement mettre à jour les anciens liens ou alors utiliser la méthode OLE DB Microsoft Jet présenter ici http://http://silkyroad.developpez.com/VBA/ClasseursFermes/

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Si il s'agit seulement de mettre a jour des liaisons existantes (a tester):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
    'ou
    Application.Calculate

    Mais à mon avis la lenteur est surtout du au fait que les sources soient sur un réseau, si tel est bien le cas, tu peux essayer d'ouvrir tes classeurs sources, lancer un recalcul puis fermer les classeurs source, ce sera peut etre plus rapide.

    Cordialement,

    Tirex28/

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Par défaut
    Bon j'ai essayer ce que tum'a proposer tirex28 mais ne fait rien et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
    me donne une erreur 13 sans doute du à un problème sur un lien.
    Les infos sont bien sur le réseau, et elles doivent y rester mais est il possible de copier temporairement tout un dossier avec excel et le mettre sur le pc utilisateur, puis récupérer les infos depuis les dossiers temporaires.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonjour,

    Les liaisons c'est la plaie ...

    La macro ci dessous ouvre chaque classeur source, calcule tout, et referme le classeur source sans l'enregistrer. Si un lien ne fonctionne pas elle l'ignore.

    Cela permet de ne pas copier les fichiers du réseau sur le disque dur local, meme temporairement, ce qui dans l'absolu est certainement possible.

    A tester..

    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
     
    Sub OuvrirLesSources()
        Dim i As Long, Sources
        Application.ScreenUpdating = False
        Sources = ThisWorkbook.LinkSources(xlExcelLinks)
        If Not IsEmpty(Sources) Then
           On Error GoTo Suite
           For i = 1 To UBound(Sources)
                Workbooks.Open (Sources(i))
                Application.Calculate
                Workbooks(Workbooks.Count).Close False
    Suite:
            Next i
        End If
    End Sub
    Cordialement,

    Tirex28/

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Par défaut
    merci pour tes lignes de codes, ce que je vais faire je vais incorporer un chrono à mon programme pour comparer les 2 méthodes

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Par défaut
    slt, j'ai essayer ta méthode tirex28 et j'ai constater que ton code était plus long à s'éxécuter que le mien.

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

Discussions similaires

  1. Lien entre VBA et VB.net ?
    Par RaelRiaK dans le forum Access
    Réponses: 9
    Dernier message: 10/11/2006, 15h09
  2. Lien Hypertext VBA Outlook 2003
    Par crashyear dans le forum Outlook
    Réponses: 3
    Dernier message: 30/10/2006, 08h20
  3. [RegEx] Expression régulière - Lien fichier
    Par Lung dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 15h54
  4. [HTML] Lien fichier word/excel/etc ...
    Par Alexr dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/04/2006, 19h22
  5. [VBA-E] lien en VBA et fonction generatrice
    Par Smoke666 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/07/2004, 11h47

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