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 :

Formule non mise à jour


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut Formule non mise à jour
    Bonjour,

    Je rencontre un problème concernant des formules sur Excel qui ne se mettent pas à jour automatiquement mais manuellement.

    J'ai un code VBA qui me permet de remplir des cellules de formule avec .formula donnant comme résultat soit TRUE soit FALSE pour savoir s'il y a un saut de page.
    Le résultat reste toujours à FALSE et quand je rentre dans la cellule manuellement et que je fais ENTRER, ça marche il met à TRUE quand il y a un saut de page.

    Le code marche mais la cellule ne se met pas à jour automatiquement quand je rouvre le fichier après le traitement fait.

    j'ai vu plusieurs forum où la question est posé mais jamais de solution satisfaisante.

    Quelqu'un aurait-il une idée?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Et le code que tu utilise c'est quoi?

  3. #3
    Membre confirmé Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Le code fait des dizaines de page donc je ne vais pas tout copier. Mais le code qui va dans les cellules est:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    Sub break_page()
     
    Dim maxi As Integer
     
                         maxi = DerCell.Row
     
                        'pour que .formula marche il faut mettre les cellules de la colonne en mode general
                         Columns("F:F").Select
                         Selection.NumberFormat = "General"            
     
                         'condition de la feuille pour mettre bordure si cellule = true
                        Range("A1:E" & maxi).Select
                        Selection.FormatConditions.Delete
                        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$F1"
                        With Selection.FormatConditions(1).Borders(xlBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlThin
                            .ColorIndex = xlAutomatic
                        End With
     
     
                        ''appel de la fonction is_break_page
                        Range("F1:F" & maxi).Select
                        Selection.Formula = "=is_break_page(" + "ROW()+1)"
     
                        'masquage de la colonne F
                        Columns("F:F").Select
                        Selection.EntireColumn.Hidden = True
     
     
    End Sub
     
    'Fonction appeler dans la cellule
     
    Function is_break_page(ligne As Integer) As Boolean
     
    is_break_page = False
     
    'boucle qui parcours toute les lignes jusqu'a la derniere
     
     
            If Rows(ligne).EntireRow.PageBreak <> xlNone Then
     
                is_break_page = True
                Else
                is_break_page = False
            End If
     
    'Next j
    End Function

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Ah Ok je comprends.

    Eh bien dans ce cas, après saisie de ta formule, mets ceci:
    Est-ce que ça marche?

  5. #5
    Membre confirmé Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Malheureusement ça ne marche pas non plus. Mais je continue à chercher

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir



    Ajoute

    au début de la fonction is_break_page

    II-C. La méthode Application.Volatile



    bonne soirée
    michel

  7. #7
    Membre confirmé Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Par défaut
    Merci de votre aide, application.volatible ralentit le programme. Au bout de 1h il continue étant donnée le nombre de ligne étant de 500 lignes part onglet.

    Ça marche une fois sur deux.

Discussions similaires

  1. updateRow() : Données non mises à jour
    Par Neuromancien2 dans le forum JDBC
    Réponses: 5
    Dernier message: 23/10/2008, 00h02
  2. [JpGraph] image non mise à jour
    Par Lyna31 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/03/2007, 16h07
  3. Réponses: 7
    Dernier message: 15/01/2007, 18h18
  4. Vue non mise à jour après modification d'une table
    Par cybernet35 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 13h54

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