Excel Downloads
Forum

Précédent   Excel Downloads Forums > Accueil > Le salon de XLD


Réponse
 
LinkBack Outils de la discussion
Vieux 23/11/2005, 16h28   #1 (permalink)
XLDnaute Occasionel
 
Avatar de laurent45
 
Date d'inscription: avril 2005
Localisation: Ouzouer-le-Marché
Version Excel : Excel 2003 (PC)
Messages: 198
Envoyer un message via MSN à laurent45 Envoyer un message via Skype™ à laurent45
Par défaut Test avant soumission ;)

Bonjour le Forum,

Je ne sais pas si j'ai choisi le bon Forum(Excel ou le Salon), mais je voulais vous proposer de tester mon Appli avant de la soumettre.

Déjà, cela est-il possible ?

Si oui, comment faire ?

J'en ai fait un Autoextractible, pour qu'il soit dézippé dans au bon endroit, pour un bon fonctionnement. Et en plus, il fait 5.27Mo :whistle: . On est loin des 50Ko... :lol:

J'ai juste un petit problème... Certaine fois, à la fermeture, il me plante Excel97. Oui, je sais . J'entends déjà _Thierry (et d'autre du même avis) qui doit grogner. Mais tant que Microsoft ne proposera pas des Mise à jour à moindre prix, comme beaucoup d'autre le font, plutôt que racheter une version complète à prix ...

Enfin, le propos n'était pas là...

Merci de vos réponses.

EDITION : Les modif proposées par Pascal, Hervé et Jam sont mis en place
Retrouvez mon fichier ici

Message édité par: laurent45, à: 24/11/2005 10:23
__________________
Laurent



laurent45 est déconnecté   Réponse avec citation
ANNONCES
Vieux 23/11/2005, 17h29   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de Hervé
 
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 450
Par défaut Re:Test avant soumission ;)

Bonsoir laurent


Je n'arrive pas à installer ton fichier (archive endommagée).

Sinon j'avais téléchargé la premiere version.

A l'installation, ton appli s'installait dans c:\\casisses, créant un bug avec le chdir de l'évenementielle open.

A la fermeture, je ne retrouve plus mes barres d'etat, formules, ascenseur, listes des onglets, et je perd la barre d'outils visual basic.

Sinon, je trouve ton application très bien faite, très soigné, avec en plus une aide conséquente.

en espérant t'avoir aidé, car tel etait le but de mon intervention.

salut
Hervé est déconnecté   Réponse avec citation
Vieux 23/11/2005, 17h42   #3 (permalink)
Super Moderator
 
Avatar de PascalXLD
 
Date d'inscription: février 2005
Localisation: Rennes
Version Excel : Excel 2000 (PC)
Messages: 8 226
Par défaut Re:Test avant soumission ;)

Bonjour

Moi personnellement contrairement au clone d'Hervé B) tout s'est bien passé a l'install

Bon j'aime pas trop les barres qu'on enlève mais bon tu laisses la principale au cas où

Sinon ton UF s'est bien ouvert mais je n'ai pas tester le remplissage j'ai plus rien en caisse que veux-tu :unsure:

Sinon côté design moi j'aime bien

Bonne soirée
__________________
Pascal(Visitez mon Blog Photo)

Vous pouvez devenir "Supporter XLD", plus de renseignements ICI
PascalXLD est déconnecté   Réponse avec citation
Vieux 23/11/2005, 17h49   #4 (permalink)
XLDnaute Occasionel
 
Avatar de laurent45
 
Date d'inscription: avril 2005
Localisation: Ouzouer-le-Marché
Version Excel : Excel 2003 (PC)
Messages: 198
Envoyer un message via MSN à laurent45 Envoyer un message via Skype™ à laurent45
Par défaut Re:Test avant soumission ;)

Bonjour Hervé, Pascal, le Forum,

Désolé Hervé , j'ai tendance à vouloir aller trop vite :S
C'est la passion

J'ai fait le test comme toi, et j'ai donc réparé mon erreur :ermm: :whistle:

Merci de vos appréciation.

Ce fichier peut-il être transmis sur le Site ?
Pensez-vous que ça puisse intéresser le XLDennes et les XLDiens ?

@+
__________________
Laurent



laurent45 est déconnecté   Réponse avec citation
Vieux 23/11/2005, 19h54   #5 (permalink)
Jam
XLDnaute Impliqué
 
Avatar de Jam
 
Date d'inscription: février 2005
Localisation: Chambourcy
Version Excel : Excel 2003 (PC)
Messages: 653
Envoyer un message via MSN à Jam
Par défaut Re:Test avant soumission ;)

Salut Laurent, Pascal, Hervé,

Bon j'ai regardé et testé (partiellement) ton appli et voici mes quelques petites remarques:

- Install: Si tu pouvais laisser le choix de l'emplacement aux utilisateurs ce sera parfait (moins il y a de chose à la racine de C: et mieux c'est en général). Pour cela tu peux utiliser Thisworkbook.Path afin d'obtenir le chemin de ton fichier XL et gérer le reste à partir de là.
Bravo pour l'utilisation d'un installeur (l'initiative est assez rare pour être soulignée). Bien joué.

- Les barres d'outils: je partage l'avis de Pascal concernant la 'disparition' momentanée des barres d'outils. Même si ce n'est pas très grave, il arrive souvent que des utilisateurs crée une multitude de barre, et il faudrait 1: que tu les retires toutes, 2: si on bascule vers une autre feuille les rétablir Et comme l'a souligné Hervé en cas de plantage tu met le bazar dans un truc qui rend souvent nerveux l'utilisateur...et il risque de pas aimé ton appli à cause de ce détail

- Le démarrage est assez lent: En fait j'ai remarqué que tu jouais beaucoup avec la sélection des cellules...c'est lent en général. Essaie d'utiliser des noms de cellules pour accéder directement à la ligne ou carrément via un fichier INI. De même tu pourrais avant toute chose dans Workbook_Open mettre
Code:
With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With
histoire d'accélerer un peu et le rétablir une fois tes manip effectuées.

- Concernant: la gestion des objets dans tes pages...please, nomme-les et utilises des boucles pour assigner leur valeur. Ton code y gagnera en lisibilité et en rapidité.

- Les variables: Tu as de nombreuses variables non utilisées dans ton code (cf fichier joint). Supprime les ou à défaut REM-les. De même tu as de nombreuses variables en Variant (beurk, beurk). Evite si possible d'utiliser ce type. C'est consommateur de mémoire et ça pénalise la vitesse.

- J'ai remarqué (je ne sais pas si c'est forcément justifié) qu'il y avait beaucoup de répétitions de code...en générale cela signifie qu'il doit y avoir un moyen de transférer cela dans une procédure à part (les événements AfterUpdate dans le userform Accueil).

- Remarque générale: La cosmétique c'est super dans un programme et c'est aussi important. Cependant elle ne doit intervenir qu'en fin de développement une fois qu'on est sur (on l'est jamais vraiment hein :lol: ) que le code est au point. (Ex. j'ai pas la zoulie icone qui apparaît dans XL).

Bon, à part cela, je trouve ton programme très bien présenté avec de bonne idées. L'utilisation des pages est assez chouette (moi qui les ai souvent détestée ). Ton code est assez riche et cela montre le temps que tu y as passé.

J'espère que tu ne prendras pas mal ces quelques réflexions.
Bon courage pour la suite. [file name=Variables.zip size=667]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Variables.zip[/file]
Fichiers attachés
Type de fichier : zip Variables.zip (38,9 Ko, 5 affichages)
__________________
Toutes les bonnes idées ne sont pas dans la même tête.
Jam est déconnecté   Réponse avec citation
Vieux 23/11/2005, 22h44   #6 (permalink)
XLDnaute Occasionel
 
Avatar de laurent45
 
Date d'inscription: avril 2005
Localisation: Ouzouer-le-Marché
Version Excel : Excel 2003 (PC)
Messages: 198
Envoyer un message via MSN à laurent45 Envoyer un message via Skype™ à laurent45
Par défaut Re:Test avant soumission ;)

Bonsoir Jam, le fil, le Forum,

Jam écrit:
Citation:
J'espère que tu ne prendras pas mal ces quelques réflexions.
Je te remercie beaucoup pour tes critiques. C'est tout ce que j'attendais en ouvrant ce post.

Je vais maintenant répondre aux modifications que tu me propose.

Citation:
- Install: Si tu pouvais laisser le choix de l'emplacement aux utilisateurs ce sera parfait (moins il y a de chose à la racine de C: et mieux c'est en général).
Ce que je voulais protéger, c'est pour plus tard. Je souhaite faire des sauvegardes dans un sous-dossier ('Sauvegardes') du dossier 'CaissesV2.00'.

Citation:
Pour cela tu peux utiliser Thisworkbook.Path afin d'obtenir le chemin de ton fichier XL et gérer le reste à partir de là.
Je ne l'avais pas vu comme cela. Pourtant j'ai recherché un moyen de faire ça, mais sans succès.
Je n'ai pas due mettre les bon mots clés. :unsure:

Citation:
Bravo pour l'utilisation d'un installeur (l'initiative est assez rare pour être soulignée). Bien joué.
C'était le meilleur moyen pour avoir mon dossier où je le souhaitais. Et puis l'ouverture d'un 'Lisez Moi', j'aime bien (ça fait pro B) )

Citation:
- Les barres d'outils: je partage l'avis de Pascal concernant la 'disparition' momentanée des barres d'outils. Même si ce n'est pas très grave, il arrive souvent que des utilisateurs crée une multitude de barre, et il faudrait
1: que tu les retires toutes,
2: si on bascule vers une autre feuille les rétablir
Et comme l'a souligné Hervé en cas de plantage tu met le bazar dans un truc qui rend souvent nerveux l'utilisateur...et il risque de pas aimé ton appli à cause de ce détail
J'ai rétablis les barres d'outils. Il n'y a que les onglets et les entêtes de colonnes et lignes, que je retire. Ils se rétablissent dès que l'on change de feuille (les entêtes).
C'est uniquement, pour que l'utilisateur ne puisse pas faire de modif sur les autres feuilles (c'était le souhait du demandeur, je peux presque dire client)

Citation:
- Le démarrage est assez lent: En fait j'ai remarqué que tu jouais beaucoup avec la sélection des cellules...c'est lent en général. Essaie d'utiliser des noms de cellules pour accéder directement à la ligne ou carrément via un fichier INI. De même tu pourrais avant toute chose dans Workbook_Open mettre
Code:
With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
End With
histoire d'accélerer un peu et le rétablir une fois tes manip effectuées.
Pour ce qui est des sélections, je ne vois pas trop ce que tu veux dire.
En fait, j'avais commencé par faire un fichier INI, mais j'ai trop galéré avec les INPUT et OUTPUT (ou WRITE). J'ai une Aide (Excel97), qui est plus que limitée sur ce genre de sujet.
Pour le ScreenUpdating, il est vrai que j'aurais pu l'utiliser ici, alors qu'il est présent dans le reste du code...

Citation:
- Concernant: la gestion des objets dans tes pages...please, nomme-les et utilises des boucles pour assigner leur valeur. Ton code y gagnera en lisibilité et en rapidité.
Que veux tu dire par nommes-les ?
Si ça concerne les TextBox de la page Chiffre, je trouvais plus simple de les gérer comme ça.

Citation:
- Les variables: Tu as de nombreuses variables non utilisées dans ton code (cf fichier joint). Supprime les ou à défaut REM-les. De même tu as de nombreuses variables en Variant (beurk, beurk). Evite si possible d'utiliser ce type. C'est consommateur de mémoire et ça pénalise la vitesse.
Après utilisation de ton fichier .txt, j'ai fait le ménage. Mais pas tout :
Citation:
La variable 'CvtMidi, CvtSoir, CARestMidi, CARestSoir, CAVAE5_5, CAVAE19_6'
est utilisée dans ModuleGeneral.Enregitrer.
Pour les Variant, il faut que je teste mes tableaux en Double.

Citation:
- J'ai remarqué (je ne sais pas si c'est forcément justifié) qu'il y avait beaucoup de répétitions de code...en générale cela signifie qu'il doit y avoir un moyen de transférer cela dans une procédure à part (les événements AfterUpdate dans le userform Accueil).
Oui, j'avais au départ une fonction que Didier MyDearFriend m'a fait partager, mais avec un plantage de PC, je n'ai pu récupérer qu'une version97 d'Excel, et la fonction Replace ne fonctionnait plus. Comme certaines autres, que j'ai due modifier. d'où ces répétitions de code.
Je n'ai pas encore réessayé avec le Select dans les With proposé par notre Maître _Thierry.

Edition: Après réflexion (au fil du post, je réfléchi sur ce que j'ai écris avant), pour les évènements AfterUpdate, c'est pour avoir un séparateur décimal 'Français', plutôt qu'un point.

ReEdition: Replace ne fonctionne pas sous Excel97. J'ai refait des essais

Citation:
- Remarque générale: La cosmétique c'est super dans un programme et c'est aussi important. Cependant elle ne doit intervenir qu'en fin de développement une fois qu'on est sur (on l'est jamais vraiment hein :lol: ) que le code est au point. (Ex. j'ai pas la zoulie icone qui apparaît dans XL).
Pour la fin du développement : il fallait que j'accélère pour mon client.
Tu n'as pas l'icône dans Excel ?
C'est pas cool !!
Vu le nombre de versions que j'en ai créées !!

Citation:
Bon, à part cela, je trouve ton programme très bien présenté avec de bonne idées. L'utilisation des pages est assez chouette (moi qui les ai souvent détestée ). Ton code est assez riche et cela montre le temps que tu y as passé.
Un grand merci pour le temps que tu as consacré à cette critique très constructive.

Une dernière chose (pour ce soir). J'ai créé un fichier d'aide, mais je n'arrive pas à le faire prendre en compte par mon fichier.

Quelqu'un pourraît-il m'éclairer sur ce problème ?

Merci

Bonne nuit !

Edition : Toutes mes excuses Didier MDF

Message édité par: laurent45, à: 24/11/2005 15:14
__________________
Laurent



laurent45 est déconnecté   Réponse avec citation
Vieux 24/11/2005, 11h43   #7 (permalink)
Jam
XLDnaute Impliqué
 
Avatar de Jam
 
Date d'inscription: février 2005
Localisation: Chambourcy
Version Excel : Excel 2003 (PC)
Messages: 653
Envoyer un message via MSN à Jam
Par défaut Re:Test avant soumission ;)

Salut Laurent,

1. Concernant le nommage des controles de userform:
D'abord une petite précision: contrairement à son grand frère VB, VBA ne gère pas les index des controles (ex.: Textbox(1)). Donc pour contourner ce problème il faut nommer le control ex Textbox1 et ensuite on utilise son nom dans le code (ex.: controls('Textbox1'))

Donc quand je te parle de boucle je l'imaginais dans la lecture d'un range et de l'attribution des valeurs aux textbox. Par exemple si tes textbox son nommée de Textbox1 à Textbox10 et que tu les remplis à partir du range('A20') à range('A29').
Plutôt que d'écrire Textbox1=Range('A1') et ce 10 fois, une petite boucle fera beaucoup mieux l'affaire comme par exemple
Code:
For i=1 to 10
controls('Textbox' & i).text=Range('A' & i + 19).value
Next
Voila, en 3 lignes comment éviter d'en écrire 10 (ou plus). Autre avantage, si ton range se déplace, tu changes ou ajoute juste un paramètre (l'idéal c'est d'utiliser une plage nommée et de récupérer ses coordonnées via Range('monNom').columns, etc.) et ton code est vite (et bien) modifié. Sinon il faut que tu modifies autant de lignes que de ranges ou de controls. Cela devient vite fastidieux et source d'erreur.

2. Fichier INI
C'est pas toujours très pratique à utiliser mais une fois maîtrisé c'est tout bénéf surtout si tu utilises un installeur qui sait écrire dans l'INI.
Tu peux aussi utiliser la Registry qui est une tès bonne solution même si elle est rarement utilisée (Excel propose plusieur fonctions intégrées très simples d'utilisation). Normalement ton installeur doit savoir aussi écrire dans la registry

3. Les barres d'outils:
Tu rétablis quand on change de feuille...pas de classeur

Voili voilou.
Je reviendrai peut-être à la charge si j'ai un peu de temps.

Bon courage

Message édité par: jam, à: 24/11/2005 11:43
__________________
Toutes les bonnes idées ne sont pas dans la même tête.
Jam est déconnecté   Réponse avec citation
Vieux 24/11/2005, 11h49   #8 (permalink)
Jam
XLDnaute Impliqué
 
Avatar de Jam
 
Date d'inscription: février 2005
Localisation: Chambourcy
Version Excel : Excel 2003 (PC)
Messages: 653
Envoyer un message via MSN à Jam
Par défaut Re:Test avant soumission ;)

Laurent,

Juste un petit truc concernant les feuilles. Tu dis vouloir cacher les barres d'outils, etc pour éviter que les utilisateurs aillent dans les feuilles. Y'a une solution toute bête: Met leur statut Visible en xlVeryHidden. Comme cela elles n'appaîtrons pas dans le menu Feuille>Afficher et resterons accessible lecture/écriture par ton code sans problème.

A+
__________________
Toutes les bonnes idées ne sont pas dans la même tête.
Jam est déconnecté   Réponse avec citation
Vieux 24/11/2005, 14h36   #9 (permalink)
XLDnaute Occasionel
 
Avatar de laurent45
 
Date d'inscription: avril 2005
Localisation: Ouzouer-le-Marché
Version Excel : Excel 2003 (PC)
Messages: 198
Envoyer un message via MSN à laurent45 Envoyer un message via Skype™ à laurent45
Par défaut Re:Test avant soumission ;)

Re Jam, le Forum,

Encore merci pour tes tuyaux Jam.

Mais pour la propriété xlVeryHidden des feuilles, je ne peux pas. J'ai des Select qui font fonctionner une fonction Sort pour la feuille CRT : Erreur !! 'GNAPP!!' :evil: comme dans la Pub.

Pour le nommage de cellules, je travaille dessus.

@+
__________________
Laurent



laurent45 est déconnecté   Réponse avec citation
Vieux 24/11/2005, 16h25   #10 (permalink)
Jam
XLDnaute Impliqué
 
Avatar de Jam
 
Date d'inscription: février 2005
Localisation: Chambourcy
Version Excel : Excel 2003 (PC)
Messages: 653
Envoyer un message via MSN à Jam
Par défaut Re:Test avant soumission ;)

Laurent,

Dans module CRTpage, j'ai 'optimisé' la sub suivante:

Citation:
Sub AnnulerCRT()
Dim z As Byte
       
With Accueil_Form
                .CRTBox.Clear
                .SaisieCRTBox.Clear
' Vide les TextBox et les ComboBox
                .QuantiteCRTBox.Value = ''
                .TotalCRTBox.Value = '0,00'
               
For z = 0 ToUBound(CRTTab, 1)
                       
With .CRTBox
                                .AddItem
                                .Column(0, z) = CRTTab(z, 0)
' Remise en place des données les saisies
                                .Column(1, z) = CRTTab(z, 1)
                       
End With
                        .SaisieCRTBox.AddItem CRTTab(z, 0), z
               
Next z
       
End With
End Sub
Hop gratos :lol:

Une question aussi:

Peux-tu me dire la différence entre :

Citation:
PublicFunction MAJForm(T As String) As String
        MAJForm = Format(CDbl(T), '0.00')
End Function

PublicFunction MAJForm1(T As String) As String
        MAJForm1 = Format(CDbl(T), '0.00')
End Function
Dans le module ModuleGénéral ?

Bon courage, A+
__________________
Toutes les bonnes idées ne sont pas dans la même tête.
Jam est déconnecté   Réponse avec citation
Vieux 24/11/2005, 16h41   #11 (permalink)
XLDnaute Occasionel
 
Avatar de laurent45
 
Date d'inscription: avril 2005
Localisation: Ouzouer-le-Marché
Version Excel : Excel 2003 (PC)
Messages: 198
Envoyer un message via MSN à laurent45 Envoyer un message via Skype™ à laurent45
Par défaut Re:Test avant soumission ;)

Re Jam, le Forum,

[ol][li]Merci pour la Sub Gratos [/li]

[li]Je me suis posé aussi la question !!
Donc => ARCHIVE :side: (poubelle)[/li][/ol]
On continue :

Pour faire des boucles de remplissage des TextBox, il faudrait que je les renomme toutes ! (si j'ai bien compris ce que tu me proposais). Et ensuite, nommer les groupes de cellules concernés, et faire des boucles pour remplir. C'est bien ça ?

Par contre, dans une plage nommée, dans quel sens sont lues les cellules. Par lignes ou par colonnes ? Ma logique voudrait que ce soit par ligne, mais je voudrais une confirmation.

Merci

@+
__________________
Laurent



laurent45 est déconnecté   Réponse avec citation
Vieux 24/11/2005, 16h48   #12 (permalink)
Jam
XLDnaute Impliqué
 
Avatar de Jam
 
Date d'inscription: février 2005
Localisation: Chambourcy
Version Excel : Excel 2003 (PC)
Messages: 653
Envoyer un message via MSN à Jam
Par défaut Re:Test avant soumission ;)

Laurent,

Encore une petite proposition (attention je ne l'ai pas testé) pour remplacer dans le module ESPECESpage la sub InitializeESP():
- Elle montre l'histoire des boucles + le bon usage des with...end with

Citation:
Sub InitializeESP()
Dim myArray As Variant
Dim i As Integer
myArray = Feuil3.Range('B26:B37').Value
With Accueil_Form
       
For i = 21 To 32
                .Controls('TextBox' & i).Value =
CInt(myArray(i - 20, 1))
       
Next
        .FondsCaisseBox.Value = MAJForm(Feuil3.Range('D41').Value)
       
If .OptionMidi Then
                .EcartESPBox.Value = MAJForm(CDbl(Feuil2.Range('B30').Value) -
CDbl(.TotalESPBox.Value))
       
End If
       
If .OptionSoir Then
                .EcartESPBox.Value = MAJForm(CDbl(Feuil2.Range('C30').Value) -
CDbl(.TotalESPBox.Value))
       
End If
End With
End Sub
A+
__________________
Toutes les bonnes idées ne sont pas dans la même tête.
Jam est déconnecté   Réponse avec citation
Vieux 24/11/2005, 17h31   #13 (permalink)
XLDnaute Occasionel
 
Avatar de laurent45
 
Date d'inscription: avril 2005
Localisation: Ouzouer-le-Marché
Version Excel : Excel 2003 (PC)
Messages: 198
Envoyer un message via MSN à laurent45 Envoyer un message via Skype™ à laurent45
Par défaut Re:Test avant soumission ;)

Jam écrit:
Citation:
Sub InitializeESP()
Dim myArray As Variant
Dim i As Integer
myArray ne pourraît-il pas être integer ?
et i être Byte ?

C'est toi qui m'a donné le virus du gain de place

@+
__________________
Laurent



laurent45 est déconnecté   Réponse avec citation
Vieux 24/11/2005, 18h13   #14 (permalink)
Jam
XLDnaute Impliqué
 
Avatar de Jam
 
Date d'inscription: février 2005
Localisation: Chambourcy
Version Excel : Excel 2003 (PC)
Messages: 653
Envoyer un message via MSN à Jam
Par défaut Re:Test avant soumission ;)

Laurent,

Tout à fait d'accord pour le byte un peu moins pour le variant (bon, là il s'agit plus d'une mesure de prudence...si un long ou un double vient à se glisser dans ton range il va falloir rajouter la gestion des erreurs

Continue, je vois que cela rentre :woohoo: :woohoo: :woohoo:
__________________
Toutes les bonnes idées ne sont pas dans la même tête.
Jam est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 00h27.


(C) 2006 Excel Downloads