Erreur 424
Lemarv
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je bloque sur cette ligne de code:
reponse = Range("D6:D169").value.Find(what:=reponse, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False).Activate
Je cherche à trouver un nombre dans une colonne définie. L'objet n'est pas défini à croire l'intitulé de l'erreur. Voici mon programme complet:
En espérant que vous saurez me sortir de cette panade!
Bonne lecture
Je bloque sur cette ligne de code:
reponse = Range("D6:D169").value.Find(what:=reponse, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False).Activate
Je cherche à trouver un nombre dans une colonne définie. L'objet n'est pas défini à croire l'intitulé de l'erreur. Voici mon programme complet:
Sub recherche() Dim feuille As String, reponse As Integer, secondreponse As Integer Dim Cells As Range feuille = ActiveSheet.Name Sheets("MEMOIRE").Activate MsgBox "Cherchons l'adresse d'une armoire" 'recherche de l'armoire reponse = InputBox("Quelle est le numero de l'armoire à localiser?") 'reponse = Range("D6:D169").value.Find(what:=reponse, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False).Activate 'If nothing 'While MsgBox "numéro hors répertoire, entrez un autre numéro d'armoire svp" 'secondreponse = InputBox("Quelle est le numero de l'armoire à localiser?") 'secondreponse = Range("D6:D169").value.Find(what:=reponse, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False).Activate 'Wend 'End if End Sub
En espérant que vous saurez me sortir de cette panade!
Bonne lecture
A voir également:
- Erreur 424
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
2 réponses
Bonjour,
.find retourne un range qui est un objet.
Donc c'est Set ... = ...find(,,,)
Par exemple :
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
.find retourne un range qui est un objet.
Donc c'est Set ... = ...find(,,,)
Par exemple :
Sub recherche() Dim reponse As Long, c As Range Sheets("MEMOIRE").Activate MsgBox "Cherchons l'adresse d'une armoire" 'recherche de l'armoire Do reponse = InputBox("Quelle est le numero de l'armoire à localiser?") Set c = Range("D6:D169").Find(what:=reponse, LookIn:=xlValues, lookat:=xlPart) Loop Until Not c Is Nothing MsgBox c.Address End Sub
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
la méthode find ne s'applique que sur des range donc il faut que tu enlève le .value et que tu le place après le find (en prenant soins d'enlever le activate qui ne sert à rien.
ensuite pour le if nothing ça va pas marcher (reponse est un integer donc il a forcement une valeur). j'ai essayer un truc mais je pense que tu vas avoir une erreur si il ne trouve rien don je me suis permis de remplace tes integer par des range. pour extraire les valeurs tu n'aura plus qu'à faire réponse.value
enfin il n'y a pas de condition sur le while donc ça va boucler à l'infini ;-)
essaye :
ensuite pour le if nothing ça va pas marcher (reponse est un integer donc il a forcement une valeur). j'ai essayer un truc mais je pense que tu vas avoir une erreur si il ne trouve rien don je me suis permis de remplace tes integer par des range. pour extraire les valeurs tu n'aura plus qu'à faire réponse.value
enfin il n'y a pas de condition sur le while donc ça va boucler à l'infini ;-)
essaye :
Sub recherche() Dim feuille As String, reponse As Range, secondreponse As Range Dim Cells As Range feuille = ActiveSheet.Name Sheets("MEMOIRE").Activate MsgBox "Cherchons l'adresse d'une armoire" 'recherche de l'armoire reponse = InputBox("Quelle est le numero de l'armoire à localiser?") reponse = Range("D6:D169").Find(what:=reponse, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False) 'recuperr la valeur reponse.value If reponse is nothing then While MsgBox "numéro hors répertoire, entrez un autre numéro d'armoire svp" secondreponse = InputBox("Quelle est le numero de l'armoire à localiser?") secondreponse = Range("D6:D169").Find(what:=reponse,LookIn:=xlValues,lookat:=xlPart,searchorder:=xlByRows,searchdirection:=xlNext,MatchCase:=False) Wend End if End Sub
Salut ,
@borntobealive :
lemarv va être bien embêté avec ta macro...
Le While sans condition va le contraindre à une sortie sauvage...
De plus, si reponse est typé as range, la ligne :
De plus :
@lemarv :
quel est l'intérêt de :
@borntobealive :
lemarv va être bien embêté avec ta macro...
Le While sans condition va le contraindre à une sortie sauvage...
De plus, si reponse est typé as range, la ligne :
reponse = InputBox("Quelle est le numero de l'armoire à localiser?")va tilter non?
De plus :
Dim Cells As RangeCells est à éviter car c'est un nom utilisé par VBA. Cel est mieux...
Dim Cel As RangeMais bon tu n'utilises pas cells, ni feuille par ailleurs...
@lemarv :
quel est l'intérêt de :
feuille = ActiveSheet.Name
Sheets("MEMOIRE").Activate
j'avais pas regarder ces déclarations (elles étaient déjà dans son code) vu que j'en avais pas besoin
un
au départ je voulais utiliser ses integer :
mais je pense que ça va renvoyer une erreur si la cellule n'existe pas non ?
Le While était déjà sans condition et comme je ne sais pas ce qu'il veut en faire je ne peux pas vraiment l'inventer
un
reponse.valuearrangera le probleme non ? (sinon il peut declarer une autre variable).
au départ je voulais utiliser ses integer :
reponse = Range("D6:D169").Find(what:=reponse, LookIn:=xlValues, lookat:=xlPart, searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False).value
mais je pense que ça va renvoyer une erreur si la cellule n'existe pas non ?
Le While était déjà sans condition et comme je ne sais pas ce qu'il veut en faire je ne peux pas vraiment l'inventer