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 :

[VBA-E]Lancement macro ouverture Feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut [VBA-E]Lancement macro ouverture Feuille
    Bonjour à tous

    Je voudrais savoir qu'est ce qui cloche dans le code suivant, devant normalement lancer la macro a l'ouverture de la feuille nommé "chant".

    Car quand je click sur l'onglet rien ne se passe.
    Voila le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Activate(ByVal chant As Object)
    Ca doit etre simple mais je seche.

    Merci d'avance

  2. #2
    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

    tu peux tester cette synthaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Activate()
    laMacro
    End Sub
    La procedure doit etre collée dans la feuille "Chant"


    bonne soiree
    michel

  3. #3
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    merci SilkyRoad le truc est que je ne l'avait pas mis dans la feuille mais dans un module.

    Par contre du coup j'ai un message d'erreur à l'execution de la macro qui est:

    Erreur d'execution 1004
    La methode select de la classe range a echoué

    l'erreur ce situe sur la ligne en rouge, bizarre la macro fonctionnait avant que j'essaie de la faire demarrer a l'ouverture de la feuille.

    La macro sert a additionner independemment trois cellule de chaque feuille de la troisieme à l'avant derniere et a coller ces trois adddition dans trois cellules de la derniere feuille.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Private Sub Worksheet_Activate()
     Dim NbFeuille, i As Integer
    Dim PFeuille, Chant_a, Chant_b, Chant_c, Chant1, Chant2, Chant3 As Integer
     Dim firstcell, lastcell, zone As Range
     
     'PQR
     
     NbFeuille = Worksheets.Count
     
      PFeuille = 2
         
        
        Chant_a = 0
        Chant_b = 0
        Chant_c = 0
         
        For i = 3 To (NbFeuille - 1) Step 1
            Sheets(i).Select
            Set firstcell = Range("P5")
    Set lastcell = Range("p65536").End(xlUp)
    Set zone = Range(firstcell, lastcell)
    
    Range(firstcell, lastcell).Select
    ActiveCell.Offset(-1, 0).Select
    Chant1 = ActiveCell.Value
    Chant_a = Chant_a + Chant1
    
     Set firstcell = Range("Q5")
    Set lastcell = Range("Q65536").End(xlUp)
    Set zone = Range(firstcell, lastcell)
    
    
    Range(firstcell, lastcell).Select
    ActiveCell.Offset(-1, 0).Select
    Chant2 = ActiveCell.Value
    Chant_b = Chant_b + Chant2
    
    Set firstcell = Range("R5")
    Set lastcell = Range("R65536").End(xlUp)
    Set zone = Range(firstcell, lastcell)
    
    
    Range(firstcell, lastcell).Select
    ActiveCell.Offset(-1, 0).Select
    Chant3 = ActiveCell.Value
    Chant_c = Chant_c + Chant3
            
            
            Debug.Print Chant_a
        Next i
    Worksheets(Worksheets.Count).Select
    Range("b8").Value = Chant_a
    Range("c8").Value = Chant_b
    Range("d8").Value = Chant_c
     
     End Sub

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Je crois que tu n'as pas initialisé ta variable lastcell.

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    essai de modifier le code de cette ainsi..:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      For i = 3 To (NbFeuille - 1) Step 1
      With Sheets(i)
                      .Select 
            Set firstcell = .Range("P5")
             Set lastcell = .Range("p65536").End(xlUp)
           Set zone = .Range(firstcell, lastcell)
     
    .Range(firstcell, lastcell).Select
    ...
    end with
     next i
    en indiquant explicitement la feuille concerné.. sinon les range portent sur la contenant le code...

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par SilkyRoad
    bonsoir

    en complément de la réponse de Bbil ci joint une adaptation sans Select
    ...
    et oublie le "replatrage" que dont je t'ai montré le chemin.. (avec le with... ) l'utilisation des .select c'est pas terrible dans VBA excel..mais en plus dans un code événementiel .. sur l'activation d'une feuille...

    utilise plutôt le code à Michel..

  7. #7
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 511
    Par défaut
    bbil j'ai essayé de modifier selon ton code mais j'ai une erreur qui me dit Next sans For est ce du au with ? que tuas rajouter pourtant le next y est encore.

    J'ai essayer de rajouter un end with mais j'ai pas de resultat.

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

Discussions similaires

  1. [VBA-E]Lancement de macro à l'ouverture du fichier
    Par bastien62200 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/02/2006, 23h20
  2. [VBA-E] Lancement de la macro avant l'ouverture des feuilles
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h07
  3. [VBA-E] Lancement automatique d'une macro (débutante)
    Par pom_poir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 17h57
  4. [VBA-E] [help]macro pour dupliquer une feuille (en valeur)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/11/2005, 19h24
  5. [VBA-E] Macro ouverture fichier déja ouvert
    Par bhaal76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 14h30

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