MSG BOX ET INPUTBOX

D

David

Guest
Bonjour à vous tous,
Une petite question qui ne devrait pas poser de problèmes aux pros que vous êtes :
ex : Je souhaiterais, après un msgbbox "message de test",vbyesno,"Mon message") ou inputbox (voulez-vous continuer,vbokcancel), la proposition "oui, non, annuler" ou "réessayer, abandonner, annuler" apparaisse en francais et non en anglais.
Qui sait comment ?
Merci.
 
M

Michel_M

Guest
Bonjour Thierry,


Un grand coup de chapeau pour le boulot que tu viens de faire et d'expliquer

Donc mon dim machin as new collection va être remplacé par
set machin= new collection

Comme tu l'écris si bien, sur ce forum on se remet en question et c'est comme cela qu'on apprend. ton topo est enregistré sur mon DD

Encore une fois, un grand Merci

Michel
 
@

@+Thierry

Guest
Bonjour Michel et merci pour le compliment.

Oui d'après ce que j'ai compris de Chip, il faut éviter :
Dim MyCollection As New Collection

pour mettre ceci :
Dim MyCollection As Collection
Set MyCollection = New Collection

(attention il faut quand même le Dim MyCollection As Collection.) voir cette page du site

Sinon j'ai mangé une partie de ma traduction ! "L'objet est généré ..."

Dans ce paragraphe... L'objet est généré à chaque instance de l'appel de la variable objet, la première fois mais les fois suivantes aussi (ce qui n'est pas très optimisé)

Voilà j'ai un "peux" surfer (autant que je peux !! lol)

@+Thierry
 
B

Bernard

Guest
bonjour à tous en ce dimanche ensoleillé

Après le cours de @+Thierry, j'ai été voir ce que disait l'aide VBA dans excel au mot Collection.

Bingo ;-)

Dim MyCollection As New Collection

se trouve dans l'exemple donné !

Alors Je me demande sauf peut être dans le cas de collections énormes si cela à vraiment un intérêt de se préoccuper de mettre new ou de ne pas le mettre en déclaration de variable objet ?

Cordialement

Bernard
 
L

LaurentTBT

Guest
Bonsoir ou bonjour à tous.

Et bien, elle n'était pas si bête que ça, ma question. Et en plus, je m'en tire drôlement bien, car je n'ai jamais utilisé de "New", hi hi. Faudra quand même que je creuse cet aspect.

Sinon, un petit mot pour Thierry:

J'ai coutume de dire que l'on ne domine parfaitement son sujet que lorsque l'on est capable de l'expliquer clairement. Savoir vulgariser est pour moi la marque des grands, alors que beaucoup trouvent cela péjoratif. Et je pense que tu es un maître en la matière, Thierry. Merci.

Laurent.

PS: encore un petit essai:
<SPAN STYLE="color: blue">bleu</SPAN>
et plus haut, le s, c'était pour essayer de mettre des mots barrés. Je retente:
<S>barré?</S>
Après tout, ça marche avec le u, le b et le i, alors pourquoi pas avec le s?
 
@

@+Thierry

Guest
Bonsoir Bernard, re Michel, Laurent (qu'on a pas encore revu), Davis, le Forum.

Oui je sais que l'aide VBA n'indique rien d'autre à ce sujet et que l'exemple donné est donc bien en "Auto-Instancing". De là à dire "Bingo", non !

L'aide VBA est primordiale et, si elle était bien et patiemment analysée par tout le monde... pas mal de posts n'auraient pas lieu d'être dans XLD. Donc je persiste à recommander sa consultation sans modération. F1 is the Key of the VBA's World !

Toutefois l'aide VBA est un peu comme le guide d'une voiture neuve, on a l'essentiel mais pas tout le mode d'emploi pour faire (par exemple) un talon/pointe (lol)... Un exemple tout simple, faite une recherche à "MsgBox" dans l'aide VBA et vous aurez l'exemple suivant :

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Souhaitez-vous continuer?" ' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "Démonstration de MsgBox " ' Définit le titre.
Help = "DEMO.HLP" ' Définit le fichier d'aide.
Ctxt = 1000 ' Définit le contexte de la rubrique.

' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
MyString = "Oui" ' Effectue une action.
Else ' L'utilisateur a choisi Non.
MyString = "Non" ' Effectue une action.
End If

........ çà ne te rapelle rien Bernard dans ce même fil !

Mais où sont passée les déclarations de Variables !! 7 variables as Variant !! alors qu'aucune ne l'est !!! sont pas économes de nos petits PC chez MS (remarquez on le savait !!!)

Bien sûr on peut s'en "contre-ficher" et pour des MsgBox se dire que ce n'est pas grave, aucun souci quand on fait sa petite appli qui tourne dans son coin... Mais là où et je suis content de voir l'implication dans le même sens de tous les Contributeurs et Contributrices d'XLD, c'est qu'ici on essaie de donner des informations complètes et sérieuses. Rares sont les fils où on a laissé passer une information bidon ou erronée, c'est le pire de tout, un Forum de Base de Connaissance Foireuse !! lol

Donc pour en revenir à ce Set d'Objet As New Collection plutôt que de faire donc une "Auto-Instancing", je pense que Chip Pearson est un MVP qui n'a pas volé sa médaille (lol) son site et son travail son autant reconnus que ceux de John Walkenbach.

Mais pour le fun j'ai été récupérer mon moteur de recherche XLD Ce lien n'existe plus avec la base de donnée complète des fils de 2001 à 2003 (soit 63417 lignes)Ce lien n'existe plus et j'ai fait les modifs nécessaires sur la Collection "StringFound" et j'ai fait un timer comme suit :

Debut de Private Sub CmdOKStandard
Dim StartTime As Single
StartTime = Timer

la création de la collection "StringFound.Add" (et d'autres trucs)

MsgBox Timer - StartTime
End Sub

Avec le Set StringFound = New Collection ===> 1,310107 (meilleurs temps)
Avec le Dim StringFound As New Collection ===> 1.920013 (meilleurs temps)

Tests effectué en cherchant "Thierry" dans le sujet sur un vieux PIII 800 512 Ram)

Donc ce n'est pas vraiment significatif vu la quantité de lignes. Mais au moins on aura été jusqu'au bout !! lol

Mais pour moi-même çà me sert à ne pas revenir en arrière sur des anciennes applis mais dorénavant je donnerai la préférence à cette méthode de Chip qui, pour finir dit bien ceci aussi (sorry je ne traduis pas) :

VBA's flexibility may seem useful, but it can also lead to inefficient and hard-to-maintain code. Just because VBA allows you do certain things doesn't mean that you should do them. You should develop good coding habits early, rather than trying to break bad habits later. You'll be glad you did.

Bonne Nuit et bonne semaine à tous et toutes
@+Thierry
 
@

@+Thierry

Guest
Récap et Reflexions sur Espace Mémoire des Set D'Objects et autres Collections

Bonsoir Laurent

Sorry je ne t'avais point vu lors de la rédaction de mon (encore) long post et des tests de Timer sur le Set de Collection.

En tout cas Laurent, je te remercie du compliment, c'est vraiment sympa pour bien commencer la semaine !

@+Thierry

PS j'en ai profité pour changer le sujet pour référencement future !! (bravo pour le grenier au fait Laurent)
 

Discussions similaires