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 mêm macro dans plusieurs feuilles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Par défaut VBA mêm macro dans plusieurs feuilles
    Bonjour,

    Dans le cadre d'un projet en informatique je dois créer un bulletin de paie.

    J'ai donc créée une macro du nom de "calcul" qui se déclenche dès lors que j'appuie sur un bouton sur ma feuille 1, nommée "accueil".

    Le problème est que dès lors que j'appuie dessus, la macro "calcul" ne se génère que sur une feuille alors que j'aimerais qu'elle se génère sur plusieurs feuilles sans se générer sur ma première feuille "accueil".

    Comment puis je faire ?

    En vous remerciant d'avance.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Mets ta macro ici pour pouvoir t'aider

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Par défaut
    Merci de ta réponse rapide, je mets ma macro même si je pensais juste la nommer et non pas la mettre.

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    Sub calcul()
     
    'SECTION DE CALCUL DE BASE et du montant DES COTISATIONS
    '=========================================
    'Base assurance maladie
    Cells(24, 3).Value = Cells(21, 3).Value
    'montant cotisation assurance maladie
    Cells(24, 7).Value = Cells(24, 3).Value * Sheets("TAXES").Cells(4, 4)
    Cells(24, 5).Value = Cells(24, 3).Value * Sheets("TAXES").Cells(4, 3)
     
    'Base assurance veuvage
    Cells(25, 3).Value = Cells(21, 3).Value
    'montant cotisation  assurance veuvage
    Cells(25, 7).Value = Cells(25, 3).Value * Sheets("TAXES").Cells(5, 4)
    Cells(25, 5).Value = Cells(25, 3).Value * Sheets("TAXES").Cells(5, 3)
     
    'Base assurance familiales
    Cells(26, 3).Value = Cells(21, 3).Value
    'montant cotisation  assurance familiale
    Cells(26, 7).Value = Cells(26, 3).Value * Sheets("TAXES").Cells(6, 4)
    Cells(26, 5).Value = Cells(26, 3).Value * Sheets("TAXES").Cells(6, 3)
     
    'Base assurance accident du travail
    Cells(29, 3).Value = Cells(21, 3).Value
    'montant cotisation assurance accident du travail
    Cells(29, 7).Value = Cells(29, 3).Value * Sheets("TAXES").Cells(7, 4)
    Cells(29, 5).Value = Cells(29, 3).Value * Sheets("TAXES").Cells(7, 3)
     
    'SS VIEILLESSE
    ' - Base et calcul assurance vieillesse plafonnee
    If Cells(27, 3).Value = Cells(21, 3).Value <= "2206" Then
    Cells(27, 3).Value = Cells(21, 3).Value
    Cells(27, 7).Value = Cells(27, 3).Value * Sheets("TAXES").Cells(8, 4)
    Cells(27, 5).Value = Cells(27, 3).Value * Sheets("TAXES").Cells(8, 3)
    Else
    Cells(27, 3).Value = "2206"
    Cells(27, 7).Value = Cells(27, 3).Value * Sheets("TAXES").Cells(8, 4)
    Cells(27, 5).Value = Cells(27, 3).Value * Sheets("TAXES").Cells(8, 3)
    End If
    ' - Base assurance vieillesse deplafonnee
    Cells(28, 3).Value = Cells(21, 3).Value
    Cells(28, 5).Value = "0"
    Cells(28, 7).Value = Cells(28, 3).Value * Sheets("TAXES").Cells(9, 4)
     
     
     
    'Base chomage et ASF TRANCHE A
    If Cells(21, 3).Value <= "2206" Then
    Cells(31, 3).Value = Cells(21, 3).Value
    Cells(31, 7).Value = Cells(31, 3).Value * Sheets("TAXES").Cells(11, 4)
    Cells(31, 5).Value = Cells(31, 3).Value * Sheets("TAXES").Cells(11, 3)
    Else
    Cells(31, 3).Value = "2206"
    Cells(31, 7).Value = Cells(31, 3).Value * Sheets("TAXES").Cells(11, 4)
    Cells(31, 5).Value = Cells(31, 3).Value * Sheets("TAXES").Cells(11, 3)
    End If
     
    'Base chomage et ASF  TRANCHE B
    If Cells(21, 3).Value > "2206" And Cells(21, 3).Value <= "8824" Then
    Cells(32, 3).Value = Cells(21, 3).Value
    Cells(32, 7).Value = Cells(32, 3).Value * Sheets("TAXES").Cells(12, 4)
    Cells(32, 5).Value = Cells(32, 3).Value * Sheets("TAXES").Cells(12, 3)
    Else
    Cells(32, 3).Value = "0"
    Cells(32, 7).Value = Cells(32, 3).Value * Sheets("TAXES").Cells(12, 4)
    Cells(32, 5).Value = Cells(32, 3).Value * Sheets("TAXES").Cells(12, 3)
    End If
     
     
     
     
    'RETRAITE
    'calcul retraite complementaire - salarie non cadre
    If Cells(21, 3).Value <= "6618" Then
    Cells(33, 3).Value = Cells(21, 3).Value
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(16, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(16, 3)
    Else
    Cells(33, 3).Value = "6618"
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(16, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(16, 3)
    End If
    'calcul retraite complementaire - TRANCHE A
    If Cells(21, 3).Value <= "2206" Then
    Cells(33, 3).Value = Cells(21, 3).Value
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(18, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(18, 3)
    Else
    Cells(33, 3).Value = "2206"
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(18, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(18, 3)
    End If
    'calcul retraite complementaire - TRANCHE B
    If Cells(21, 3).Value > "2206" And Cells(21, 3).Value <= "8824" Then
    Cells(33, 3).Value = Cells(21, 3).Value
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(20, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(20, 3)
    Else
    Cells(33, 3).Value = "0"
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(20, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(20, 3)
    End If
     
     
    'calcul retraite complementaire - TRANCHE C
    If (Cells(21, 3).Value >= 8824 And Cells(21, 3).Value <= 17648) Then
    Cells(33, 3).Value = Cells(21, 3).Value
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(22, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(22, 3)
    Else
    Cells(33, 3).Value = "0"
    Cells(33, 7).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(22, 4)
    Cells(33, 5).Value = Cells(33, 3).Value * Sheets("TAXES").Cells(22, 3)
    End If
     
     
    'C.S.G.
    'Base CSG non deductible + CRDS
    Cells(35, 3).Value = Cells(21, 3).Value * 0.95
    'calcul CSG non deductible + CRDS
    Cells(35, 5).Value = Cells(35, 3).Value * Sheets("TAXES").Cells(26, 3)
    Cells(35, 7).Value = "0"
    'Base CSG deductible
    Cells(36, 3).Value = Cells(21, 3).Value * 0.95
    'calcul CSG deductible
    Cells(36, 5).Value = Cells(35, 3).Value * Sheets("TAXES").Cells(27, 3)
    Cells(36, 7).Value = "0"
     
     
    End Sub
    Je pense qu'il faudrait que je fasse une macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim F As Worksheet
    For Each F In ThisWorkbook.Worksheets
    If F.Name <> "ACCUEIL"
    F.Activate
    calcul ' nom de ma macro
     
    End sub
    Mais malheuresement je n'arrive pas à la faire fonctionner :s

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu peux utiliser la même macro ou créer une autre
    1.
    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
    Sub Calcul()
    Dim Sh As Worksheet
     
    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name <> "Accueil" Then
            With Sh
                'SECTION DE CALCUL DE BASE et du montant DES COTISATIONS
                '=========================================
                'Base assurance maladie
                .Cells(24, 3).Value = .Cells(21, 3).Value
                'montant cotisation assurance maladie
                .Cells(24, 7).Value = .Cells(24, 3).Value * Sheets("TAXES").Cells(4, 4)
                .Cells(24, 5).Value = .Cells(24, 3).Value * Sheets("TAXES").Cells(4, 3)
     
                'Base assurance veuvage
                .Cells(25, 3).Value = .Cells(21, 3).Value
                'montant cotisation assurance veuvage
                .Cells(25, 7).Value = .Cells(25, 3).Value * Sheets("TAXES").Cells(5, 4)
                .Cells(25, 5).Value = .Cells(25, 3).Value * Sheets("TAXES").Cells(5, 3)
     
                '....la suite
                'n'oublies pas les points avant Cells
            End With
        End If
    Next Sh
    End Sub
    Ou bien
    2.
    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
    Sub Lancement()
    Dim Sh As Worksheet
     
    Application.ScreenUpdating = False
    For Each Sh In ThisWorkbook.Worksheets
        Calcul Sh
    Next Sh
    End Sub
     
    Private Sub Calcul(ByVal Sh As Worksheet)
     
    If Sh.Name <> "Accueil" Then
        With Sh
            'SECTION DE CALCUL DE BASE et du montant DES COTISATIONS
            '=========================================
            'Base assurance maladie
            .Cells(24, 3).Value = .Cells(21, 3).Value
            'montant cotisation assurance maladie
            .Cells(24, 7).Value = .Cells(24, 3).Value * Sheets("TAXES").Cells(4, 4)
            .Cells(24, 5).Value = .Cells(24, 3).Value * Sheets("TAXES").Cells(4, 3)
     
            'Base assurance veuvage
            .Cells(25, 3).Value = .Cells(21, 3).Value
            'montant cotisation assurance veuvage
            .Cells(25, 7).Value = .Cells(25, 3).Value * Sheets("TAXES").Cells(5, 4)
            .Cells(25, 5).Value = .Cells(25, 3).Value * Sheets("TAXES").Cells(5, 3)
     
            '....la suite
            'n'oublies pas les points avant Cells
        End With
    End If
     
    End Sub

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 8
    Par défaut
    Merci bcp pour cette réponse !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/02/2011, 14h55
  2. écrire dans plusieur feuille Excel depuis vba access
    Par bossLINDROS dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/11/2008, 21h28
  3. Réponses: 9
    Dernier message: 10/05/2007, 10h56
  4. [VBA-E]Instancier une plage de cellules prises dans plusieurs feuilles
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/03/2007, 12h08
  5. [VBA-E]Recherche de date dans plusieurs feuilles
    Par atypik dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/04/2006, 20h36

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