Erreur 1004 késako ??

  • Initiateur de la discussion Creepy
  • Date de début
C

Creepy

Guest
Bonjour le forum,

Voila j'ai développé ma base de données Excel sur Excel XP. Tout marche impeccable !!

Par contre je viens de ramener le fichier au boulot, et nous sommes en Excel 97 et j'ai un beau message d'erreur :

Erreur 1004 : impossible de lire la propriété FIND de la classe Range

et ce message apparait sur la ligne de code :

Set C = .Find(Cherche, LookIn:=xlValues) <- ICI
If Not C Is Nothing Then
FirstAddress = C.Address
Do

Pkoa ?

Merci

Creepy
 
@

@+Thierry

Guest
Salut Creepy, le Forum

Il ne faut jamais être avare de renseignements quand on a un bug, c'est parfois à cause d'une variable ("cherche") ou bien de la syntax de la ligne du dessus... (Par exemple with WorkSheets("x".Range("A1:AXXX"))

A ma connaissance XL 97 accepte tout à fait cette macro : (prise dans les exemples de l'aide)

Sub Test ()
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Interior.Pattern = xlPatternGray50
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Sub

Fait le test (ici donc on cherche un 2...) car je n'ai plus de XL 97 à disposition

Bon courage
@+Thierry
 
C

Creepy

Guest
Voic plus de code des fois que ...


Dim Cherche As String
Dim L As Integer
Dim Maplage As Range
Dim FirstAddress As String
Dim C As Object
Cherche = Feuil1.Clientbox.Value
L = Sheets("BdeD").Range("A2").End(xlDown).Row
Set Maplage = Sheets("BdeD").Range("A2:N" & L)
With Maplage
Set C = .Find(Cherche, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> FirstAddress
End If
End With
With Feuil3
.Range("A" & NomLBindex).Value = ""
.Range("B" & NomLBindex).Value = ""
.Range("C" & NomLBindex).Value = ""

A+

Creepy
 
@

@+Thierry

Guest
re Creepy, bonjour DJN90, le Forum

Merci DJN90 pour le test.

Euh oui Creepy, j'ai arrangé cette macro pour la tester n'importe où...

Chez moi sous XL 2k no souci....

Option Explicit

Sub TestCreepy()
Dim Cherche As String
Dim L As Integer
Dim Maplage As Range
Dim FirstAddress As String
Dim C As Object
Cherche = "Toto"
L = Sheets(1).Range("A2").End(xlDown).Row
Set Maplage = Sheets(1).Range("A2:N" & L)
With Maplage
Set C = .Find(Cherche, LookIn:=xlValues)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
C.Interior.Pattern = xlPatternGray50
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> FirstAddress
End If
End With
End Sub

Par contre si tu as copié ton code tel quel... Moi je déclenche une action si "Cherche" est trouvé... (C.Interior.Pattern = xlPatternGray50 ) mais toi tu fais quoi ?

Enfin çà c'est pas grave si tu fais tourner cette macro, faudrait voir si elle tourne même sur un classeur vierge où to auras quelques données en colonne "A"...

Car d'ici je ne peux tester sous 97...

@+Thierry
 
@

@+Thierry

Guest
Bonjour Creepy, Hello le Forum


Donc tu confirmes que la macro "TestCreepy" ci-dessus fonctionne bien sous Excel 97.

Il ne reste plus qu'à trouver le bug alors... Ce qui me chiffonnait dans ton code c'est cette ligne :

Cherche = Feuil1.Clientbox.Value... (sans test si ClientBox était vide)

En partant du principe que "Clientbox" serait une TextBox (?) j'ai préparé un fichier test ... Et même si la TextBox est vide... Celà ne retourne pas d'erreur. Donc çà ne vient pas de là...

Je ne sais quoi te dire de plus pour l'instant test le fichier ci-joint et tiens nous au courant.

Bonne fin de matinée.
@+Thierry

PS tu remarqueras que j'ai aussi nommée la feuille "GdeB"...
 

Pièces jointes

  • TestCreepy.zip
    12 KB · Affichages: 27
C

Creepy

Guest
Re all,

Tout d'abord merci @+Thierry de te pencher sur ce bug bizarre avec moi.

Alors ton petit exemple ne fonctionne pas sur mon PC de bureau, ni sur celui de ma collegue aussi en Excel 97, par contre il marche sur l'autre qui a office 2000 !!

J'ai comme message d'erreur : erreur 1004, impossible de définir la propriété pattern de la classe interior.

J'ai donc mis 1 apostrophe devant cette ligne : Cells.Interior.Pattern = xlNone.

J'ai alors le même message d'erreur que dans mon application !!

++

Creepy (Decidement je comprends rien là !! lol)
 
@

@+Thierry

Guest
Re Creepy, le Forum

pour Cells.Interior.Pattern = xlNone ce n'est pas important vu que c'est juste pour remettre les cellules à vierge avant...

Pour le reste, je ne pensais pas qu'XL 97 se trouverait bloqué avec cette procédure...

Deux uniques solutions à mon avis :

1) Tu vas voir ton boss avec ta collègue et vous lui dites que vous ne pouvez plus travailler avec des outils préhistoriques ! (lol)

2) Sous ton PC en 97 tu lances l'enregistreur de macro en mode enregistrement et tu fais une "recherche", puis aussi "cherche suivant", puis aussi "remplacer"... et tu post le code... Dans la foulée, quand tu sera devant le module ainsi enregistré... tu sélectionnes le mot .find et tu fais F1... tu copies aussi le code que tu trouveras dans l'exemple de l'aide de XL97...

Voilà, bon courage... surtout si tu optes pour la soluce 1 !!!!

Bon aprèm
@+Thierry
 

Discussions similaires

Réponses
12
Affichages
580
Réponses
2
Affichages
785
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 329
Messages
2 087 333
Membres
103 519
dernier inscrit
Thomas_grc11