Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/10/2011, 12h24   #1
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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 :
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 ?
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 13h13   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

redonne la définition de l'erreur 1004

A tu essayé avec

Code :
Sheets("Daily").Cells(1, 2).Select
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 14h36   #3
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
Merci de ta réponse mais j'ai essayé ce code, la selection se fait mais elle est vide car si je fais :

Code :
1
2
Cells(3, 2).Select
Selection.Copy
Ma case est vide et si je fais:

Code :
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".
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 14h43   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Je ne comprend pas trop

ta cellule est vide cela devrait être différent?
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h10   #5
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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.
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h14   #6
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Et quand ta macro est terminée ta cellule contient toujours 10 ?
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 15h58   #7
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 16h07   #8
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Là, je suis vraiment désolé, je ne vois pas non plus

Avec quelle version Excel tu travail?
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 16h47   #9
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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...
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2011, 17h03   #10
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Et en reboutant ton PC?
a tout hasard.....
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 09h23   #11
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 09h41   #12
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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 :
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 ?
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 10h03   #13
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
Bonjour,

Tu peux essayer avec

Code :
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.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/10/2011, 14h37   #14
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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 ?
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h49   #15
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
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 :
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.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/10/2011, 16h38   #16
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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 :
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...
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 16h54   #17
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
bonjour
as-tu essayé avec

Code :
If Cells(i, 1).value = "10" Then
tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 17h26   #18
Invité de passage
 
Homme
Étudiant
Inscription : 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 : 2
Points : 2
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 ?
bloutchman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 17h28   #19
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 692
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 692
Points : 1 443
Points : 1 443
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 :
If Workbooks("Classeur1.xls").Worksheets("Données").Cells(i, 1) = 10 Then
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 17h32   #20
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Il doit te manquer un .

Code :
If .Cells(i, 1).Value = "10" Then
Ou en essayant de forcer le type

Code :
If CStr(.Cells(i, 1).Value) = "10" Then
Ou et en supprimant les espaces

Code :
If CStr(Trim(.Cells(i, 1).Value)) = "10" Then

Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h01.


 
 
 
 
Partenaires

Hébergement Web