Erreur lors d'un "Find" sous Excel 2007

Résolu
blfr -  
 blfr -
Bonjour,
je fais actuellement un générateur d'exercice. cela fonctionne bien mais depuis 1 jour dans le début de mon code il me donne une erreur "Run time Error '1004'" Application defined or object error.

Private Sub userForm_Initialize()
Windows("exo_sc.xlsm").Activate
Set WBexo = Workbooks("exo_sc.xlsm")
Set WSexo_sc = Worksheets("exo_sc")
Set WStext = Worksheets("Text")
Dim langue As String
Dim langued As String

'recherche de la langue utilisé dernierement
With WSexo_sc.Cells
Set macellule = WSexo_sc.Cells.Rows(1).Find(what:="lang")
If Not macellule Is Nothing Then
mycol = macellule.Column
myrow = macellule.row
End If
End With

l'erreur est souligné ca fait deja un moment que je cherche mais je ne trouve pas de solution, si quelqu'un arrive a trouver ce problème merci beaucoup.
A voir également:

17 réponses

blfr
 
merci^^ alors j'ai enlevé cette ligne mais pas de changement parce que le problème vient justement de cette ligne...

le nom de la feuille est correct et celui du fichier donc je vois pas d'où ca peut venir o_O
0
blfr
 
non elle a bien fonctionner sans problème.
0
blfr
 
dans le doute j ai repris le même fichier sur un autre ordinateur vu que mon office me fait des chose bizarre mais l'erreur est la même et même des fois il me sors ce message "The object invoked has disconnected from its clients" ca c est quand j'appuie sur le bouton pour lancer la première fois le userform après il ne me génère plus cette erreur...
0
blfr
 
merci mais qu'entend tu par bonne affectation?
0

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

Posez votre question
blfr
 
je l ai refait avec les bonnes affectation mais pas de changement

Dim WBexo As Workbook
Dim WSexo_sc As Worksheet
Dim WStext As Worksheet
Dim langue As String
Dim langued As String

Windows("exo_sc.xlsm").Activate
Set WBexo = Workbooks("exo_sc.xlsm")
Set WSexo_sc = Worksheets("exo_sc")
Set WStext = Worksheets("Text")


'recherche de la langue utilisé dernierement
Set macellule = WSexo_sc.Cells.Rows(1).Find(what:="lang", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not macellule Is Nothing Then
mycol = macellule.Column
myrow = macellule.row
End If
langue = WSexo_sc.Cells(myrow + 1, mycol)
langued = WSexo_sc.Cells(myrow + 2, mycol)
0
blfr
 
j'ai bien mis tout ca mais l'erreur est toujours a la ligne de recherche lorsque je fais du debug pas a pas
0
blfr
 
ben il arrive même a faire "application defined or object defined error" c' est a se demander si le fichier n'est pas corrompu -.- . pour etre precis j'ouvre mon fichier excel j'appui sur mon icone pour voir apparaitre mon userform et premiere erreur "run-time error '1004'" et juste après "application defined or object defined error"
0
blfr
 
merci pour vos réponses.

lermite22 je pense que ton cas me concerne mais je dois un peu réadapter avec mon code car quand j'arrive sur ma feuille excel j'ai une action qui se fait a chaque fois que je click sur une case (pour actualisé mon userform automatiquement) et je lance ma forme via un bouton donc je pense que lorsque que je click sur le bouton pour lancer le userform je pense qu'il est deja lancé par ma fonction qui se fait a chaque click.. je laisse le message ouvert pour le moment^^
0
blfr
 
okok un grand merci a lermitte22 et gbinforme le problème venait bien du faite qu'a chaque fois je rappelais le userform par plusieurs fonction. ce qui est étrange c'est que le problème est venu par la suite.. peut être qu'il arrive a gérer pendant un moment et suivant le nombre qu'on "invoque" il panique^^. mais merci
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Pourquoi "With WSexo_sc.Cells " alors que tu n'utilises pas la fonction with ?

Set macellule = WSexo_sc.Cells.Find(what:="lang")

me paraitrait suffisant car sinon tu n'as pas besoin de chercher la ligne ?
-1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Et ta macro a déjà fonctionner ?
Parce que je me demande s'il n'y aurrai pas une confusion entre le nom du classeur et le nom de feuille qui sont les même. (C'est de toutes façon à éviter)
A+
-1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

J'ai créé l'environnement pour tester ta macro et elle fonctionne corrrectement.

Par contre si c'est un exercice, ce serait bien de définir " WBexo , WSexo_sc , WStext " avec les bonnes affectations.

Cela me parait aussi plus judicieux de renseigner tous les paramètres omis du find car comme excel conserve les derniers définis par défaut tu risques de n'avoir pas le résultat escompté et ton erreur vient peut-être de cela.
-1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

qu'entend tu par bonne affectation?

Tout simplement :
Dim  WBexo as Workbook
Dim WSexo_sc  as Worksheet
Dim WStext  as Worksheet


Merci de nous tenir au courant de la résolution du problème.
-1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

Encore des noms non définis
Dim macellule As Object
Dim mycol As Integer
Dim myrow As Integer


Essaie de mettre
Option Explicit
en tête de tes feuilles VBA cela évite bien des erreurs de saisie
ou dans menu outils / options / onglet éditeur coches déclaration variables obligatoires.
Set macellule = WSexo_sc.Cells.Rows(1).Find(what:="lang", After:=WSexo_sc.Cells(1, 1), LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)

Cela me parait plus judicieux car si ta cellule active n'est pas en ligne 1 cela ne fonctionnera pas.
-1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

erreur "Run time Error '1004'" toujours celle-ci ?

C'est sûrement dû à des paramètres mal initialisés car je peux te donner ce lien ou ta macro fonctionne
http://www.cijoint.fr/cjlink.php?file=cj200810/cijyCeZXgq.zip
-1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
bonjour

c' est a se demander si le fichier n'est pas corrompu

C'est tout à fait possible et tu peux créer un nouveau classeur puis copier les différents éléments pour voir si le problème est résolu.
-1
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
"The object invoked has disconnected from its clients"
Cette erreur j'ai déjà eu avec un appel de fonction qui travail sur des feuilles mais lorsque la fonction est terminée excel ne retrouvais plus sont point de départ car l' UF avait été fermée entre temps.
J'ai pu rectifier le tir avec une variable supplémentaire et l'appel de la fonction après la fermeture de l'UF.
Exemple:
Dim Action as boolean
Dans l'UF mettre Action à true si la fonction doit être appelée

dans l'appel de l'UF
Userform.show
If Action then
Appeler fonction
end if
C'est peut-être pas la solution mais c'est une piste, ça m'a fait transpirer quand j'ai eu ce problème car il n'est pas possible de deboggué normalement.
A+
-1