Compléter mon programme

Bonjour à tous,

Voilà pour ma version de ce que je sais faire.

J'ai fait le ménage pour ce que je trouve d'inutile : La listbox2, les textbox change, le bouton clear.

Sur les boutons aussi c pas top les fautes d'orthographe "choisire une image" ou" suprimer la photo".

Les bouton doubleclic ou chercher, supprimer fonctionnent, ainsi que modifier mais il est trop long je sais pas pourquoi.

A+

Bonjour Fronck,

En effet l'ensemble du code est mal structuré et lourd (répétitions, lignes inutiles, ...). Quant à moi je m'en suis tenu à rectifier les erreurs qui entraînaient un bug tout en conservant l'écriture, et il y en a encore ("ajouter une nouvelle feuille" par exemple, ainsi que "transférer les données" qui n'agit que partiellement, ...) J'avais apporté les modifications nécessaires pour que ça fonctionne mais elles n'ont pas encore été intégrées.
Par contre, tu trouves les boutons double-clic, supprimer et modifier trop longs, ce n'est pas le cas chez moi.
J'attends des nouvelles de Belhoucinedine avant de continuer.
Cordialement
Jacky

Bonjour Jacky,

Finalement j'ai remis la listbox2 car elle permet de filtrer les noms selon les premieres majuscules saisies (voir DADI et DADI HJJG). Elle fonctionne.

Les dates s'affichent toutes en format date, et plus de lenteur dans mes boutons

A+

Bonjour à tous,

Je suis désolé de ne pas pouvoir vous suivre à cause de rhume et la toux que j'avais.

Je vais essayer de suivre les commentaires pour pouvoir les comprendre et mettre les commentaires appropriés pour eux.

Bonjour à tous,

Une nouvelle version pour que l'utilisateur rentre toutes les données. Plus le calcul de l'age et anciennetés, la saisie en majuscules, pas mal de choses sauf les photos. Je trouve aussi que le bouton modifier peut être supprimé en le groupant avec enregistrer.

Cdt

Bonjour à tous,

Merci beaucoup Fronck pour ton aide

Il y a des commentaires sur le programme comme suit

- TextBox 4 ; 10 et 12 sont liés respectivement aux TextBox 3, 9 et 11, où le nombre d'années est écrit automatiquement dans le UserForm puis transféré dans une feuille (DATA).

- Liez la recherche TextBox 17 à ListBox1 , Fram3 et Image1 pour modification et recherche.

- codes pour le boutons ( choisir une image ) il fonctionne pas.

- De plus, le bouton de sauvegarde des données et le bouton de modification des données ne sauvegardent pas l'image

Merci d'avance

bonjour belhoucinedine,

Bon je viens faire un point:

- J'ai réussit à charger qqs photos, les charger en recherche et doubleclic, mais pas à les supprimer.

Pour que les opérations sur les photos fonctionnent avec ton répertoire, il faut que tu copies le chemin de ton dossier de photos (clic droit/copier) sur:

ep2

Il faut que je rajoute les autres format que jpg, et des fois çà bug sur le chargement de photos (quand il y en a pas) en double clic et pas en chercher alors qu'il y a le même code.

Pour la sauvegarde des images, tu n'as pas besoin du bouton choisir pour moi, car le bouton sauvegarder ou modifier prend et inscrits les chemins. Donc il faut les mettre directement dans le dossier des photos.

- Le reste fonctionne en gros, y'a encore du boulot. Pour les deux points (que tu répètes), le premier concerne les calculs d'ancienneté p/r aux dates, il fonctionne, et l'autre c'est le filtre avant recherche, fonctionne aussi. Fram3 c'est quoi ? j'ai pas trouvé.

Pour les détails, Quand tu fais tab pour aller de champ en champ, celui du lieu de travail (textbox8) est sauté. Si tu saisis du texte en date, il est difficile de le supprimer si tu le remplaces pas...

A+

Bonjour,

Il est de bonne habitude d'informer que l'on a fait la même demande sur un autre forum, ne fusse que par correction vis à vis des membres qui passent du temps à chercher une solution qui est peut-être déjà trouvée ailleurs et dont ils n'ont pas connaissance.

Donc pour celui qui veut suivre c'est par ici -> https://www.excel-downloads.com/threads/aide-pour-completer-le-programme.20063947/post-20483328

Merci de votre compréhension et de lire ou relire la charte du forum si vous ne l'avez pas encore fait

Cordialement

Bonjour,

Merci Dan, je vais essayer de fusionner nos fichiers et le contacter.

J'ai essayé de trouver ce dont j'avais besoin et je ne l'ai pas trouvé dans ce forum, il n'y a donc aucune honte à chercher mes problèmes dans un autre forum. En effet, j'ai trouvé plusieurs solutions à ce que je cherchais, et j'ai toujours le problème de sauvegarder l'image, et je ferai de mon mieux et demanderai de l'aide de n'importe quel côté pour que je puisse accomplir mon travail.

Merci pour vos efforts.

Avec de l'aide, mon travail est devenu comme ça

7programme.zip (678.94 Ko)

il n'y a donc aucune honte à chercher mes problèmes dans un autre forum.

Aucune sauf que votre question est la même et que vu que vous aviez un suivi, vous auriez pu le signaler. Raison : Relisez mon post précédent

Merci pour la remarque. Il est vrai que je n'ai pas signalé sa présence dans un autre forum car je ne le connaissais pas.

Je suis vraiment désolé et je me suis beaucoup blâmé.

Je vous informe que je suis novice dans la gestion des forums.

Salut,

@belhoucinedine j'ai posté un fichier sur l'autre forum, faudrait décider ou vous continuez les discutions.

Teste le est dis moi.

image

C'est drôle de voir ce fichier passer "inextremis", je crois que c'était la première fois que je venais en aide à quelqu'un sur ce forum.

S'il a pigé dans mon code, C'est peut-être ma faute si le code actuel de son fichier est "lourd", j'avais et j'Ai toujours, de faibles connaissances, mais, à ce moment, c'était mon premier client satisfait!

https://forum.excel-pratique.com/excel/userform-a-onglets-90389

Bonjour à tous,

J'ai pu ouvrir ta derniére version JP, ok pour le défilement d'enregistrement.

Voilà ma derniére version avec:

- Plus de bouton modifier pour éviter de se tromper de bouton.

- Plus de bouton de suppression de photo. Il faudra ajouter une photo nommée 0.jpg pour les enregistrements sans photo.

Il reste à voir:

- Les autres formats que le jpg, pas codé.

- Le probléme de "transférer vers les autres feuilles", inutile pour moi.

Si vous voyez autre chose dites-moi.

cdt

Salut,

Bon comment dire...
On commence dans l'ordre

Private Sub UserForm_Initialize()
...
...
'on gère la gestion des erreurs
    On Error Resume Next
...
...
'on désactive la gestion de erreurs
    On Error GoTo 0

End Sub

Ici tu ne gères pas du tout la gestion d'erreur, la bonne pratique serait de prévoir l'erreur.

    On Error Resume Next
    'MkDir "C:\EMP DATA"
    'MkDir "C:\EMP DATA\PHOTO"

Ha oui j'ai oublié celui-là juste avant, de plus quand tu partages un fichier il est aussi de bonne pratique de ne pas créer quoi que ce soit sur le PC sans demander.

Private Sub UserForm_Resize()
    Width = 792
    Height = 481.5
End Sub

Peux-tu m'expliquer pourquoi ?

Private Sub btnsauv_Click()
    Dim x As Integer, ws As Worksheet, chemin As String, i As Integer, y As Integer, t As Integer, z As Integer
    Set ws = Sheets("DATA")
    '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    '       MODIFIER / ENREGISTRER
    '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    ' Si rien saisit en nom, la macro s'arrète
    If TextBox2 = "" Then
        MsgBox "Veuillez entrer le nom."
        Exit Sub

Ici c'est mon appréciation personnelle, il est de bonne pratique de ne pas mettre tous les champs en obligatoires, l'utilisateur à peut-être envie de ne renseigner que le nom et le prénom, la suite venant après.

    'test enregistrement existant
    y = ws.Range("A" & Rows.Count).End(xlUp).Row

On voit encore partout ce style de recherche alors que les tableaux structurés existent depuis, depuis très longtemps

    With ws
        .Cells(x, 1).Value = TextBox1.Text
        .Cells(x, 2).Value = TextBox2.Text
        .Cells(x, 3).Value = TextBox3.Text
        .Cells(x, 4).Value = DateDiff("yyyy", TextBox3, Now())
        .Cells(x, 5).Value = TextBox5.Text

Idem pour ce genre de programmation.

    chemin = "C:\Users\Pairaud\Desktop\photos\" & i & ".jpg"

La bonne pratique voudrais que l'on n'utilise le moins possible des chemins en dur dans le code, si obligé alors il vaut mieux privilégier une constante en début de module se sera plus simple pour toi en cas de bugs. Et pour la maintenance...

'bouton Choisir une image pour l'utilisateur
Private Sub Choisir_une_image_Click()
    Dim x As Integer, i As Variant
    Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
    'ouvre l'explorateur
    x = Application.FileDialog(msoFileDialogOpen).Show

Relis ton code et poses toi la question. Y'a pas un problème là ?
Si tu tiens tant à nommer tes images par leurs index alors fait le dans la procédure Choisir_une_image_Click(). Ha oui en passant il est aussi de bonne pratique de ne pas utiliser l'Under score pour le nom des Sub et Fonction il est plutôt réservé aux Constantes et Méthodes.
Donc moi je verrais plutôt ce déroulement.

Private Sub ChoisirUneIimage_Click()
    ' On invite à ouvrir le fichier. Utile plutôt "msoFileDialogFilePicker"
    ' Si .Show (Si l'utilisateur à sélectionner un fichier) Alors
        ' On copie le fichier dans le bon répertoire avec le bon nom
        ' FileCopy fera très bien l'affaire
        ' FileCopy  x.SelectedItems(1), MonChemin & Index & .extension
        ' Le contrôle Image accepte plusieurs format d'images donc 
        ' à toi de vérifier que le format est bon avant d'enregistrer l'image... :)

Voilà un début qui à mon sens (et je le répète encore c'est ma façon de penser) doit être fait.

A voir pour la suite....

Bonjour,

Pour critiquer mes instructions vous êtes toujours présents mais pour apporter la solution y'a plus grand monde.

Les 3 premiéres remarques, c'est pas mon code, c'est celui de crackwood, la prochaine fois vérifies sur l'original. Et la 2éme, c'est au sujet du" transfert de feuille", alors que j'ai écris que c'était inutile pour moi. Ta critique n'est pas constructive.

La 4éme, c'est mon appréciation.

6-7-8, çà fonctionne, t'as qu'a donner le code.

9 c'est le code du gars, poses lui la question au lieu de me prendre pour un demeuré, et en plus çà fonctionne, et tu proposes des solutions dans le désordre...et çà bug :

ep3

En tout cas, çà fonctionne, par contre pour ton défilement tu as fait le minimum et rien pour le filtre alors que c'est bien mieux quand tu as une longue liste.

Salut

Bonjour Jean Paul, bonjour Eric, et .... bonjour à tous,
Alors là ça dépasse tout entendement !
Il est vrai que j'ai décidé de ne plus suivre et aider (peut être pour un certain temps, à voir) mais cela ne m'empêche pas de parcourir le Forum par intérêt et pour continuer à me documenter .... et alors là, je suis effaré. Je fus le premier à vous faire part de mon désagrément étant donné l'attitude et les écrits de ce monsieur, et je constate qu'il persiste.
Sachez, monsieur, que la grande majorité des intervenants sont des bénévoles qui ont à cœur d'aider ceux qui désirent obtenir de l'aide dans l'élaboration de leur code et progresser par la même occasion en VBA. Le respect leur est dû même si vous considérez que la réponse donnée ne vous convient pas.

Pour critiquer mes instructions vous êtes toujours présents mais pour apporter la solution y'a plus grand monde.

c'est le code du gars, poses lui la question au lieu de me prendre pour un demeuré

Monsieur, rien que c'est deux lignes sont inacceptables et honteuses. Vous vous comportez comme un goujat envers Jean Paul qui s'est évertué à vous apporter en fonction de ses moyens (non rudimentaires selon moi) des pistes de solution. Vos propos me blessent peut être plus qu'ils ont pu blesser Jean Paul.
Veuillez prendre un peu de temps pour réfléchir à tout cela et réagir, ou bien quitter à tout jamais ce groupe de "forumeurs" bien sympathiques.
Je ne vous salue pas
Avec mes pensées les plus cordiales pour les autres.
Jacky

Bonjour à tous,

Merci @Jacky pour ton retour.

Absent depuis plusieurs jours qu'elle a été ma surprise en voyant les nouveaux post de ce sujet.

Pauvre fronck, vous devez sans nulle doute, être quelqu'un d'aigris dans la vie pour avoir un tel comportement. Je pensais que les altercations avec les autres membres vous aurait mis du plomb dans l'aile mais que nenni. Le but de ces forums c'est l'entraide, quand quelqu'un vous donne un code le but ce n'est pas de le coller dans son programme et de dire ça ne marche pas, le but c'est d'apprendre, mais je pense que la plupart des solutions qui vous ont été données sont peut-être trop difficile à comprendre pour vous.

Alors ce matin j'ai décidé de faire une refonte du code en partant de zéro, si je ne m'abuse vos premiers commentaires sur le sujet date du 01/01/2022 sur une plateforme, et du 08/01/2022 sur une autre pour quel résultat ?

Alors voilà il est 13h13 heure à laquelle j'écris ces lignes et je mets pas pour vous mais pour celui qui à lancé en premier le post mon petit fichier écris en quatrième vitesse...

Ce qui est sur, c'est que dorénavant, je passerais mon chemin concernant. toute publication de votre part. Et j'invite toutes les personnes sensées à en faire autant.

Certaines notes peuvent être enregistrées comme suit :

- vous avez Office 365 et moi Office 2010 , Il y a peut-être des choses qui marchent pour toi et qui

ne marchent pas pour moi

- La méthode ouverte Userform n'est pas pratique.

- La feuille 1 (Paramètres) est masquée.

- Devrait être placé un CombBox pour Situation Familliale.

- Pour l'image, vous devez ajuster les mesures.

- Toutes les colonnes doivent apparaître dans listBox1.

- Pour Frame 3 (Transférer et sauvegarder) Ça ne marche pas, on ne peut écrire qu'une lettre.

- Le certificat obtenu ne peut pas être enregistré.

- Lors d'une nouvelle inscription : Lors de l'écriture de ses données et de l'insertion de son image, les

données doivent être enregistrées une fois avec l'image.

Voici mon fichier il fonctionne bien pour moi

Rechercher des sujets similaires à "completer mon programme"