Erreur execution 1004

Résolu
chnordiste Messages postés 8 Date d'inscription jeudi 12 août 2004 Statut Membre Dernière intervention 16 janvier 2009 - 7 janv. 2009 à 11:16
chnordiste Messages postés 8 Date d'inscription jeudi 12 août 2004 Statut Membre 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  ....

5 réponses

Belag55 Messages postés 20 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 13 février 2009
15 janv. 2009 à 13:49
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.
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
7 janv. 2009 à 11:56
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
0
chnordiste Messages postés 8 Date d'inscription jeudi 12 août 2004 Statut Membre Dernière intervention 16 janvier 2009
7 janv. 2009 à 14:32
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  ....
0
chnordiste Messages postés 8 Date d'inscription jeudi 12 août 2004 Statut Membre Dernière intervention 16 janvier 2009
13 janv. 2009 à 09:53
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  ....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chnordiste Messages postés 8 Date d'inscription jeudi 12 août 2004 Statut Membre Dernière intervention 16 janvier 2009
16 janv. 2009 à 10:30
Un grand merci à Belag 55 et à Pile poil pour leur aide....
Vous m'avez enlever une grosse épine au pied.....

et encore merci  ....
0
Rejoignez-nous