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 :

Excel - modification de cellules & mise à jour des cellules contenant des formules


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 110
    Points : 51
    Points
    51
    Par défaut Excel - modification de cellules & mise à jour des cellules contenant des formules
    Bonjour,

    Je suis en train de travailler sur un formulaire excel qui travaille avec un autre fichier .xls (fichier destination).
    Dans ce formulaireje rentre mes valeurs qui sont ensuite copié dans les cellules correspondantes du fichier destination.
    Dan le fichier destinantion il y a donc certaines cellules (on appellera Cellules modifiables) que je modifie via le formulaire et d'autres que je ne modifie pas mais que je lie (cellules resultat). Ces cellules résultat contiennent des formules, leurs résultat varient donc en fonction des cellules modifiables.
    Quand je suis dans le fichier destination et que je modifie directement les cellules modifiables sans passer par le formulaire, les cellules resultat sont mise à jour instantanéments. Mais quand je passe par le formulaire, les cellules résultats reste à zéro.

    Est-ce que quelqu'un aurait une petite idée de comment arranger ça?

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Essaie
    A placer après la mise à jour de tes données.
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 110
    Points : 51
    Points
    51
    Par défaut
    J'ai essayer de faire comme ça mais ça ne fonctionne pas, je sais vraiment pas pourquoi.

    Voici le code que j'utilise pour enregistrer les données :
    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
     
        Dim SheetToModify As String
        Call OuvrirCostModel
     
        Dim i As Integer
        i = 2
        Do Until IsEmpty(MATRICE.Cells(i, 1))
            '***On ne sauvegarde dans le costmodel que les champs modifiable
            If MATRICE.Cells(i, 9) = "Modifiable" Then
                SheetToModify = MATRICE.Cells(i, 10).Value
                Sheets(SheetToModify).Select
                Cells(MATRICE.Cells(i, 2).Value, MATRICE.Cells(i, 3).Value) = MATRICE.Cells(i, 4)
                Sheets(SheetToModify).Calculate
            End If
            i = i + 1
        Loop
     
        Call FermerCostModel

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 110
    Points : 51
    Points
    51
    Par défaut
    C'est bizarre parce que je viens de me rendre compte qu'il y a une cellule résultat qui fonctionne correctement (elle contient une gigantesque formule avec du vlookup et tt ca) par contre les autres cellules resultat ne fonctionnent toujours pas comme il faudrait (elle contienne des formules simple type somme)

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par ooyeah
    Voici le code que j'utilise pour enregistrer les données :
    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
     
        Dim SheetToModify As worksheet
        Application.screenUpdating = false
        Call OuvrirCostModel
     
        Dim i As Integer
        i = 2
        Do Until IsEmpty(MATRICE.Cells(i, 1))
            '***On ne sauvegarde dans le costmodel que les champs modifiable
            If MATRICE.Cells(i, 9) = "Modifiable" Then
                Set SheetToModify = Worksheets(MATRICE.Cells(i, 10).Value)
                SheetToModify.Cells(MATRICE.Cells(i, 2).Value, _
                MATRICE.Cells(i, 3).Value) = MATRICE.Cells(i, 4)
                SheetToModify.Calculate
            End If
            i = i + 1
        Loop
        Set worksheet = Nothing
        Call FermerCostModel
        Application.screenUpdating = True
    Déjà, si tu instanciais ta feuille, ça simplifierait ton code.
    Ensuite, évite les selects qui ralentissent le code.
    Enfin, si dans l'une ou l'autre des macros appelées tu as des selects, avant de les supprimer et pour tester, ajoute les deux lignes "Application.screenUpdating = ....."
    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 110
    Points : 51
    Points
    51
    Par défaut
    Merci pour ton coup de main, mais j'ai résolu mon erreur.
    En fait chaque fois que j'enregistrait une valeur, je ne précisait pas le type donc excel croyait que j'enregistrait un champs string donc ça ne lui plaisait pas pour les formules.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/07/2013, 12h41
  2. [XL-2003] Supprimer des lignes contenant des cellules #N/A
    Par christoff916 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/07/2011, 15h03
  3. Réponses: 2
    Dernier message: 27/10/2009, 10h36
  4. Macro mise à jour de liens sur des classeurs externes (excel)
    Par Border_xls dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/11/2007, 10h04
  5. JTable contenant des JComboBox contenant des Images
    Par lex13 dans le forum Composants
    Réponses: 4
    Dernier message: 31/07/2007, 15h57

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