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 de selection/copy de case [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Problème de selection/copy de case
    Bonjour,

    Je cherche à développer une macro mais je me trouve confronté à un problème que je n'avais jamais vu. J'essaie de sélectionner une case dans mon fichier Excel grâce à ma macro mais j'obtiens l'erreur '1004'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Windows("Fichier.xls").Activate
            Sheets("Daily").Activate
            Sheets("Daily").Select
            Cells(1, 2).Select    'j'ai l'erreur à ce niveau là.
    Je ne comprends pas car quand je mais ce code sur un autre fichier, il marche correctement.

    Est-ce que quelqu'un pourrait m'aider svp ?

  2. #2
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonjour

    redonne la définition de l'erreur 1004

    A tu essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Daily").Cells(1, 2).Select

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse mais j'ai essayé ce code, la selection se fait mais elle est vide car si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells(3, 2).Select
    Selection.Copy
    Ma case est vide et si je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    g=Cells(1, 2)
    msgbox g
    Je n'ai rien dans ma msgbox...

    Par contre je n'est plus l'erreur "run time error '1004' , select method of range class failed".

  4. #4
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Je ne comprend pas trop

    ta cellule est vide cela devrait être différent?

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    la cellule Cells(1, 2) contient une valeur mais lorsque je lance ma macro et que je fais mes différents tests c'est comme si ma cellule était vide alors qu'à la base elle contient bien une valeur. Si je copie/colle ma case, qui contient la valeur "10" par example, grâce à ma macro, je n'ai aucune valeur qui apparait lors de mon collage... C'est ça que je ne comprends pas.

  6. #6
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Et quand ta macro est terminée ta cellule contient toujours 10 ?

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Ouai la case initiale contient toujours 10 mais la case de destination où j'ai copié la valeur ne contient aucune valeur. C'est vraiment bizarre. Je me demande si ce n'est pas une configuration du fichier excel qui génère ce problème

  8. #8
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Là, je suis vraiment désolé, je ne vois pas non plus

    Avec quelle version Excel tu travail?

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Je travaille sous Excel 2003. J'avais déjà rencontrer ce problème une fois. Et c'est très étrange parce que si j'enregistre la macro avec l'enregistreur de macro et que je la lance, ça copie/colle les cases sans problème. Mais si je copie le code de cette macro enregistrée dans un bouton par exemple, ça ne marche plus.
    C'est vraiment étrange...

  10. #10
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Et en reboutant ton PC?
    a tout hasard.....

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    non ca ne change rien... C'est vraiment une erreur bizarre... je vais poster un nouveau topic sur le forum voir si quelqu'un a déjà eu ce problème

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Problème très étrange sur VBA
    Bonjour,

    Je travaille sur une macro qui doit copier des cellules d'un fichier dans un autre mais il n'arrive pas à selectionner ma case, il met l'erreur '1004'. Si je mets simplement g=cells(1,2) et msgbox g , j'ai aucune valeur qui ne s'affiche dans ma msgbox et pourtant il y en a bien une... J'ai fait plusieurs tests, avec différents activate, une façon de selectionner différente mais rien n'a marché, au pire j'ai eu l'erreur '1004' qui a disparu mais quand je copiais la case, celle-ci était considéré comme une case vide.

    Voilà un petit bout du code pour montrer l'erreur:

    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
    Windows(Fichier).Activate
    Sheets("Daily").Select
    Sheets("Daily").Cells(i, 2).Select
     
    For i = 2 To 7
    Cells(i, 2).Select 'l'erreur apparait ici
    Selection.Copy
     
    g = Cells(i, 2) 'si je supprime la selection et la copie de la case et que je laisse cette partie je n'ai aucune valeur dans ma msgbox !
    MsgBox g
     
    Windows(Fichier1).Activate
    Sheets("Daily").Select
     
    Cells(i + 5, 2).Select
    Selection.PasteSpecial Paste:=xlPasteValues
     
    Next
    Est-ce que quelqu'un pourrait m'aider svp ?

  13. #13
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Tu peux essayer avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Windows(Fichier).Activate
    With Sheets("Daily")
    For i = 2 To 7
        .Cells(i, 2).Copy Destination:=.Cells(i + 6, 2)
    Next
    End With
    Cordialement.

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Merci,

    Ce code marche mais par contre je ne sais pas comment je peux l'utiliser pour copier des données dans un autre classeur. Mon but est de copier des donnée sous une certaine condition, de changer de classeur puis de les coller dans le nouveau classeur. Comment est que je peux faire ça ?

  15. #15
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Voici un exemple de copie avec 2 classeurs ouverts.

    Copie de la plage B2:B7 de la feuille Daily du classeur 1 dans la plage B7:B12 de la Feuil1 du classeur2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Workbooks("Classeur1.xlsm").Worksheets("Daily")
    For i = 2 To 7
        .Cells(i, 2).Copy Destination:=Workbooks("Classeur2.xlsm").Worksheets("Feuil1").Cells(i + 5, 2)
    Next
    End With
    Cordialement.

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    ok parfait pour le copier/coller. Merci !
    Par contre si j'utilise une fonction " if ", la valeur de la case n'est pas prise en compte, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            For i = 2 To 7
            If Cells(i, 1) = 10 Then
                    .Rows(i).Copy Destination:=Workbooks("Réconciliation daily.xls").Worksheets("Données").Rows(i)
            End If
            Next
            End With
    Ma case vaut 10 mais elle n'est pas copié et je ne comprends pas pourquoi...

  17. #17
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    bonjour
    as-tu essayé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Cells(i, 1).value = "10" Then
    tu dis

  18. #18
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2011
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    j'ai essayé mais ça ne change rien, j'ai l'impression que c'est les données que je copie qui ont un problèmes. En fait au départ elles étaient en CSV puis je les ai converti en excel. est-ce que ça peut jouer ?

  19. #19
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Lorsque tu travailles avec plusieurs classeurs ou feuilles, prends soin de préciser à quel classeur ou feuille tu fais référence quand tu écris ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Workbooks("Classeur1.xls").Worksheets("Données").Cells(i, 1) = 10 Then

  20. #20
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Il doit te manquer un .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If .Cells(i, 1).Value = "10" Then
    Ou en essayant de forcer le type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CStr(.Cells(i, 1).Value) = "10" Then
    Ou et en supprimant les espaces

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CStr(Trim(.Cells(i, 1).Value)) = "10" Then

    Tu dis

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

Discussions similaires

  1. Problème de select case
    Par Z3phur dans le forum SQL
    Réponses: 3
    Dernier message: 13/12/2007, 10h31
  2. [Débutant] Problème avec select case
    Par feynman dans le forum Fortran
    Réponses: 2
    Dernier message: 11/09/2007, 15h35
  3. Problème avec select case
    Par juliopony dans le forum Fortran
    Réponses: 4
    Dernier message: 14/06/2007, 20h57
  4. Problème avec Select case !
    Par kaiser59 dans le forum ASP
    Réponses: 4
    Dernier message: 27/05/2007, 12h55
  5. [ASP3] problème de select case
    Par beegees dans le forum ASP
    Réponses: 13
    Dernier message: 03/02/2006, 10h46

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