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 :

Regrouper plusieurs boutons macro en un seul


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Par défaut Regrouper plusieurs boutons macro en un seul
    Bonjour à tous,
    Je viens vers vous car je souhaite regrouper plusieurs boutons macro et n'avoir qu'un seul bouton qui me mette à jour mes feuilles.
    Je mets en pj mon fichier pour plus de facilité.
    En fait, j'ai un code que j'utilise sur plusieurs feuille (c'est toujours le même code que j'appel avec mes boutons) il y a un bouton par feuille.
    La macro prend en compte une donnée qui se trouve dans la cellule B7 de chaque feuille (donnée différente sur chaque feuille) voila pourquoi j'ai crée un bouton par feuille.
    Mais étant donnée que j'ai beaucoup de feuille et que dans le temps je risque d'avoir encore plus de feuille j'aimerai pouvoir regrouper mes boutons en un seul.

    Merci de m'avoir lu.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    je n'ai pas ouvert ton fichier, ta problématique est d'ailleurs assez simple à solutionner sans voir ton code

    chacune de tes procédures doit ressembler à ça (dans l'idée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub MacroFeuil1()
    Dim Donnees
     
    Donnees = WorkSheets("Feuil1").Range("B7")
     
    ' ton code qui réalise les actions dans la feuille
    End Sub

    si tu veux regrouper toutes ses procédures, c'est à dire effectuer en une fois le traitement de toutes les feuilles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub MacroToutesLesFeuilles()
    Dim Donnees
     
    For i = 1 to Worksheets.Count
        With Worksheets(i)
            Donnees = .Range("B7")
     
            ' ton code qui réalise les actions dans la feuille
            ' ATTENTION A BIEN CONSERVER LE RATTACHEMENT DES PLAGES A TA FEUILLE
            ' le bloc With/End With va te simplifier l'écriture
        End With
    Next i
    End Sub
    Si tu dois exclure des feuilles de ton traitement, tu pourras tester le nom de la feuille via un If ou Select Case ... voir même construire un tableau contenant le nom des feuilles à exclure
    Là tu as tout le choix possible

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Par défaut
    Merci joe.levrai pour ta réactivité en fait je complète plusieurs tableaux à partir d'un fichier source, ici Temp1.
    Je te met le code pour plus de clarté :

    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
    Sub estimation()
     
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
     
        Dim DebColonne As Integer
        Dim FinColonne As Integer
        Dim LigneEs As Integer
        Dim LigneFinTab As Integer
        Dim i As Integer
        Dim x As Integer
     
        DebColonne = Val(InputBox("Quel week renseigner ?"))
        If DebColonne = 0 Then Exit Sub
     
        LigneEs = Val(InputBox("Quel Ligne ?"))
        If LigneEs = 0 Then Exit Sub
     
    ' semaine que je souhaite charger
        Sheets("Parametres").Cells(22, 2).Value = DebColonne + 5
     
    ' dernière colonne de mon tableau
        FinColonne = Sheets("Parametres").Cells(23, 2).Value
     
    'ligne ou je souhaite imputer mes données
        Sheets("Parametres").Cells(24, 2).Value = LigneEs
     
    'dernière ligne du tableau
        LigneFinTab = Sheets("Parametres").Cells(26, 2).Value
     
    'la cellule où je note la valeur cherchée soit en B7 soit en B31 soit en B57 soit en B82 car j'ai plusieurs tableaux sur une même feuille maximum 4 et minimum 1
        x = Sheets("Parametres").Range("B27").Value
     
        For i = DebColonne + 5 To FinColonne - 1
            Cells(LigneEs, i).FormulaLocal = "=INDEX(Temp1!$A$1:$DT$72;EQUIV(B" & x & ";Temp1!$A$1:$A$72;0)+1;" & i & ")"
            Cells(LigneEs, i).Value = Cells(LigneEs, i).Value
        Next i
     
     
     
    Application.Calculation = xlCalculationAutomatic
     
     
    End Sub
    Je ne sais pas si c'est plus clair mais je vais creuser avec ton code

  4. #4
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Par défaut
    Voici le code adapté cependant, j'ai des formules qui s'affichent sur les feuilles ou je n'ai qu'un tableau.

    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
    Sub realisation()
     
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
     
     
        Dim DebColonne As Integer
        Dim FinColonne As Integer
        Dim LigneRe As Integer
        Dim LigneFinTab As Integer
        Dim x As Integer
        Dim i As Integer
        Dim Donnees
     
        DebColonne = Val(InputBox("Quel week renseigner ?"))
        If DebColonne = 0 Then Exit Sub
     
        LigneRe = Val(InputBox("Quel Ligne ?"))
        If LigneRe = 0 Then Exit Sub
     
     
        Sheets("Parametres").Cells(22, 2).Value = DebColonne + 5
        FinColonne = Sheets("Parametres").Cells(23, 2).Value
        Sheets("Parametres").Cells(25, 2).Value = LigneRe
        LigneFinTab = Sheets("Parametres").Cells(26, 2).Value
        i = Sheets("Parametres").Range("B27").Value
     
     
     
     
    For y = 3 To Worksheets.Count
        With Worksheets(y)
     
            Donnees = i
     
         .Cells(LigneRe, DebColonne + 5).FormulaLocal = "=INDEX(Temp1!$A$1:$DT$72;EQUIV(B" & Donnees & ";Temp1!$A$1:$A$72;0)+1;" & DebColonne + 5 & ")"
     
        End With
    Next y
     
     
     
     
    Application.Calculation = xlCalculationAutomatic
     
     
    End Sub

Discussions similaires

  1. Comment utiliser plusieurs boutons submit dans un seul formulaire ?
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/06/2009, 19h27
  2. Réponses: 4
    Dernier message: 20/05/2009, 17h58
  3. Regrouper plusieurs fichiers Latex en un seul
    Par nollan dans le forum Mise en forme
    Réponses: 3
    Dernier message: 11/03/2008, 12h10
  4. regrouper plusieurs fichiers Excel en un seul
    Par jnmab dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/11/2007, 17h40
  5. Regrouper plusieurs tables liées dans un seul formulaire
    Par Kareg dans le forum Modélisation
    Réponses: 9
    Dernier message: 01/08/2007, 13h24

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