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 :

Macro pour feuille de récapitulation


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut Macro pour feuille de récapitulation
    Bonjour,
    Je suis nouveau sur le forum et très novice en VBA.
    Pour mon job je souhaite faire un classeur de « suivi de commande ».
    Le principe du classeur et le suivant :
    J’ai un onglet « matrice » et un onglet « Recap »
    J ai déjà une macro qui me copie la « matrice » pour créer les feuilles de commande et me renumérote l’ongle 01,02.03 et ainsi de suite.
    Dans ma feuille de « récap » je souhaite récupérer certaines cellules de mes feuilles 01, 02,03
    Exemple feuille 01 cellule A5, B42, C36
    Et les récupérer ces valeurs dans ma récap. en A2,B2,C2(pour la feuille01).et en A3,B3,C3 (pour la feuille02)

    En gros les valeurs suivantes des onglets s’inscrivent par ligne et les suivantes en-dessous.
    Le nombre de feuille de commande n’est pas définit.
    J aimerai faire une macro qui récupère les valeurs et met à jour la récap.

    Auriez-vous une piste ?

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour Edward 1977,

    Voici une solution.
    J’ai supposé que tes feuilles de commandes sont ordonnées comme suit :
    Feuille 1 : matrice
    Feuille 2 : Recap
    Feuille 3 : 01
    Feuille 4 : 02
    Feuille 5 : etc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Test()
    Dim NbFeuilles As Long
    Dim sh As Worksheet
        NbFeuilles = Sheets.Count
        Set sh = Worksheets("Recap")
        For i = 3 To NbFeuilles
            With Sheets(i)
                sh.Range("A" & i - 1) = .Range("A5")
                sh.Range("B" & i - 1) = .Range("B42")
                sh.Range("C" & i - 1) = .Range("C36")
            End With
        Next i
        Set sh = Nothing
    End Sub
    Cordialement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Merci gFZT82,
    Le code est tout simplement parfait.
    J'aurais encore 2 questions.

    1) J'aimerai récuperer le numero d'onglet dans ma "récap" pour améliorer la lisibilité entre la récap et les feuille01,02,03 etc. de commande dans la colone D par exemple.
    ou alors faut-il que je prévois une cellule dans les feuilles de commande ???
    Voici ma macro pour la création des feuilles:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub matrice()
     
    Sheets("Matrice").Copy Before:=Sheets("Matrice")
    ActiveSheet.Name = "0" & ActiveWorkbook.Sheets.Count - 2
     
    End Sub
    2) Je souhaiterai lier l'activation de la macro àl'onglet"insérer une nouvelle feuille de calcul.

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Re-bonjour,

    Voici pour ajouter l’identifiant de la feuille en colonne D

    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
    Sub Test()
    Dim NbFeuilles As Long
    Dim sh As Worksheet
        NbFeuilles = Sheets.Count
        Set sh = Worksheets("Recap")
        For i = 3 To NbFeuilles
            With Sheets(i)
                sh.Range("A" & i - 1) = .Range("A5")
                sh.Range("B" & i - 1) = .Range("B42")
                sh.Range("C" & i - 1) = .Range("C36")
                sh.Range("D" & i - 1) = "Onglet " & Sheets(i).Name
            End With
        Next i
        Set sh = Nothing
    End Sub
    Pour respecter l’ordre des feuilles lors de l’ajout d’une feuille de commande, j’aurais plutôt codé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub matrice()
        Sheets("Matrice").Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = "0" & ActiveWorkbook.Sheets.Count - 2
    End Sub
    Concernant ta question relative à l’activation de la procédure « matrice », je n’ai pas compris ce que tu souhaites faire.
    S’il s’agit simplement de disposer d’un contrôle pour commander l’ajout d’une feuille de commande, tu peux utiliser un CommandButton, à placer dans ta feuille « Recap » par exemple.

    Cordialement.

  5. #5
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Super un grand merci gFZT82,

    J'ai modifier en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sh.Range("D" & i - 1) = Sheets(i).Name
    pour gardé uniquement le n° de l'onglet.

    Concernant l'activation de la procédure "matrice".
    Ce classeur sera utilisé par plusieur personnes(pas en même temps).

    Dans un nouveau classeur excel, tu as 3 feuilles et un petit onglet"inserer une nouvelle feuille de calcul Maj+F11" qui te permet de créer une nouvelle feuille vierge.

    Je voudrais que l'utilisateur lamba en cliquant sur cet onglet lance la macro " matrice" et non la création d'une nouvelle feuille.

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Désolé Edward 1977,

    j'ignore s'il est possible d'associer une macro à cet onglet.

    Cordialement.

Discussions similaires

  1. macros pour trier un tableau vers une nouvelle feuille excel
    Par argaz01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2010, 14h00
  2. Macro pour se déplacer sur une feuille excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2010, 20h41
  3. [XL-2003] Macro pour exporter une partie de feuille
    Par Nico123 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/11/2009, 11h19
  4. [E-97] macro pour déprotéger une feuille (fichier partagé)
    Par mart159 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2008, 08h09
  5. [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

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