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 :

incrémenter une valeur d'un autre classeur [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut incrémenter une valeur d'un autre classeur
    Bonjour à tous.

    Je me présente, Nightwhisper, grand débutant en Vb (grand car vraiment mauvais)

    J'ai eu, la brillante idée de faire une macro Excel pour me faciliter la vie, mais cela est loin d'être le cas.

    Mon problème :

    Je veux, incrémenter une valeur qui ce situe dans un autre classeur. Bon jusqu'a là rien de bien difficile (enfin mon programme ne fonctionne pas quand même)
    A chaque incrémentation, je voudrais rappatrier la nouvelle valeur dans un tableau de mon classeur sur lequel je travaille.

    La valeur que je tente d'incrémenter est sur le classeur Tm24FYC323-516.xls et elle est nommée Ltb.
    Je travaille sur le classeur Teszt.xls

    Voici ce que j'ai fait, qui ne fonctionne pas car il doit être bourré d'erreurs:

    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
    sub macro3()
     Dim ltb As Double
        Dim i As Integer
     
        ltb = Worksheets("Tm24FYC323-516.xls!Ltb")
        Range("B3").Select
        ActiveCell.FormulaR1C1 = "='Tm24FYC323-516.xls'!Ltb"
        For ltb = 0.01 To ltb = 0.4
        ltb = ltb + 0.01
            For i = 4 To i = 43
            Range(i, 2).Select
            ActiveCell.FormulaR1C1 = "='Tm24FYC323-516.xls'!Ltb"
            Next i
        Next ltb
     
     
    End Sub
    Bon je ne sais pas si j'ai été très clair. En tout cas tout éclairement est le bienvenu.

    Version excel 2003 Sp3
    Version VB 6.3

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Nightwhisper, re le forum,
    si on décortique ton code, rien que cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ltb = Worksheets("Tm24FYC323-516.xls!Ltb")
    tu dis que Tm24FYC323-516.xls est un classeur donc déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ltb = Workbooks("Tm24FYC323-516.xls").worksheets("nomdetafeuille").range(....
    à savoir si ltb est défini comme nom de cellule dans cette feuille, le reste comporte des erreurs mais allons-y pas à pas

    a +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    Merci déjà pour la réponse,
    j'ai donc modifié la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ltb = Worksheets("Tm24FYC323-516.xls!Ltb")
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ltb = Workbooks("Tm24FYC323-516.xls").Worksheets("tm24").Range("G16")
    en lancant le programme, il ne bloque plus sur cette ligne.

    Par contre, dans le classeur sur lequel je travaille, ltb n'est pas défini, je tente justement d'attribuer uniquement dans le code une valeur à ltb égale à celle définie dans le classeur Tm24.

    Je suis clair?

    Une idée comme ca, qui me semble pas bête pour aller modifier le Ltb du classeur Tm24

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For ltb = 0.01 To ltb = 0.4
        ltb = ltb + 0.01
    Workbooks("Tm24FYC323-516.xls").Worksheets("tm24").Range("G16") =ltb
            For i = 4 To i = 43
            Range(4, i).Select
            ActiveCell.FormulaR1C1 = "='Tm24FYC323-516.xls'!Ltb"
            Next i
        Next ltb

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    dans ce cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ltb = Workbooks("Tm24FYC323-516.xls").Worksheets("tm24").Range("G16") 'il faut que ce classeur soit ouvert
    si la macro est dans le classeur "test", (vérifies l'ortographe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thisworkbook.sheets("nomdelafeuilleactive").activecell = ltb
    mais il faut continuer les corrections pour le reste du code avec les boucles, ceci n'est qu'un exemple
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Rien que cette ligne n'a pas une bonne syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For ltb = 0.01 To ltb = 0.4
    je peux corriger ton code si tu me dis quelles sont les cellules à incrémenter
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Rechercher une valeur dans un autre classeur
    Par nanoo79 dans le forum Excel
    Réponses: 2
    Dernier message: 19/12/2013, 17h02
  2. [XL-2007] Entrée la valeur d'une cellule d'un autre classeur dans une variable
    Par Coco_O dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2011, 16h25
  3. Réponses: 3
    Dernier message: 05/03/2009, 03h44
  4. Réponses: 5
    Dernier message: 06/04/2007, 14h05
  5. Réponses: 2
    Dernier message: 23/07/2006, 22h11

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