Erreur execution 1004 [Résolu]

Messages postés
8
Date d'inscription
jeudi 12 août 2004
Dernière intervention
16 janvier 2009
- - Dernière réponse : chnordiste
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Dernière intervention
16 janvier 2009
- 16 janv. 2009 à 10:30
Bonjour à tous,

Grâce a une macro, je souhaite rechercher la ligne qui correspond à un "test" effectué à une "date" précise pour modifier la colonne C (toujours de cette ligne).
Mais lorsque j'exécute mon programme sous VBA (sous XP), j'ai le message suivant qui s'affiche "Erreur d'éxécution 1004"
La méthode Range _Global a échoué".

Voici un extrait de mon code, Pouvez vous m'aider, ?

Dim test As String
Dim date As String
Dim j As Long

test = "saut en hauteur"
date = "20081206"

 j = 2    
 While Not Range("A" & j) = test   --> ça bloque la...
       j = j + 1
 Wend
 While Not Range("B" & j) = date
       j = j + 1
 Wend

Range("C" & j & "").Select
etc........

Pour info : Il y a un classement par test et par date au début de ma macro....
Par avance merci, merci et encore merci  ....
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
20
Date d'inscription
mercredi 17 décembre 2008
Dernière intervention
13 février 2009
3
Merci
Bonjour,
je pense avoir une solution correcte à te proposer. Il y a surement mieux mais ça marche.


Option Explicit
Dim j As Long
Dim jourJ, test As String

Sub nommacro()

j = 1 'seulement si les valeurs recherchées commencennt à la 2ème ligne(dans activecell.offset, la cellule de référence est (0,0))

test = "saut en hauteur"
jourJ = "20081206"

Range("A1").Select

'teste toutes les cellules des colonnes A et B pour y trouver les correspondances "test" et "jourJ" sur la même ligne
Do While ActiveCell.Offset(j, 0) <> jourJ And ActiveCell.Offset(j, 1) <> test
 'condition qui arrête la boucle dès qu'une cellule de la colonne A est vide et renvoi le message "aucun résultat trouvé"
    If ActiveCell.Offset(j, 0) = "" Then
    GoTo 1000
    Exit Do
    End If
    j = j + 1
Loop
activecell.offset(j,2).select    'remplace ta ligne "Range("C" & j & "").Select"
'tu peux aussi garder l'objet range, mais dans ce cas j devient j+1

 '***suite de ton code pour remplacer la valeur en "C" & j ***


GoTo 2000
1000 MsgBox "aucun résultat trouvé"
2000
End Sub

défaut du code : si une cellule en colonne A est vide alors que ton tableau reprend après, la boucle de recherche s'arrête. Sinon il faut virer la condtion d'arrêt de boucle, mais dans ce cas, si il n'y a aucune correspondance à ta recherche, le code ira jusqu'au bout de la feuille excell... inutilement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 97 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Belag55
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Dernière intervention
4 août 2012
0
Merci
bonjour
premier souci  tu as une variable "date" et ça VBA n'aime pas du tout puisque Date est une fonction de visual basic
renommes la dDate par exemple  pour éviter un conflit
d'autre part ton code est écrit où ? si il est dans un formulaire il faut remplacer
Range("A" & j)
par
sheets("NomDeLaFeuille").Range("A" & j)

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Commenter la réponse de pile_poil
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Dernière intervention
16 janvier 2009
0
Merci
Bonjour pile-poil...
je te remercie beaucoup pour tes remarques et tes conseils...
Suivant tes indications, j'ai modifié le champs "Date" par "Peériode".. comme ça il n'y a plus de quiproquo (on ne sait jamais....).

Par contre en ce qui concerne l'erreur d'exécution 1004, elle est toujours d'actualité.
Mais voici quelques explications  :
Ma macro fonctionne après avoir appuyer sur un bouton...
Il n'y a aucun formulaire.

Si tu le souhaites, je peux t'envoyer un fichier qui sera peut être plus explicite mais il ne passe pas sur c/joint, je suis obligée de l'envoyer directement...
Tiens moi au courant...

Chnordiste

et encore merci  ....
Commenter la réponse de chnordiste
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Dernière intervention
16 janvier 2009
0
Merci
Coucou,

Personne pour m'aider.... SNIFF...
A titre d'information j est appliquer sur un fichier allant des colonnes A à D et des lignes 1 à 30 000.

et encore merci  ....
Commenter la réponse de chnordiste
Messages postés
8
Date d'inscription
jeudi 12 août 2004
Dernière intervention
16 janvier 2009
0
Merci
Un grand merci à Belag 55 et à Pile poil pour leur aide....
Vous m'avez enlever une grosse épine au pied.....

et encore merci  ....
Commenter la réponse de chnordiste

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.