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 :

Problème avec une macro faisant apel à un tableau Excell


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    Par défaut Problème avec une macro faisant apel à un tableau Excell
    Bonjour à tous,
    j'ai un petit soucis!
    Voilà j'ai une macro qui ouvre un onglet selon le type de projet selectionné dans une liste déroulante. Ca donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Valider_Click()
      If Sheets("Couverture").ComboBox1.Text <> "" Then
        Sheets.Add.Name = Sheets("Couverture").Range("C8").Text
        Sheets("Evaluation risque").Range("A1:H50").Copy _
        Destination:=Sheets(Sheets("Couverture").Range("C8").Text).Range("A1")
        Sheets(Sheets("Couverture").Range("nomprojet").Text).Select
      End If
    End Sub
    Et maintenant je voudrais que selon le type de projet, quand je clic sur le bouton, il ne selectionne pas tout le tableau mais qu'il ne selectionne que le cellules que je lui indique dans la feuille nommé "type de projet".
    Avez-vous tout compris?
    Merci à ceux qui m'apporterons leur aide.
    Bonne journée à tous
    Val

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je ne sais pas si ça va répondre à ta question mais si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("type de projet").select
    Range(La cellule que tu veux).select
    ça correspond assez à la question que tu poses telle que tu l'as posée (!?!) Non ?
    A+

  3. #3
    Membre averti
    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
    Par défaut
    Non ça répond pas tellement à ma question ais je te remercie quand même, c'est gentil.
    Bonne journée

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Et si tu précisais ce que tu veux obtenir (sans le chemin pour le faire)
    A+

  5. #5
    Membre averti
    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
    Par défaut
    Ba alors je te resume mon programme et je te dirais après ce que je veux modifier.
    J'ai une liste déroulante dans laquelle il y a différents types de projet(ils sont repertoriés dans le meme classeur Excell dans l'onglet "Types de projets"), et j'ai un bouton, quand tu cliques dessus, un nouvel onglet s'ouvre déjà rempli, le programme copie entierement un tableau présent dans l'onglet "Evaluation risque" dans le nouvel onglet.
    Dans l'onglet "Types de projets" j'ai un petit tableau avec les différents types de projets et les cellules du tableau qui corresponde au type.
    Ce que je veux c'est que quand le nouvel onglet s'ouvre le programme aille voir dans le petit tableau quelle cellule il doit copier et qu'il ne copie que celle indiquées.
    C'est compréhensible??!!

  6. #6
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    Bonjour,
    je veux bien essayer de te répondre, mais j'ai besoin de comprendre.

    le type de projet apparait à quel endroit. C'est à dire comment l'utilisateur sélectionne le type de projet.
    les données correspondantes au projet se trouve en lignes, en colonnes ou les deux.

    merci de ces précisions

  7. #7
    Membre averti
    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
    Par défaut
    excuse moi,avec une liste déroulante (qui fais appel à la feuille "Types de projet" dans laquelle il y a les types de projet)

  8. #8
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    ok merci de ta réponse je m'occupe de ça demain matin

    désolé de ne pas être plus rapide mais je dois quitter tôt ce soir

    Pascale

  9. #9
    Membre averti
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Par défaut
    et voilà une réponse
    la feuille choix est la feuille où se trouve la liste déroulante (en A1)
    Pour la feuille type de projet on trouve le nom des projet en A1 B1 C1 D1 et les éléments correspondant à chaque projet sur les lignes 2 à 7
    Enfin j'ai collé le résultat sur la feuille "nom de projet" à partir de A1
    J'espère avoir été assez claire et surtout avoir répondu à ta question
    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
     Sub Macro2()
    'déclaration des variables
    Dim a As String
    Dim i As Integer
    'sélection de la feuille où se trouve la liste déroulante
        Sheets("choix").Select
    ' la variable "a" est égale au choix de l'utilisateur dans la liste déroulante
        a = Range("A1").Value
    'sélection de la feuille "Type de projet"
        Sheets("Type de projet").Select
    'on fait une boucle pour trouver la valeur "a" dans la feuille type de projet
        For i = 1 To 5
            If a = Cells(1, i).Value Then
    'quand la condition est vrai on copie les cellules qui nous intéresse
                 Range(Cells(1, i), Cells(7, i)).Copy
    'et on les copie où on veut sur la feuille "nom du projet"
                 Sheets("nom du projet").Select
                 Range("A1").Select
                 ActiveSheet.Paste
            End If
        Next i
    End Sub

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour que ça fonctionne mieux, tu peux faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            If a = Cells(1, i).Value Then
                 Range(Cells(1, i), Cells(7, i)).Copy _
                 destination:=Sheets("nom du projet").Range("A1").Paste
            End If
    (je n'ai pas lu la question et "on" insiste pour que je vienne diner )

  11. #11
    Membre averti
    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
    Par défaut
    Merci je vais tester ça et je vous direz si ça marche.
    merci encore
    Bonne journée

  12. #12
    Membre averti
    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
    Par défaut
    J'y arrive pas!!!!

  13. #13
    Membre averti
    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
    Par défaut
    Je suis desolé, desfois je comprend pas bien ce que tu veux savoir je crois!!! Je n'ai pas de message d'erreur, le programe se contente d'ouvrir un nouvel onglet avec rien dedans, il ne copie rien.

  14. #14
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

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

    Chez moi ton code marche tres bien, il ajoute la feuille, copie les valeurs A1 a H42 et la selectionne...

  15. #15
    Membre averti
    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
    Par défaut
    Bonjour tonton fred,
    moi aussi cette partie marche très bien chez moi, c'est l'autre étape qui me donne du fil à retordre!!!

    Voila mon code, après les modifications que j'ai apporté en suivant vos conseil mais j'ai peut être pas tout compris! Je ne suis vraiment pas douée, je suis desolé ça doit vous embêter! Merci de vouloir m'aider, c'est pas simple je l'ai bien compris!!!!

    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
    Private Sub Valider_Click()
    Dim i As Integer
    Sheets("Couverture").Select
      If Sheets("Couverture").ComboBox1.Text <> "" Then
        Sheets.Add.Name = Sheets("Couverture").Range("C8").Text
          If Sheets("Couverture").ComboBox1.Text = "Progiciel" Then
            Sheets("Types de projets").Select
            For i = 1 To 5
              If Sheets("Couverture").ComboBox1.Text = Cells(1, i).Value Then
                Range("C2:C10").Select
                Sheets("Evaluation risque").Range("(Cells(1, i), Cells(7, i)").Copy Destination:=Sheets(Sheets("Couverture").Range("nomprojet").Value).Range("A1")
              End If
              Next i
          End If
      End If
    End Sub

  16. #16
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Pourrais tu s'il te plait mettre ton code en... code ? C'est plus facile a lire

    Concernant ton probleme:
    Je ne suis pas sur de comprendre pas comment sont ordonnees tes donnees (celles specifiques a chaque projet et que tu veux copier).

    Ce que je comprends:
    Tu ajoutes une feuille si elle n'existe pas, avec le nom du projet dans une cellule (a ce propos un inputbox serait peut etre plus indiquee mais on verra plus tard).
    Dans la feuille "Type de projet" tu as sur la ligne 1 le nom des projets (colonne i).
    Tu veux copier les lignes 1 a 7 de la colonne i de la feuille "Evaluation risque" vers la feuille "nom du projet".

    J'ai bon ?

    et ca
    c'est pourquoi ?

  17. #17
    Membre averti
    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
    Par défaut
    tonton fred:
    Mes données sont dans un petit tableau et représenté de cette façon (c'est pas bien fait du tout mais ça vous donnera une idée):
    C D E
    Infogerance Progiciel Logiciel
    A1 A1 A2
    A2 A6 A4
    A10 A7 A20
    A30 A35 A40
    A45
    Ce n'est pas une mauvaise idée de renommer mais je ne sais toujours pas comment m'y prendre!!!!JE suis vraiment nulle!!!!!!!

    ouskel'n'or:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FL2.Range("C2:C10").Select
    ça je crois que ça ne sert pas à grand chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FL3.Range(Cells(1, i), Cells(7, i)).Copy _
                      Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
    et ça c'est qu'il faut que tu enlève un espace, tout vas à la suite comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FL3.Range(Cells(1, i), Cells(7, i)).Copy _Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
    et là, il y a plus d'erreur normalement!!

    ça répond à vos questions?!!!

  18. #18
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Bonjour Valouche,
    Cela fait plusieurs semaines que tu es inscrite, il serait grand temps que tu apprennes a utiliser la balise code... Tu selectionnes ton code avec la souris puis tu clique sur # . Ca rends le code plus lisible, donc les reponses a la fois plus rapides et plus nombreuses (quelqu'un qui ne connait pas deja le probleme ne se fatiguera pas a lire ce que tu ecris, donc tu resteras limitee a des reponses d'ouskel ou moi, ce qui est assez dommage vu le nombre de gens competents qui frequentent ce forum )

    Pour renommer une plage de cellule:
    Tu la selectionnes et en haut a gauche tu remplaces tu mets le nom de ta plage, de preference quelque chose d'explicite (au hasard, le nom du projet auquel cette plage fait reference...)

    Apres il suffit de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Evaluation risque").Range("Nom de la plage").Copy Destination:=Sheets(Sheets("Couverture").Range("nomprojet").Value).Range("A1")
    Instancier les feuilles comme le montre ouskel est aussi un bon moyen de rendre le code encore plus lisible et aussi plus facile a modifier si par exemple "Evaluation risque" devient "Evaluation des risques" tu n'auras besoin de modifier qu'une ligne et pas 10 ou 20.
    Plus d'infos ici

  19. #19
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    FL3.Range(Cells(1, i), Cells(7, i)).Copy _Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
    Ça, ça ne peut pas fonctionner.
    Ou tu mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FL3.Range(Cells(1, i), Cells(7, i)).Copy Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
    sur une seule ligne
    ou tu mets ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FL3.Range(Cells(1, i), Cells(7, i)).Copy _
    Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
    sur deux lignes, ce qui rend le code plus lisible.
    Tu peux utiliser "_" dans ton code, après un espace et avant un saut de ligne pour diviser et rendre plus visible une ligne trop longue.
    Ok ?

  20. #20
    Membre averti
    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
    Par défaut
    Après modifications selon vos conseils:

    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
    Private Sub Valider_Click()
    Dim i As Integer
    Set FL1 = Sheets("Couverture")
    Set FL2 = Sheets("Types de projets")
    Set FL3 = Sheets("Evaluation risque")
    Sheets.Add.Name = FL1.Range("C8").Text
      If FL1.ComboBox1.Text = "Progiciel" Then
        For i = 3 To 10
          If FL1.ComboBox1.Text = Cells(1, i).Value Then
            FL1.Range("Pro").Copy Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
          End If
        Next i
      End If
    Set FL1 = Nothing
    Set FL2 = Nothing
    Set FL3 = Nothing
    End Sub
    (à quoi ça sert de décharger à la fin de l'instance???)
    Le code est plus clair déjà je vous remercie.
    Le but n'est par contre tujours pas atteint, ça ne me copie rien du tout!!Je ne voie pas les erreurs, je suis pas douée et comme j'ai la tête dedans depuis bientôt un mois j'ai du mal!!!!!
    Merci encore de m'aider
    PS: desolé pour les codes je pensais que ça se fesait automatiquement!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2003] problème avec une macro décimale
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 25/11/2010, 10h34
  2. [XL-2007] problème avec une macro TCD
    Par wsanchez dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/06/2009, 21h05
  3. problème avec une macro
    Par jeanjack dans le forum Débuter
    Réponses: 2
    Dernier message: 21/04/2009, 09h32
  4. Problème avec une macro
    Par Nyck0las dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 28/11/2007, 15h04
  5. Problème avec une macro impression
    Par Border_xls dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/11/2007, 15h18

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