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

Excel Discussion :

demande d'aide pour création automatique de Feuilles (formule ou VBA)l [XL-2007]


Sujet :

Excel

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut demande d'aide pour création automatique de Feuilles (formule ou VBA)l
    Bonjour,

    Je chercher a automatisé la création et l’implémentation de feuilles de calcule dans fichier, qui contient des informations relative a des éléments produit dans différentes usines dont la structure est en pièce jointe.(List of products test.xlsx)

    le bute de ma demande est de crée par un bouton une nouvelle feuille de traitement avec l'année incrémenter et tout les formule qui ce trouve dans la feuille recopier et modifier avec l'année de la feuille ajouter.

    sachant que pour simplifier les choser l'utilisateur devra ajouter lui-même la feuilles avec les volumes

    je ne sais pas si jamais c'est assez clair donc si il y a des précision a apporter demander moi.

    merci par avance de vos réponses

    jogeoth

  2. #2
    Membre habitué Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Points : 182
    Points
    182
    Par défaut
    Tu cherche à créer automatiquement l'onglet "traitement 201x" en fonction d'une année choisie ?
    Si oui je pense que le plus simple est de copier une feuille déja existante et de simplement modifier la date ("usine1_full[volume 2013]") via une interface utilisateur (VBA)

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    bonjour Youni92,

    merci de te réponse.

    c'est exactement cela.

    mais je débute en VBA (je vient de commencé a me penchée sur les tuto )

  4. #4
    Membre habitué Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Points : 182
    Points
    182
    Par défaut
    Bonjour,
    Je ne suis pas un expert des interfaces utilisateur en VBA non-plus...

    Pour débuter je te conseillerai :
    - Pour l'interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Year = InputBox("Year ?")
    - Pour insérer ta formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A:A").Formula ="..."

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    je vais tenter de faire cela.

    si jamais tu a d'autre indication a me donner n'hésite pas.
    et si jamais d'autre personne veulent bien m'aider

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    mais cette formule marche si jamais je change le "A:A" dans ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A:A").Formula ="..."
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("une plage d'un tableau").Formula ="..."
    cela fonctionne t-il ?

  7. #7
    Membre habitué Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Points : 182
    Points
    182
    Par défaut
    oui, "A:A" est juste pour l'exemple.

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    j'ai crée une nouvelle feuille pour mettre mes élément pour appellé mes macros : "add New Year"
    mais j'ai un petit soucie avec le nom de ma feuille pour l'année suivante:=.
    voici le code que j'ai mit
    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
    Sub feuille_annee()
    '
    ' feuille_annee Macro
    ' ajouter une feuille de l'année préselectioner
    '
    ' Touche de raccourci du clavier: Ctrl+d
    '
    ' déclaration de variable
     
        Dim Year As Integer
        Dim Year_before As Integer
     
    ' fin déclaration
    ' demande d'information
     
        Year = InputBox("Year ?")
     
    ' fin de demande d'information
     
        Year_before = Year - 1
        Sheets("add New Year").Select
        Sheets("add New Year").Name = "add New Year"
        Sheets("Volume" Year_before).Select
        Application.CutCopyMode = False
        Sheets("Volume" Year_before).Copy Before:=Sheets(1)
        Sheets("Volume 2013 (2)").Select
        Sheets("Volume 2013 (2)").Move After:=Sheets(6)
        Sheets("Volume 2013 (2)").Select
        Sheets("Volume 2013 (2)").Name = "Volume 2013 (2)"
        Sheets("Volume 2013 (2)").Select
        Sheets("Volume 2013 (2)").Name = "Volume 2014"
    End Sub
    voila le code que j'ai mit mais j'ai des erreurs de compilation et je trouve pas comment mettre un nom variable dans la création d'une nouvelle feuille.

    et merci encore une fois de m'aider

  9. #9
    Membre habitué Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Points : 182
    Points
    182
    Par défaut
    Tu mélange l'utilisation de variables et de "texte".
    Le code ci-dessous devrait te permettre de créer un nouvel onglet vide. Je pense malgré tout que tu devrai duppliquer un onglet déjà existant et remplace la formule avec ta nouvelle année.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    NewYear = InputBox("Year ?")
    NewSheetName = "Volume " & NewYear
    Sheets.Add
    ActiveSheet.Name = NewSheetName
    De plus, tu ne peux pas utiliser "Year" comme veriable puisque VBA le comprend comme un appel de fonction (c'était juste un exemple)

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    c'est bon pour la création de la nouvelle feuille avec le nom de l'année que je veux et a la place que je veux 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
    Sub feuille_annee()
    '
    ' feuille_annee Macro
    ' ajouter une feuille de l'année préselectioner
    '
    ' Touche de raccourci du clavier: Ctrl+d
    '
    ' déclaration de variable
     
        Dim NewYear As Integer
        Dim YearBefore As Integer
        Dim NewSheetName As String
        Dim SheetYearBefore As String
     
        NewYear = InputBox("Year ?") ' demande de l'année à ajouter
     
        YearBefore = NewYear - 1 'calcule de l'année précédente
     
        'définition des noms de feuilles
        SheetYearBefore = "Volume " & YearBefore
        NewSheetName = "Volume " & NewYear
     
        'Sheets.Add
        'ActiveSheet.Name = NewSheetName
     
        Sheets(SheetYearBefore).Select
        Application.CutCopyMode = False
        Sheets(SheetYearBefore).Copy after:=Sheets(SheetYearBefore)
        ActiveSheet.Name = NewSheetName
     
    End Sub
    mais le souci que j'ai maintenant c'est que je voudrai que le nom des tableaux change aussi car actuellement je suis avec des nom sur ma nouvelle feuille du style " volume2013_usine125" et je voudrai des tableau avec des noms qui change aussi avec la feuille comme "volume2014_usine1"

  11. #11
    Membre habitué Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Points : 182
    Points
    182
    Par défaut
    C'est le même principe, il te suffit de différencier tes variables des tes "textes".
    Je te laisse chercher un peu


    indice : Au lieu de sélectionner l'onglet et d'y faire un changement, tu selectionne la cellule que tu veux et tu y fais un changment.

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    mais la taille de la plage à changer peut varier suivant les années
    et le nom du tableau vas changer dans la nouvelle feuille est allouer de manière plus ou moins aléatoire

    a moins que je me trompe

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    bon, j'ai un peut avancer sur le code. je peut changer le nom des tableaux a la création de la feuille.

    mais maintenant je voudrai ajouter une colonne dans les fichier usine1 / usine 2/ usine 3 ... pour pouvoir mettre les volumes de l'année correspondante, donc recopier ou insérer la formule (que je connait déjàs) dans les cellules de la nouvelle colonne.

    merci part avance de votre aide.

  14. #14
    Membre habitué Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Points : 182
    Points
    182
    Par défaut
    Mets le fichier avec son avancement pour voir plus précisément ce que tu as et ce que tu cherches.

    Pour insérer une formule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("...").Formula = "..."

  15. #15
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    je peut pas mettre de fichier avec les macro donc voici les 2 macro que j'ai crere:

    l'une sur la feuille volume en ajouter dans une case l'année suivante (cacher par le bouton):
    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
    Sub feuille_volume_annee()
    '
    ' feuille_annee Macro
    ' ajouter une feuille de l'année préselectioner
    '
    ' Touche de raccourci du clavier: Ctrl+d
    '
    ' déclaration de variable
        ' Variable générale
        Dim NewYear As Integer
        Dim YearBefore As Integer
        Dim YearAfter As Integer
        Dim NewSheetName As String
        Dim SheetYearBefore As String
     
        'variable nom tableaux
        Dim usine1VolumeNewYear As String
        Dim usine2VolumeNewYear As String
        Dim usine3VolumeNewYear As String
     
        NewYear = Range("B5").Value 'récuperation de l'année suivante
        YearBefore = NewYear - 1 'calcule de l'année précédente
        YearAfter = NewYear + 1 'calcule de l'année suivante
     
     
        'définition des noms de feuilles
        SheetYearBefore = "Volume " & YearBefore
        NewSheetName = "Volume " & NewYear
     
        'définition des noms des tableaux
        usine1VolumeNewYear = "volume_" & NewYear & "_usine1"
        usine2VolumeNewYear = "volume_" & NewYear & "_usine2"
        usine3VolumeNewYear = "volume_" & NewYear & "_usine3"
     
        'copie et redéfinition de la nouvelle feuille
        Sheets(SheetYearBefore).Select 'selection de la feuille de l'année précédente
        Sheets(SheetYearBefore).Copy after:=Sheets(SheetYearBefore) 'copie de celle-ci
        ActiveSheet.Name = NewSheetName 'redéfinition
     
        'changement de l'année suivante sur la feuille crée
        Sheets(NewSheetName).Select 'selection de la feuille de la nouvelle année
        Range("B5").Value = YearAfter 'remplacement par la nouvelle valeur
     
        'changement de nom des tableaux
        Range("E4").Select 'selection d'un cellule du tableau de usine1
        ActiveCell.ListObject.Name = usine1VolumeNewYear ' définition du non du tableau de volume de usine1
     
        Range("G4").Select 'selection d'un cellule du tableau de usine2
        ActiveCell.ListObject.Name = usine2VolumeNewYear ' définition du non du tableau de volume de usine2
     
        Range("K4").Select 'selection d'un cellule du tableau de usine3
        ActiveCell.ListObject.Name = usine3VolumeNewYear ' définition du non du tableau de volume de usine3
     
     
    End Sub
    et l'autre sur le traitement avec le même principe pour l'année suiviante:
    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
    Sub feuille_traitement_annee()
    '
    ' ajouter une feuille de l'année préselectioner
    '
    ' Touche de raccourci du clavier: Ctrl+d
    '
    ' déclaration de variable
     
        ' variable générale
        Dim NewYear As Integer
        Dim YearBefore As Integer
        Dim NewSheetName As String
        Dim SheetYearBefore As String
     
        'variable nom tableaux
        Dim TraitementDRNewYear As String
        Dim TraitementSRNewYear As String
     
        NewYear = Range("F2").Value 'copie de la valeur de l'année suivante
        YearBefore = NewYear - 1 'calcule de l'année précédente
        YearAfter = NewYear + 1 'calcule de l'année suivante
     
     
        'définition des noms de feuilles
        SheetYearBefore = "Traitement " & YearBefore
        NewSheetName = "Traitement " & NewYear
     
        'définition des noms des tableaux
        TraitementDRNewYear = "traitement_" & NewYear & "_DR"
        TraitementSRNewYear = "traitement_" & NewYear & "_SR"
     
        'copie et redéfinition de la nouvelle feuille
        Sheets(SheetYearBefore).Select 'selection de la feuille de l'année précédente
        Sheets(SheetYearBefore).Copy after:=Sheets(SheetYearBefore) 'copie de celle-ci
        ActiveSheet.Name = NewSheetName 'redéfinition
     
        'changement de l'année suivante sur la feuille crée
        Sheets(NewSheetName).Select 'selection de la feuille de la nouvelle année
        Range("F2").Value = YearAfter 'remplacement par la nouvelle valeur
     
        'changement de nom des tableaux
        Range("H5").Select 'selection d'un cellule du tableau de DR
        ActiveCell.ListObject.Name = TraitementDRNewYear ' définition du non du tableau de volume de DR
     
        Range("B5").Select 'selection d'un cellule du tableau de SR
        ActiveCell.ListObject.Name = TraitementSRNewYear ' définition du non du tableau de volume de SR
     
    End Sub

  16. #16
    Membre habitué Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Points : 182
    Points
    182
    Par défaut
    Je suis un peu perdu avec tout ce code et pas de fichier...

    Je te propose le code suivant (rapide et pas optimisé mais tu comprendra le principe) pour créer un nouvel onglet "traitement" selon l'année que tu as renseignée.
    Pour le moment je n'ai créé des données que pour l'année 2014, donc tu ne peux choisir que l'année 2014

    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
    Sub Macro1()
     
        NewYear = InputBox("Veuiller entrer l'année désirée:")
        NewSheetName = "traitement " & NewYear
     
        Sheets("traitement 2013").Select
        Sheets("traitement 2013").Copy After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = NewSheetName
     
        Sheets(NewSheetName).Select
        Cells.Select
        Selection.Replace What:="2013", Replacement:=NewYear, LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
     
    End Sub
    Le fichier si tu veux tester:
    List of products test V2.xlsx

    Si tu as besoin de plus d'info, joins un fichier avec ta macro... sinon c'est just impossible de comprendre ce que tu veux.

  17. #17
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    merci a toi pour ton aide
    j'ai terminer ce que je voulait faire

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

Discussions similaires

  1. Demande d'aide pour création d'un script
    Par arthur270 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/11/2013, 10h48
  2. Demande d'aide pour création d'un script
    Par arthur270 dans le forum Général Python
    Réponses: 4
    Dernier message: 19/10/2013, 16h23
  3. [XL-2007] Aide pour création de macro - débutant total en VBA
    Par Pierre Jean-Pierre dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2013, 10h36
  4. demande d'aide pour création script.ksh
    Par LuckySoft dans le forum Linux
    Réponses: 2
    Dernier message: 26/11/2008, 13h34
  5. developpeur c++ demande aide pour création d'un pieton 3D
    Par fumidu dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 29/05/2006, 17h51

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