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 :

Pourquoi méthode calculate ne fonctionne pas sur tous les classeurs ouverts ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Assistant Maîtrise d'Ouvrage
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Assistant Maîtrise d'Ouvrage
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Pourquoi méthode calculate ne fonctionne pas sur tous les classeurs ouverts ?
    Bonjour à tous,

    Contexte :
    J'ai une appli Excel qui toune (en Lecture Seule pour ne pas écraser les formules) avec plusieurs onglets et dedans, des tableaux et des cellules contenant des liaisons "de base", amenées à être modifiées en fonction du fichier présenté en entrée: "bruit00.xls" (fichier qui porte tjrs le mm nom mais qui se situe tjrs dans un répertoire différent, de la mm arbo.).
    Dans la partie qui m'intéresse, j'ai 2 onglets qui comportent 2 tableaux de forme identique :
    1) onglet Recap: mesures n° 1 à 20 ;
    2) onglet Recap2: mesure n° 21 à 40
    Et dans les cellules de mes tableaux, j'ai tjrs appel à la même référence comme: =+Feuil1! ; ceci concaténée à l'adresse de la cellule: $A$XXX.

    Méthode utilisée :
    1) D'abord, on empêche la mise à jour des liaisons automatiques pour que ce soit...
    2) ...la méthode Calculate qui s'en charge puis, reporte les résultats dans les cellules de toutes mes feuilles du classeur !
    Alors pourquoi la Calculate ne fonctionne pas sur tous les classeurs ouverts (seulement la feuille active Recap) !?!

    Qu'en pensez-vous car je ne vois pas ce qui cloche ?
    Merci d'avance
    //***************//
    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
     
    Private Sub workbook_open()
        Dim obj, oSerie As Variant
        Application.AskToUpdateLinks = False
        appPath = ThisWorkbook.path
        Do
            dataPath = GetDirectory("Choisir le répertoire contenant la donnée:")
        Loop While dataPath = ""
        If dataPath <> "" Then
            'MsgBox ("'" & dataPath & "\" & filePath & "Feuil1'") =>OK
            Cells.Replace What:="Feuil1", Replacement:="'" & dataPath & "\" & filePath & "Feuil1'", MatchCase:=False
        End If
     
        For Each obj In ActiveWorkbook.Sheets
            obj.Calculate
        Next
    End Sub

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Peut être en modifiant votre code comme cela
    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
    Private Sub workbook_open()
        Dim obj, oSerie As Variant
        Application.AskToUpdateLinks = False
        appPath = ThisWorkbook.path
        Do
            dataPath = GetDirectory("Choisir le répertoire contenant la donnée:")
        Loop While dataPath = ""
        If dataPath <> "" Then
            'MsgBox ("'" & dataPath & "\" & filePath & "Feuil1'") =>OK
            Cells.Replace What:="Feuil1", Replacement:="'" & dataPath & "\" & filePath & "Feuil1'", MatchCase:=False
        End If
     
     Application.Calculate    '///
     
     
    '''    For Each obj In ActiveWorkbook.Sheets
    '''        obj.Calculate
    '''    Next
    End Sub

Discussions similaires

  1. Application fonctionne pas sur tous les ordinateurs
    Par will97 dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/09/2009, 01h14
  2. [Déploiement] Pourquoi mon application ne fonctionne pas sur tous les postes ?
    Par Willthelegend dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 08/09/2008, 20h34
  3. Réponses: 6
    Dernier message: 14/05/2008, 16h46
  4. TXMLDocument, ne fonctionne pas sur tous les PC
    Par Neilos dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/10/2005, 22h33

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