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 de copie d'une feuille dont le nom est contenu dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 7
    Points
    7
    Par défaut MACRO de copie d'une feuille dont le nom est contenu dans une cellule
    Bonjour à tous,

    je suis novice en VBA, et je suis en mission de création d'un nouveau outil de reporting dans mon stage.
    Dans un classeur, j'ai une feuille "Data" et une feuille "Dashbord". Dans un autre classeur nommé "Historique" j'ai des feuilles nommées par mois (exp : 01-15, 02-15...) contenant les données. Sur la feuille "Dashbord", j'ai une cellule de période c'est la P4. Ce que j'aimerai avoir c'est à chaque fois qu'on insère le mois (exp: 02-15), la macro aille copier la feuille "02-15" du classeur "Historique" et vient la coller dans la feuille "Data" qui alimente mon tableau de bord.

    Voilà, je serai vraiment reconnaissante si quelqu'un pourrait m'aider. Merci par avance

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Voici une base :

    1) Dans le code de ta page "Dashbord"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If (Target.Row = 4) And (Target.Column = 16) Then
            If Len(Target.Value) = 5 Then consulte_histo (Target.Value)
        End If
    End Sub
    2) Dans un module; et remplace "C:\............\Classeur2.xlsx"

    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
     
    Public Function Consulte_Histo(periode As String)
     
                Dim wkSource As Workbook ' Classeur source
     
                ThisWorkbook.Sheets("Data").Select
                Cells.Select
                Selection.ClearContents
                Range("A1").Select
     
                Set wkSource = Application.Workbooks.Open("C:\............\Classeur2.xlsx")
     
                Sheets(periode).Select
                Cells.Select
                Selection.Copy
     
                ThisWorkbook.Activate
                Sheets("Data").Select
                Cells.Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
     
                wkSource.Close False 'Ferme sans modif
     
                ThisWorkbook.Activate
                Sheets("Data").Select
                Range("A1").Select
     
    End Function

    Pas très joli mais ça marche.

    Bonne continuation.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour OBO 29

    Je te remercie beaucoup pour ta réponse. J'ai inséré ton code le premier en tant que "sub" et le deuxième en tant que "function" mais cela ne marche pas.
    quand je saisis dans la cellule "P4" un mois ( 03-15 par exp) rien ne se produit.
    Je ne sais pas exactement ou réside le problème.

  4. #4
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Citation Envoyé par OBO29
    1) Dans le code de ta page "Dashbord"
    Il faut insérer le code dans la feuille "Dashboard", et pas dans un module.

    Il faut insérer le second code en tant que Public Function dans un module.

    Le premier code gère l'évenement "Change" de la feuille Dashboard. Grosso modo, si la cellule P4 change, le code s'exécute. Si tu ne place pas ce code dans la feuille "Dashboard", il ne va rien se passer.
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    donc le premier doit être inseré en tant que macro dans la feuille "Dashbord"?

  6. #6
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Exactement.

    Plus précisément, tu dois le copier tel qu'OBO29 l'a écrit, dans la feuille "Dashboard"
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    MERCI infiniment à vous. ça marche très bien

  8. #8
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Parfait !

    Passe donc le sujet en "résolu", et n'hésite pas à remercier OBO29 qui t'a apporté la solution par un petit pouce vert !
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    bonjour,

    Je suis de retour. En fait, afin d'éviter les erreurs je veux faire une zone de liste déroulante (contrôle de formulaire) pour choisir la période. Comment on peut récupérer le contenu de cette liste (janvier15, février15....) pour aller consulter l'historique (le même module).

    Merci

Discussions similaires

  1. MACRO de copie d'une feuille dont le nom est contenu dans une cellule
    Par youssy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/03/2015, 19h39
  2. [XL-2007] Sélectionner une feuille dont le nom est contenu dans une cellule
    Par Nonno 94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/06/2014, 20h47
  3. Réponses: 3
    Dernier message: 07/01/2010, 16h54
  4. Instancier une classe dont le nom est contenu dans une String
    Par fyque dans le forum Général Python
    Réponses: 15
    Dernier message: 13/06/2008, 12h33
  5. Réponses: 7
    Dernier message: 25/10/2005, 15h19

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