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

  1. #21
    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
    Je veux que les cellules indiquées dans les cellules de la colonne i de la feuille "Type de projets" soit copiées vers "nom du projet".
    Tu veux dire que les cellules contiennent les coordonnees des cellules ? Et les donnees sont ou ?

  2. #22
    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
    Citation Envoyé par tonton fred
    Tu veux dire que les cellules contiennent les coordonnees des cellules ? Et les donnees sont ou ?
    oui exactement les cellules contiennent les coordonnées des cellules qu'il faut copier, et les données à copier sont dans l'onglet "evaluation risque"

    Je te prend la tête à ce point là??!!!

  3. #23
    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
    @ouskel'n'or: respire Text est une propriete valide de range, ca ma surpris mais c'est bon de ce cote la
    Quand au probleme de valouche il n'y a pas d'erreur de programme a proprement parler, simplement il ne fait pas ce qu'il / elle veut en faire, il est pas fini (le programme, pas valouche )

  4. #24
    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
    Je suis une fille!!!!
    qu'est ce qu'il faut que je rejoute pour que ca marche, parce que j'ai beau chercher je trouve pas.

  5. #25
    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
    [MODE ADO BOUTONNEUX]
    Une fille
    [/MODE ADO BOUTONNEUX]
    Bon revenons a nos moutons:
    Comment sont marquees tes coordonnees ? Chaque cellule contient quelque chose du type A1 ou bien A1:C5 ? C'est a dire une cellule = une adresse ou une cellule = une plage de cellule ?

    En tout cas c'est pour le moins original comme facon de faire. Tu sais que tu peux renommer des plages de la meme maniere que tu as appelle une cellule "nomprojet" ? Ce serait peut etre plus simple (tout depends de comment est fait ton fichier bien sur)

  6. #26
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Bon, je vais essayer de me faire pardonner.
    Pour ton code qui ne fonctionne pas, tu ne dis pas s'il génère une erreur, laquelle, sur quelle ligne... Et ça c'est pas bien
    Déjà j'essaierais de simplifier
    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
    Private Sub Valider_Click()
    Dim i As Integer
    Set FL1 = Sheets("Couverture")
    Set FL2 = Sheets("Types de projets")
    Set FL3 = Sheets("Evaluation risque")
    FL1.Select 'tu es sûre de devoir la sélectionner ?
      If FL1.ComboBox1.Text <> "" Then
        Sheets.Add.Name = FL1.Range("C8").Text
          If FL1.ComboBox1.Text = "Progiciel" Then
            FL2.Select ' tu es sûre de .... etc.
              For i = 1 To 5
                If FL1.ComboBox1.Text = Cells(1, i).Value Then
                   FL2.Range("C2:C10").Select 'A quoi te sert cette sélection ?
                   FL3.Range(Cells(1, i), Cells(7, i)).Copy _
                      Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
                End If
              Next i
          End If
      End If
    End Sub
    Ce qui me fait constater que tu avais une erreur sur la ligne en rouge
    Tu corriges et tu nous dis
    A+

    PS - Si tu utilises les instances des feuilles, pense à les déclarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim FL1 as Worksheet
    Dim FL2 as Worksheet
    Dim FL3 as Worksheet
    'Puis à les décharger à la fin de ta procédure
    Set FL1 = Nothing
    '...

  7. #27
    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
    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?!!!

  8. #28
    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,
    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

  9. #29
    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
    Points : 15 543
    Points
    15 543
    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 ?

  10. #30
    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
    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!!

  11. #31
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    à quoi ça sert de décharger à la fin de l'instance
    A décharger la mémoire. Si tu ne le fais pas l'instance reste ouverte, encombre la mémoire et, si tu relances ton programme, dans certains cas d'appel à une autre appli, il te dira que l'application est déjà occupé ou d'autres choses pas gentilles
    Pour ton pb, va dans Excel (pas dans VBA) vas dans Edition -> Atteindre -> et tu tapes "Pro" sans guillemet. Et dis-nous sur quoi tu te retrouves et s'il y a des données.
    A+

  12. #32
    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 pour l'info.
    Quand je tape "Pro" dans Editio->Atteindre il me selectionne les cellules D2àD20 (cellules dans lesquelles il y a la liste des cellules à copier)

  13. #33
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Alors maintenant, dans la même feuille, fais Atteindre "nomprojet"
    Qu'as-tu dans la plage de cellules
    Si tu as quelque chose, est-ce là que ça doit être ?

  14. #34
    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
    "nomprojet" c'est la cellule C8 que j'ai renommé

  15. #35
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Oui, et je repose la question : Et si tu fais Atteindre nomprojet, tu as quoi dans ta cellule ?

  16. #36
    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
    Dans la cellule il y a le nom du projet qui est saisi par l'utilisateur

  17. #37
    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
    Valouche, lorsque je parlais de renommer les plages c'etait justement pour eviter d'avoir la liste de cellules dans des cellules... C'est a dire renommer les cellules de la feuille "Evaluation risque" pour eviter ca:
    C D E
    Infogerance Progiciel Logiciel
    A1 A1 A2
    A2 A6 A4
    A10 A7 A20
    A30 A35 A40
    A45
    Pour renommer une plage continue, utilises clic sur la premiere,MAJ+clic sur la derniere
    Pour une plage discontinue, Clic sur la premiere,ctrl+clic sur la deuxieme,ctrl+clic sur la troisieme...

    Ceci dit, c'est comme ca que moi je ferais, mais il s'agit de ton projet donc libre a toi de faire comme tu preferes

  18. #38
    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
    C'est bon c'est fait, t'as raison ça sera peut être plus simple. Mais je crois que ça va poser des problèmes pour l'étape d'après. On verra, je vais déjà essayer de clore cette étape!

    J'ai compris ce qui allait pas. Le programme ne rentre pas dans la boucle mais je sais pas pourquoi!

    J'arrive carement pas à comprendre pourquoi il ne rentre pas dans la boucle. Quelqu'un a une idée???

  19. #39
    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
    J'ai fait quelques modifications mais ça ne marche toujours pas, maintenant il rentre bien dans le For mais il me met un erreur avec la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FL3.Range(Cells(1, i)).Copy Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
    il me dit:"erreur définie par l'application ou par l'objet"

    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
    Dim a As String
    Set FL1 = Sheets("Couverture")
    Set FL2 = Sheets("Types de projets")
    Set FL3 = Sheets("Evaluation risque")
    Sheets.Add.Name = FL1.Range("C8").Text
    FL2.Select
        For i = 3 To 10
          If FL1.ComboBox1.Text = FL2.Cells(1, i).Value Then
            FL3.Range(Cells(1, i)).Copy Destination:=Sheets(FL1.Range("nomprojet").Value).Range("A1")
          End If
        Next i
    Set FL1 = Nothing
    Set FL2 = Nothing
    Set FL3 = Nothing
    End Sub
    Merci de votre aide

  20. #40
    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
    ca c'est pas bon

    devrait marcher

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 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