Ouvrir boite de dialogue Rechercher Tout

Exceloose

Nouveau membre
Bonjour à toutes et à tous,


Je viens éprouver votre maîtrise de ce magnifique outil qu'est Excel.. :D

**Je cherche en effet le moyen d'ouvrir directement une magnifique boîte de dialogue, via un bouton dans un USF, rechercher tout.

J'ai bien trouvé la boite de recherche (Application.Dialogs(xlDialogFormulaFind).Show) mais ce n'est pas cette boîte que je "recherche".

**De même, je suis desesperemment en quête de deux fonctions date, l'une me permettant d'entrer une date dans le format "25021978" pour qu'elle soit immédiatement convertie en "25/02/1978", de même je cherche une magnifique fonction qui permettrait d'entrer la date du jour dans une cellule lorsqu'on entre une nouvelle ligne (l'utilisateur commence une nouvelle ligne X, colonne A, et automatiquement la date du jour s'inscrit en colonne I ligne X).


Je vous remercie pour votre aide précieuse, qui sera sans nul doute partagée par bien d'autres (merci Google!).

Magnifique!

A bientôt.
 

zeb

Modérateur
Tu viens éprouver notre maîtrise :heink:


■Premier point

Demande à cet idiot de trombone la Listes d'arguments de boîte de dialogue intégrée. Tu n'auras qu'à choisir celle qui te convient, si xlDialogFormulaFind ne te va pas.

■Second point

25021978 n'est pas une date mais un nombre. :o
Proposition : intercepter la saisie avec la méthode Worksheet_Change, et transformer ce nombre en date.

Entrer la date du jour, c'est facile : utiliser la fonction Date.

Détecter que l'on est sur une nouvelle ligne :/ ça, ce n'est pas évident. Il n'y a pas de nouvelle ligne en Excel, une feuille fait toujours 65536 lignes. Proposition : Définir une "nouvelle ligne" comme étant une ligne n'ayant pas de date dans sa colonne N. Toujours avec la même méthode, intercepter la saisie et vérifier que la cellule <Ligne courante, colonne N> est vide. SI c'est le cas, y mettre la date.

Stoo. :o
Alors, ça maîtrise ? :sol:
 

Exceloose

Nouveau membre
Tu viens éprouver notre maîtrise :heink:

C'est une façon de parler, d'être original en somme, je ne cherche à vexer personne, je cherche simplement un peu d'aide..

Merci pour ta reponse cependant:

■Je n'ai pas acces à l'aide d'Excel et donc à la liste des composants de cet imbecile de trombone. A part me faire du bruit, il sert..à rien..

■Pour faire écho à ton argument du second point; en effet ce n'est pas evident, c'est la raison pour laquelle je fais appel à une âme charitable qui viendra me sortir de ce mauvais pas car tu l'auras compris, je ne suis pas vraiment du genre doué en Excel.. :pt1cable:
Et puis je suis sûr que le petit bout de code qui va bien servira à bien d'autres qui se sont posés la même question que moi (et pas forcement avec une date..)

Je te/vous remercie pour votre aide! :merci:
 

zeb

Modérateur
J'ai bien compris ton état d'esprit. :
Ton style est agréable. J'ai d'ailleurs joué le jeu ;)

Alors pour ce qui concerne l'aide en ligne : C'est écrit là; en rouge

Installe-le. C'est indispensable. Ce site ne peut pas être le remplacement de l'aide en ligne, quelque qu'elle soit.

la méthode Worksheet_Change ne fait pas ton bonheur ?
 

Exceloose

Nouveau membre
En effet, j'avais noté le bon esprit de ta réponse mais je préférais lever tout sous-entendu.

S'agissant de l'aide en ligne, je ne suis malheureusement pas en mesure d'installer le/les composants, pour des raisons de restrictions d'accès et de sécurité.

Pour la magnifique méthode Worksheet_Change, il semble qu'elle réponde à mes besoins à première vue, cependant je ne vois pas précisément comment la mettre en oeuvre en pratique..

Et oui, ça ne maîtrise pas tant que ça mdr.. ;)
 

zeb

Modérateur
Concernant le fichier d'aide, c'est inadmisible !
Le commenditaire de ton travail doit te donner les moyens nécessaires. S'i n'est pas d'accord, dis-lui que c'est zeb qui l'a dit :o

Bon, sinon. Voici le prototype de cette magnifique fonction :
[fixed]Sub Worksheet_Change(ByVal Target As Range)[/fixed]
Tu remarques le paramètre Range. C'est la cellule qui vient d'être changée.

Entraîne-toi avec ce code :
Code:
Sub Worksheet_Change(ByVal Target As Range)
   MsgBox Target.Address & " (" & Target.Column & " x " & Target.Row &")"
End Sub
(Si les popups intempestifs t'agacent, utilise DEBUG.PRINT et la vue Exécution [CTRL+G] au lieu de MsgBox)

A toi maintenant de trouver comment l'utiliser judicieusement.
Par exemple :

Si la colonne de Target est justement la colonne où il faut taper des dates, transformer la saisie en date !
Utilise Mid pour découper ton nombre en jj mm et aaaa ;)
Pense à mettre un drapeau pour dire à Excel de faire le traitement quand on saisit 25021978 mais pas quand tu le transformes en 25/02/1978.

Si tu ne comprends rien à mon histoire de drapeau, essaie ce bout de code sur une feuille à part :
Code:
Sub Worksheet_Change(ByVal Target As Range)
     Target.Value = ">" & Target.Text & "<"
     MsgBox "Une fois ça va, après, ça énerve." & Chr(13) & _
            "Tip: [CTRL+Pause] pour arrêter les macros"
End Sub
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 057
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut