Fonction Find + date = Galère

Bonjour à tous,

Je suis désolé, je sais que ce sujet à été traité un bon millier de fois et croyez moi, j'ai lu les 1000 topics et testez toutes les modifications proposées par tout le monde mais... ça ne fonctionne pas pour moi...

Alors voila, j'ai ce fichier:

14logbook-test.xlsm (153.60 Ko)

Sur la page d'accueil, il y a un bouton qui s'appelle recherche.

La recherche par Batch fonctionne très bien mais pour ce qui est de la recherche par date...

Il me dit ne pas trouver la date.

J'ai pourtant bien fait gaffe au format!!

J'ai ralé toutes l'après midi hier et la, mes collègues en ont marre...

Une idée?

Logbook.Activate
                Last_date = Range("A" & Rows.Count).End(xlUp).Row + 1
                Set zone = Range("G2:G" & Last_date)         'définition de la zone de recherche
                Set finder = zone.Cells.Find(what:=DateValue(debut), lookAt:=xlWhole)   'recherche de la recette
                    If finder Is Nothing Then
                        MsgBox ("Aucune production réalisée à cette date" & debut & fin)
                        Exit Sub
                    Else
                        ligne_debut = finder.Row
                        l = ligne_debut
                            Do Until Cells(l, 7) = fin
                                l = l + 1
                                batch2 = Cells(l, 3)
                            Loop
                        ligne_fin = l - 1
                        Range(Cells(ligne_debut, 1), Cells(ligne_fin, 9)).Select
                            Selection.Copy
                    End If

La, vous voyez le DateValue(debut) mais j'ai essayé avec CDate, en mettant rien, j'ai testé avec le "after" au lieu de la définition complexe de "zone", j'ai testé dans la prise d'information de l'UserForm de modifier le format, bref, franchement, j'ai testé une bonne 50aine de combinaisons différentes et rien n'y fait...

Et le plus frustrant c'est que ça va vous prendre 2 secondes... haha

Bref, si l'un d'entre vous a une idée, je ne dis pas non.

Merci d'avance!

Bonjour,

Ça nous prendra deux minutes quand on aura vu le fichier et la macro intégrale mais pour l'instant...

A+

doublon (à supprimer )

Oui, je sais, je disais plus cela pour la blague. Désolé!

C'est que généralement, vous êtes plutôt très bon.

J'avoue ne plus savoir quoi faire.

Bonjour,

Ça nous prendra deux minutes quand on aura vu le fichier et la macro intégrale mais pour l'instant...

A+

Ça nous prendra 32 minutes en tout si tu mets 30 min à joindre le fichier

Je ne comprend pas. J'ai joint le fichier dans mon premier message. Je peux l'ouvrir depuis le site moi. Vous non?

7logbook-test.xlsm (156.24 Ko)

Bon, je le remet ici alors.

Ah, non, on est juste mauvais, et un peu malvoyants sur les bords, on a l'habitude de voir les fichiers en fin de texte, pas dans le texte, du coup je ne l'avais même pas vu, désolé pour tous les messages inutiles, je ne suis pas très bon en VBA mais je vais voir si je trouve quelque chose

Pas de soucis!

Je voulais faire bonne impression avec mon message bien ordonné!

Prend le deuxième, j'en ai profité pour le mettre à jour. =D

doublon, désolé

Bon... j'ai réussi à le faire marcher... Je ne sais pas comment hahaha

Merci de votre aide!

Bonjour,

cette instruction fonctionne :

Set finder = zone.Find(what:=debut, LookAt:=xlWhole)  'recherche de la recette

Bonjour,

le soucis ce n'est pas les yeux, c'est le déroulé des messages !

premier message, une demande.

deuxième message une réponse demandant de joindre le fichier.

et là erreur : vous avez éditez le premier message pour joindre le fichier...

Le mieux quitte à faire des doublons et de poursuivre l'ordre des messages, et alors là on l'aurait tout de suite vu !

pour ma part j'ai testé sur une recherche de date, et j'ai bien eu un nouveau classeur avec un tableau qui reprend les dates cherchées.

Bon j'aurais deux choses à dire :

l'instruction de sortie de la boucle Do Loop :

Do Until Cells(l, 7) = fin

si la date de fin entrée dans le TextBox n'existe pas, alors on tourne, on tourne, on tourne...

un <= serait le bienvenu, non ?

Ensuite je ne connais pas la taille de votre fichier au niveau des lignes, mais sachant que le nombre de ligne des feuilles Excel vont au delà de 32766, il vaut mieux dimensionner la variable l en Long plutôt que Integer.

Si tout ceci peut vous aider à résoudre le problème...

@ bientôt

LouReeD

Alors, je vois des codes un peu partout, je suis entrain de tester ton programme en mode débogueur pour voir un peu comment il fonctionne etc, ne sachant pas trop quelle date tu as rentré, j'ai chercher par date du 1/6/18 au 2/6/18, le soucis c'est que ça passe en dépassement de capacité

Do Until Cells(l, 7) = fin
                                l = l + 1
                                batch2 = Cells(l, 3)
                            Loop

Il faudrait peut-être rajouter quelque chose qui dit que si ta ligne dépasse last_date, tu arrêtes d'incrémenter et tu envoies un message qui dit que tu ne trouves pas

Sinon j'ai regardé

Set finder = zone.Cells.Find(what:=DateValue(debut), lookAt:=xlWhole)   'recherche de la recette

Et ça trouvait bien la date de debut que j'avais entré.

J'ai essayé avec le 1/6/18 en debut, et 4/6/18 en fin, en mode déboguage, et à la ligne

Do Until Cells(l, 7) = fin

quand la date est égale au 4/6/18, ça sort bien du do, du coup je ne vois pas de problème dans ton code en fait...

le soucis ce n'est pas les yeux, c'est le déroulé des messages !

premier message, une demande.

deuxième message une réponse demandant de joindre le fichier.

et là erreur : vous avez éditez le premier message pour joindre le fichier...

Le mieux quitte à faire des doublons et de poursuivre l'ordre des messages, et alors là on l'aurait tout de suite vu !

Je n'ai JAMAIS édité le message pour joindre le fichier. Je l'avais mis dès le départ. Ce n'est pas la première fois que je diffuse sur ce forum et j'ai toujours fait ainsi. Et lorsque j'oublie de le joindre, je m'excuse et m’exécute dans un second message. Je vous demanderais de vérifier vos informations avant ce genre d'accusations. Merci.

Pour ce qui est de vos réponses, MERCI! Vous avez raison pour le "=<" et le "Long" sera une prévention, vous avez raison! Je ne pense pas que l'on aille si loin dans le compteur mais avec eux... On peut être surpris!

Merci AuSecours, tu as raison, j'ai un risque de ne jamais rien trouver...

Mais effectivement, ça ne fonctionnait pas ce matin chez moi et la niquel.

Je ne comprend pas ce qui a débloqué.

Bref, le sujet est résolu!

Merci!

Bonjour Ausecour !

on a l'habitude de voir les fichiers en fin de texte, pas dans le texte,

inscrit le 31 mai, on est le 14 juin... vous allez vite dans la prise d'habitudes !

Et le fait que le fichier se retrouve en fin de message et du à la fenêtre d'édition, où le bouton d'ajout et en dessous et qu'il faut scroller la fenêtre pour voir le bouton, et en plus le bouton permettant d'intégrer le fichier s'affiche qu'à la fin du téléchargement et il n'est pas préciser qu'il suffit de positionner le curseur d'édition à l'endroit où l'on veut intégrer le fichier.

C'est un peu tout cela qui fait que les fichiers sont à la fin, tout comme le fait que le premier ajouté, se retrouve en "fin" de liste dans le message s'il y a plusieurs téléchargements...

Il y a un peu de mise en page à faire dans les réponses, sans pour autant vouloir en faire autant que dhany !

Bonjour à lui en passant, je m'applique à lui mettre la couleur qui lui va bien à chaque fois, mais c'est vrai ça prend du temps !

@ bientôt

LouReeD

Bonjour,

Je n'ai JAMAIS édité le message pour joindre le fichier. Je l'avais mis dès le départ. Ce n'est pas la première fois que je diffuse sur ce forum et j'ai toujours fait ainsi. Et lorsque j'oublie de le joindre, je m'excuse et m’exécute dans un second message. Je vous demanderais de vérifier vos informations avant ce genre d'accusations. Merci.

Excusez moi, mais au vu des 4 messages, difficile de comprendre, car suite à une demande de fichier pour voir le code dans son ensemble il y a comme réponse :

Oui, je sais, je disais plus cela pour la blague. Désolé!

C'est que généralement, vous êtes plutôt très bon.

J'avoue ne plus savoir quoi faire.

Mais bon je ne vais pas polémiquer longtemps là dessus, si ce n'est apporter une précisons : aucune accusation de ma part !

mais avec les habitudes on sait plus ...

https://forum.excel-pratique.com/viewtopic.php?f=2&t=108477&p=642832#p642832

https://forum.excel-pratique.com/viewtopic.php?f=2&t=100324&p=586075#p586075

@ bientôt

LouReeD

@Ausecour,

le soucis c'est que ça passe en dépassement de capacité

Ceci est arrivé car la boucle à tourner car la date de fin n'existe pas, du coup le "l" en Integer a dépasser sa capacité qui est de 32766.

La gestion des lignes sous Excel, si on ne connait pas la taille maximum est à faire en Long.

Pour les colonnes le Integer "suffit" car il n'y a pas plus de 17000 colonnes sur une feuille (je n'ai plus le chiffre entête)

@ bientôt

LouReeD

Rechercher des sujets similaires à "fonction find date galere"