Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Cells FInd erreur [ Langages dérivés / VBA ] (Clashme)

lundi 9 juin 2008 à 14:30:26 | Cells FInd erreur

Clashme

Bonjour,

tout le monde !!! c'est encore moi !! :)))
voilà j'ai fait une petite macro pour excel dans un fichier "light"
et ensuite la réintroduire dans le fichier de base ( plus lourd )

voilà mon petit probleme : dans mon code j'ai une petite fonction quie me permet de chercher une valeur par rapport à
à une zone de références ZR ( ZR qui est en commun dans mes 2 feuilles excel )
mais il peut arrivé dans certaine circonstances que mon ZR soit "vide"
ou que la valeur rechercher ne soit pas trouvé
dans ce cas là ma macro plante
je voudrais trouvé un moyen sous system de controle d'éviter ces erreurs
pouvez vous m'aider !!

merciiiiiii

voici mon code


 <code>ZR = Worksheets("Charges techniciens").Cells(I, 11).Value
ZR = Left(zr3, 2) ' permet de récupérer les 2 premiers caractére d'une cellule

'recherche designation Tache
Windows("Données .xls").Activate
Worksheets("Feuill1").Activate
Cells.Find(what:=ZR, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
designtache = ActiveCell.Offset(0, 1).Value
Windows("Suivil.xls").Activate
Worksheets("Feuill1").Cells(I, 22).Value = designtache</code>



j'ai ensuite essayé de réglé mon probleme avec un found en booléen

<code>Found = Cells.Find(what:=zr2, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
Do While Found = False
GoTo Suivant 'Saute ma recherche avec ZR2
Loop</code>
cela fonctionne quand mon find est TRUE
et lorque mon code est false j'ai une erreur 91

donc j'ai fini par trouvé ce fameu On Error GoTo

<code>On Error GoTo continue

*

*code

*



continue:

If Err.Number = 91 Then

GoTo Saute

End If </code>

mais celle ci me fait une erreur '-2147352565(800200b)'

je ne s'ais plus quoi faire

j'attend avec impatience votre aide
merci



lundi 9 juin 2008 à 14:43:18 | Re : Cells FInd erreur

mortalino

Membre Club
salut,

dim rResult as range

Set rResult = Cells.Find(ZR, ActiveCell)

If Not rResult is nothing then
  designtache = rResult.Offset(0, 1).Value
WorkBooks("Suivil.xls").Worksheets("Feuill1").Cells(I, 22).Value = designtache
end if

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

lundi 9 juin 2008 à 15:03:37 | Re : Cells FInd erreur

Clashme

en effet sa marche!

pourtant j'avais aussi essayé cette technique
avec le range
mon erreur devais venir de mon
designtache = rResult.ActiveCell.Offset(0, 1).Value en trop

j'étais si proche du but ^^

hmm une petite question a propos du cells.find que tu as changé
ma formule cells.find qui étais un peu plus longue que la tienne
cella ne change rien ?
par exemple niveau rapidité vu que ma macro est assez longue jai remarqué que les cells.find etait "gourmand"





lundi 9 juin 2008 à 15:06:47 | Re : Cells FInd erreur

mortalino

Membre Club
Ca ne change rien, si tu n'indiques pas les paramètres comme je l'ai fait, VB prends ceux par défaut.
Ce n'est qu'une question de lisibilité.

Concernant la fonction Find, elle peut-être longue suivant le nombre de données recherchées (et suivant le nombres de valeurs dans ta feuille Excel) mais c'est la méthode la plus rapide (plus rapide que d'imbriquer des If et for to Next)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

lundi 9 juin 2008 à 16:59:45 | Re : Cells FInd erreur

Clashme

merci mortalino
juste un petit probleme dans mon exemple ci dessus mon ZR permet de récupéré les premier caractére le plus souvent les "initiales" de l'utilisateur pour ensuite grace a la fonction cellsfind récupéré le nom entier de l'utisateur et la placer dans une autre cellule.

si mon ZR récupére correctement les valeurs tout va bien
si mon ZR est vide le lui impose la valeur ND ( non défini )
mais si l'utilisateur ne rentre pas correctement ses initiales suivit de sont commentaire par exemple " en construction" au lieu de "RN - en construction"
ma fonctions cells find va prendre le "en" de "en construction"
ma recherche va étre donc érroné et arrété ma macro

alors si quelqu'un à un solution pour contourné le probleme
je suis là :)

encore merci

lundi 9 juin 2008 à 17:04:20 | Re : Cells FInd erreur

mortalino

Membre Club
oui, il y a une solution : apprends aux utilisateurs à bien saisir
Peut-être stocker dans une feuille les initiales potentielles; et tu fais une vérification avant de lancer la fonction Find

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA

mardi 10 juin 2008 à 09:28:08 | Re : Cells FInd erreur

Clashme

oui en effet donc mon idée de début avec mon found en bouléen pourrais étre utile...si elle fonctionne bien sur
jai bien une feuille avec dans ma colonne A les initiail et la colonne B les nom en entier
Found = Cells.Find(what:=zr2, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
Do While Found = False
GoTo Suivant 'Saute ma recherche avec ZR2
Loop


mardi 10 juin 2008 à 11:00:08 | Re : Cells FInd erreur

Clashme

petit UP dsl xD

mardi 10 juin 2008 à 13:00:47 | Re : Cells FInd erreur

MPi

Salut Mortalino,
C'est rare..., mais je te reprendrai concernant la fonction Find...

En fait, Find n'a pas vraiment de propriété par défaut. Il est toujours préférable de spécifier les paramètres importants.

Je m'explique
Voici un petit bout de code qui recherche le mot "allo" (qui est présent) dans la colonne A

    Dim Recherche As Range, Valeur As String
   
    Valeur = "allo"
   
    Set Recherche = Columns("A").Find(Valeur)
    If Not Recherche Is Nothing Then
        MsgBox "Trouvé en: " & Recherche.Address
    Else
        MsgBox "Non trouvé"
    End If

En principe, si le mot allo est bien là, la fonction retourne l'adresse.
Maintenant, on essaie en enlevant le "o" de allo .... Valeur = "all"
On roule à nouveau la macro
Si l'adresse est trouvée, on va dans Excel et on utilise Ctrl-F en cochant la case "Cellule entière". Comme le mot n'est pas trouvé, on ferme la fenêtre et on retourne dans le code de la macro.
Ce paramètre Cellule entière est conservé en mémoire...et la cellule n'est pas trouvée lorsqu'on roule à nouveau la macro...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI


mardi 10 juin 2008 à 16:16:12 | Re : Cells FInd erreur

Clashme

Rebonjour :)
merci pour votre aide !Mpi je n'est pas besoin de messge box ou autre
enfaite je vous explique mon probleme

dans mon code jai 5 finds a faire pour trouver des valeurs qui sont lié par un numéro ( d'ou mon ZR qui est ma références )
puis ensuite je jou avec les offsets.

le code que ma gentillement proposé mortalino permet de faire un controle sur la cellule trouvé
si mon rresult est vide je fait rien sinon instruction..

mais je ne trouve pas le moyen de faire un controle sur mon fameu ZR
mon traitement se réalise sur 2000 lignes à peu prés et il peut arriver que ma valeur ZR ne soit pas trouvé et plante
ce qui est embétant lorqu il reste plus de 1000 ligne à traité!
 pouvais m'eclairé
je vous remet mon code
donc j'essaye toujours de manupulé pas recherche par un false  /true enfin si vous avez une autre technique pas de probleme :)
'recherche
Dim coordinateur As String
Dim rResult As Range
Dim Found As Boolean

      
ZR = Worksheets("Resultat").Cells(I, 11).Value


'recherche designation Tache
Windows("Données .xls").Activate
Worksheets("Feuill1").Activate
Found = Cells.Find(zr3, ActiveCell)
Set rResult = Cells.Find(zr3, ActiveCell)
Do While Found = False
GoTo Continue 'Saute ma recherche avec ZR2
Loop
If Not rResult Is Nothing Then
      coordinateur = rResult.Offset(0, 1).Value
       Windows("Suivi_des_Ofs.xls").Activate
       Worksheets("Resultat").Cells(I, 25).Value = coordinateur
       End If





1 2

Cette discussion est classé dans : erreur, cells, find, activate, zr


Répondre à ce message

Sujets en rapport avec ce message

TROUVER L'ERREUR [ par yoarf ] Le message d'erreur suivant s'affiche: trop peu de paramètres 5 attendus:dim db as Databasedb = OpenDatabase("G:\Qualite\dossier yoann\stage\projet.md MAIS OU EST L'ERREUR ? [ par yoarf ] Suite à ceci il me mets erreur de syntaxe:db.Execute ("INSERT INTO T_ACTIONS (NumeroRapport,CodeContrat,CodeTypeRapport,N° d'action,Désignaion d'actio erreur de compilation [ par houpel ] Bonjour à touslorsque j'écris ca: For n = 1 To r.Rows.Count If Cells(1, 2) = Cells(2, 1) Then Cells(2, 2) = X End Ifil me met erreur de compilat VBA - erreur d'exécution 9 [ par nobilis ] Bonjour,J'ai créé une macro excel qui me permettait de reprendre les informations (nom du sujet, journaliste et technicien) d'un tableau principal pou Recordset FIND et FILTER [ par ricomiracle ] Bonjour, J'ai une erreur qui se produit lorsque les méthodes ou   des objets recordset ne trouve pas d'enregistrement correspondant aux critères. Ca erreur ... [ par ryuoh ] Bonjour J'ai ce prog :Private Sub BTOK_Click()If r1 = True Then Cells(15, 6) = Cells(15, 6) + 1   Cells(14, 6) = Cells(14, 6) + 1    r1 = False    r2 Probleme avec Ado et Datagrid.... [ par imothepe_33 ] Salut les boss..G un bleme tout bete;c le suivant: j'utilise la fonction 'find' de ADO pour faire une recherche sur des nom: Rs.Find "[Nom]=" &nom,,.. Erreur 2042 #N/A [ par jul00 ] salut a tous moi mon probleme c que j'essaie de remplasser dans un tableau excel en vbxls les valeurs toutes moche #N/A par des vide mais lors se qu'i cherche donnée ds une plage de donnée excel [ par petitmanu ] Boujour à tousje voudrais savoir s'il est possible de chercher une donnée dans une plage de donnée excel sans utiliser de boucle. En effet je dois su outlook et find : erreur inconnue [ par Jomba ] Salut à tous,   j'ai une application en .net2003 qui utilise le modèle d'objet Outlook pour créer des contacts et des listes de distribution. chacun d


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.