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 :

Pb changement de feuille


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 29
    Points
    29
    Par défaut Pb changement de feuille
    Bonjour,
    je débute dans les macros. Et en fait en cherchant des cas similaires, je me rends un peu compte que chaque cas est presque particulier.
    Voila en fait j'ai crée un bouton de commande dans feuille 1. Et j'aimerai utiliser des nombres dans des cellules d'une feuille 2, calculer une somme et afficher le resultat dans feuille 1.

    Voici le code:

    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
    Private Sub CommandButton1_Click()
    Dim cond As Variant
    Dim avant_achat As Worksheet
    Dim i As Variant
    Dim j As Variant
    Dim nb_actions As Variant
    Dim prix_action As Variant
    Dim ligne As Variant
    Dim k As Variant
    Dim nom_action As Variant
    
    'Vérification des valeurs prises en compte dans le capital
    'c'est une évaluation
    k = 0
    For i = 5 To 200
    Worksheets("avant_achat").Activate' 
    j = Cells(i, 1) (En fait j'aimerai que la valeur cell(i,1) soit prise dans la sheet "avant achat". Et il me l'a prend dans la page active du bouton)
    If j = 1 Then
    nom_action = Cells(i, 3)
    nb_actions = Cells(i, 4)
    prix_action = Cells(i, 6)
    frais = Cells(i, 5)
    ligne = (nb_actions * prix_action) + frais
    k = k + 1
    Worksheets("feuille_temp").Activate idem ici
    Cells(i, 2) = nom_action
    Cells(i, 5) = nb_actions
    Cells(i, 6) = ligne
    Else
    End If
    Next
    
    End Sub

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Salut,
    Je débute aussi en vba, mais j'ai eu le meme cas, et je pense que tu doi remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("avant_achat").Activate'
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("avant_achat").Select
    A essayer

  3. #3
    Membre éclairé

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonsoir,

    >Worksheets("avant_achat").Activate'
    >j = Cells(i, 1) (En fait j'aimerai que la valeur cell(i,1) soit prise dans la sheet "avant achat". Et il me l'a prend dans la page active du bouton)

    Dans un module standard Cells (ou Range) sans qualificateur fait référence à la feuille active.

    Par contre, lorsque le code est situé dans le module d'une feuille l'utilisation de Cells (ou Range) sans qualificateur équivaut à faire référence aux cellules de cette feuille indépendamment de la feuille active.

    Il te faut donc préciser le nom de la feuille avant d'utiliser l'une de ces méthodes.

    D'autre part il n'est pas nécessaire d'activer une feuille pour travailler avec, a fortiori dans une boucle.

    Si j'ai bien compris ce que tu veux faire le code pourrait ressembler à ceci:
    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
     
    For i = 5 To 200
        j = Worksheets("avant_achat").Cells(i, 1)
        If j = 1 Then
            With Worksheets("avant_achat")
                nom_action = .Cells(i, 3)
                nb_actions = .Cells(i, 4)
                prix_action = .Cells(i, 6)
                frais = .Cells(i, 5)
            End With
            ligne = (nb_actions * prix_action) + frais
            k = k + 1
            With Worksheets("feuille_temp")
                 .Cells(i, 2) = nom_action
                .Cells(i, 5) = nb_actions
                .Cells(i, 6) = ligne
            End With
        Else
     
        End If
    Next
    Cordialement,

    Tirex28/

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 29
    Points : 29
    Points
    29
    Par défaut
    merci bien

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

Discussions similaires

  1. [XL-2003] Changement de feuille par Macro activée par un Bouton
    Par Gitano dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/08/2009, 10h57
  2. [XL-2000] ne pas voir tous les changement de feuilles effectués par la macro
    Par jess59 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/06/2009, 09h46
  3. [XL-2000] [VB] Ptis soucis pour coder un changement de feuille et exploitation des données
    Par vash641 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/04/2009, 11h23
  4. Changement de feuille sous Excel
    Par cstan dans le forum C++Builder
    Réponses: 4
    Dernier message: 30/06/2006, 10h19
  5. Changement de feuille dans excel
    Par 24 faubourg dans le forum Access
    Réponses: 3
    Dernier message: 06/12/2005, 09h52

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