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 :

Créer un nouvel onglet à partir d'une liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 19
    Points
    19
    Par défaut Créer un nouvel onglet à partir d'une liste déroulante
    Bonjour à tous,
    J'ai un petit soucis!!! J'ai créée une liste dans Excel avec la boite à outil de controle (ComboBox), cette liste contient des types de projet, je souhaiterais que selon le type de projet séléctionné, il y ait un nouvel onglet qui s'ouvre qui porte le nom du projet qui aura était saisi en Feuil1.
    Vous avez compris ce que je veux??
    Vous pouvez m'aider???!!!
    Merci d'avance à ceux qui m'apporterons leur aide!
    Bonne journée

    Pour l'instant mon code ressemble à ça, mais ça ne fais qu'ouvrir un nouvel onglet si c'est "Progiciel" qui a été séléctionné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Valider_Click()
    If Sheets("Couverture").ComboBox1.Text = "Progiciel" Then
      Sheets.Add , Worksheets(2)
    End If
    End Sub
    Une autre question, est-il possible, en même temps que l'ouglet s'ouvre, de le remplir automatiquement avec des données qui sont sur une autre feuille Excel nommée "Evaluation risque".
    Desolé ça fais beaucoup en une seule fois!!!!
    Merci encore à ceux qui m'aiderons.
    Bonne journée

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Bonjour Valouche ,

    Pour creer l'onglet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Valider_Click()
    If Sheets("Couverture").ComboBox1.Text <> "" Then 'verifie qu'une valeur est bien selectionnee
      Sheets.Add.Name = Sheets("Couverture").ComboBox1.Text
    End If
    End Sub
    Pour copier les donnees, le principe est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("dest").range("A1:B10").value = sheets("Evaluation risque").range("C1:D10").value
    A adapter a ton cas bien sur

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 19
    Points
    19
    Par défaut
    Merci beaucoup, la partie pour créer l'onglet fonctionne très bien, c'est génial!!!!
    Pour copier les données, à quoi correspond dest?
    Lorsque je test, ça affiche une message d'erreur "L'indice n'appartient pas à la selection", tu sais ce que ça veux dire?
    Merci, t'es vraiment sympa!!!

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Oui bon c'est vrai que pour le coup j'ai pas ete super clair
    "dest" est le nom de la feuille (ou onglet si tu veux) de destination.

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 19
    Points
    19
    Par défaut
    Ok merci!
    ça me met toujours un message d'erreur!!! "Erreur définie par l'application ou par l'objet" mais qu'est ce que ça peut bien vouloir dire???!!!!!!!!
    Un dernier problème, quand on copie les données dans une autre feuille est-ce qu'on peux garder la mise en forme???

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Alors il faudrait que tu copies le code et que tu mettes en evidence la ligne ou il y a l'erreur, l'editeur te la met en jaune si tu fais "debug" au moment de l'erreur (pas sur du nom, j'ai excel en anglais...). Sinon c'est impossible de dire pourquoi il y a cette erreur.


    Pour garder la mise en forme, il y a (au moins) deux possibilites:
    -Ou tu copies les donnees comme je t'ai marque puis tu changes la mise en forme avec une macro ou pas (ou mise en forme puis copie)
    -Ou tu fais un copie colle des donnees

    Ca a peut etre l'air pareil mais au niveau du code pas du tout

    Pour avoir la syntaxe de ces deux trucs (formatage et copier coller), utilise l'enregistreur de macro (bouton rouge):
    -tu le lances une premiere fois puis tu modifies le format d'une ou plusieurs cases, stoppe l'enregistreur,
    -tu le relances une deuxieme fois et tu copies des cellules a la main (copier coller).
    Ensuite tu vas voir dans l'editeur, tu essayes de comprendre ce que veut dire le code qu'a fabrique Excel grace a la touche F1 et a l'execution pas a pas (F8), puis tu reviens poser des questions sur ce que tu auras pas compris

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 19
    Points
    19
    Par défaut
    Alors j'ai fais comme tu m'a dis (très bien dis d'ailleurs!!!) et voila le code qui en est ressorti:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Valider_Click()
    If Sheets("Couverture").ComboBox1.Text <> "" Then
      Sheets.Add.Name = Sheets("Couverture").ComboBox1.Text
    End If
    If Sheets("Couverture").ComboBox1.Text = "Progiciel" Then
        Range("A1:H42").Select
        ActiveWindow.SmallScroll Down:=-39
        Selection.Copy
        Sheets("Progiciel").Select
        ActiveSheet.Paste
    End If
    End Sub
    Mais il me met en message d'erreur comme quoi la méthode Select de la classe Range a échoué. J'ai essayé de mettre ça à la place:
    Sheets("Evaluation risque").Range("A1:H42").Select
    mais il me dis la même chose!!!!

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Select et activate c'est le meilleur moyen d'avoir des problemes , et l'enregistreur de macro en met partout. Heureusement il est toujours possible de s'en passer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Evaluation risque").Range("A1:H42").Copy Destination:=Sheets("Progiciel").Range("A1")
    Remplace A1 par la case que tu veux en haut a gauche de la destination et dis si ca marche.

  9. #9
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 65
    Points : 19
    Points
    19
    Par défaut
    Yes ça marche!!!!!!Merci beaucoup beaucoup beaucoup!!!!!
    Si j'ai de nouveau besoin d'aide je saurais à qui m'adresser!
    Merci encore.
    Passe une très bonne journée!!

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Points : 870
    Points
    870
    Par défaut
    Mais de rien de rien

  11. #11
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Quand on a reçu une réponse qui convient, on clique sur le bouton Résolu en bas de discussion.
    Merci.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. [XL-2003] Créer un planning Gantt à partir d'une liste de taches
    Par babouu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/07/2012, 08h32
  2. Réponses: 1
    Dernier message: 10/10/2008, 23h29
  3. créer des array numéroté à partir d'une liste
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/05/2008, 18h50
  4. Réponses: 19
    Dernier message: 27/11/2007, 23h54
  5. Créer de nouvelles colonnes à partir d'une ligne
    Par julien4 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/10/2007, 12h33

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