Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Userform pour fichier maintenance

lloyd67

XLDnaute Nouveau
Bonjour à tous et à toutes.

Étant de niveau intermédiaire sur le développeur Excel, je viens quérir votre aide car je suis à + d'1 semaine de travail sur ce document, sur lequel je m'arrache les cheveux.

L'objet de ma demande :

Vous trouverez ci joint un document de suivi de maintenance outillage que j'aimerai mettre en place en réseau au sein de la société dans laquelle je travaille. Le tableau (feuille "Listing d'OT") se divise en 2 parties : (partie de gauche jaune = Ouverture d'un OT 'Ordre de Travail') et (partie de droite verte = Fermeture d'un OT).

J'ai d'ores et déjà créé un USERFORM pour la partie Jaune "ouverture d'un OT". Ca fonctionne.
Pour accéder a celui ci : cliquer sur le bouton en haut de page "ouvrir un OT".

Là où je bute, c'est pour la fermeture/cloture des OT. J'ai déjà fait le USERFORM mais j'ai tout effacé dans le code car impossible d'obtenir un résultat fonctionnel.
Pour l'ouvrir, cliquer sur "fermer un OT".

L'objectif de ce dernier USERFORM est de pouvoir selectionner le n° de l'OT à fermer (colonne A), une fois sélectionné : apparaissent les données d'ouverture de l'ot dans la zone de gauche "RAPPEL DE L'OT" du USERFORM, et de clôturer cet OT en remplissant la colonne de droite du USERFORM.
En clôturant, cela remplirai la ligne de l'OT ouvert dans le tableau général.

Pour info, le tableau cela devrai fonctionner comme cela :

J'ouvre un OT : je clique sur "Ouvrir un OT" et remplis les données du USERFORM, je valide et la colonne gauche Jaune se remplis, colonne droite reste grise = OT non fermé.

Je ferme un OT : je clique sur "Fermer un OT", je sélectionne dans la liste des OT ouvert (ou le tape manuellement) celui que je veux fermer, a gauche s'affiche pour rappel les données enregistrées lors de l'ouverture de l'OT sélectionné, à droite je renseigne les données de fermeture de l'OT et valide. La ligne de l'OT concerné ouvert, se rempli côté droite (jusque là grisée) et l'OT est fermé.


Vous trouverez ci joint le fichier, si vous avez des conseils a me donner je suis preneur, comme dit plus haut, après une semaine de boulot là dessus, je suis à la rue... !

merci par avance pour vos conseils, aides et réponses.
 

Pièces jointes

  • TEST MAINTENANCE 5.xls
    919 KB · Affichages: 77

CHALET53

XLDnaute Barbatruc
Bonsoir
Un début pour te mettre sur la piste
Dans l'usf fermeture j'ai modifié le premier Textbox par une liste de choix sur le numéro de lot
Le choix d'un lot permet de récupérer le numéro de ligne sur lequel il faut enregistrer les informations
Voir commentaire dans Private Sub CommandButton1_Click()

A+
 

Pièces jointes

  • Lloy67 TEST MAINTENANCE 5.xls
    990 KB · Affichages: 58

Modeste

XLDnaute Barbatruc
Bonsoir lloyd67,

Un fichier sans données n'est sans doute pas très représentatif de son contenu réel
D'autre part, en laissant les essais que tu avais faits, on se serait peut-être aperçu qu'il ne manquait presque rien pour que ça fonctionne.

J'ai remplacé la zone de texte par une zone de liste déroulante, garnie au moment du lancement du UserForm. J'ai ajouté 2-3 lignes pour compléter les premiers champs, quand un élément de la liste est sélectionné ... tu verras bien si ça t'aide à avancer!?

[Edit:] Arff! Salut CHALET53 ... comme je terminais, je poste tout de même!
 

Pièces jointes

  • TEST MAINTENANCE 5 (lloyd67).xls
    1.1 MB · Affichages: 105

lloyd67

XLDnaute Nouveau
Bonjour, tout d'abord merci pour ces réponses et même ces essais.
Super intéressant de voir les codes utilisés je prend note de tout ça dans mon calepin.
Excel me passionne vraiment et c'est comme ça que j'en apprend le plus !

J'ai un soucis sur les deux fichiers, quand j'essai de cloturer un OT, je valide ce que j'ai noté mais la ligne de l'OT ouvert dans le USERFORM de fermeture d'un OT ne se remplis pas sur le tableau général des OT (feuille LISTING D'OT). Et c'est la dessus que j'ai un soucis effectivement !

L'orsqu'on cloture un OT, j'aimerai que les colonnes du tableau de G à N (de l'OT à fermer) se remplissent lorsque le USERFORM "Fermer un OT" est validé via le bouton valider.

De plus; (effectivement j'aurai du mettre des exemples, je m'en excuse) les OT ont des numéro sous cette forme : "201701001".
"2017" étant l'année d'ouverture suivi de "01" le mois et "001" l'incrémentation des OT.
Pour ouvrir l'OT on remplis jusqu'à la colonne "QUOI".
 

Modeste

XLDnaute Barbatruc
Bonsoir lloyd67, CHALET53,

Dans nos deux messages, nous avons mentionné qu'il s'agissait d'un début de solution!
Dans le fichier de CHALET53, tu as même des indications sur la syntaxe à utiliser pour inscrire les valeurs du UserForm dans la feuille ...Quel est le problème que tu rencontres, dès lors? (pense, si tu as besoin d'indications plus précises, à fournir les données dont tu reconnaissais toi-même qu'elles manquaient ).
 

lloyd67

XLDnaute Nouveau
Bonjour,

merci,

et bien, avec le code que j'ai intégré, j'arrive sans peine à mettre les données entrées dans le USERFORM de clôture d'un OT, mais lors de la validation, cela s'incrémente sur la 1ere ligne du tableau et non pas de l'OT ouvert que j'ai selectionné...
c'est ça qui coince, faire le lien entre l'ot ouvert et la position de la ligne à remplir avec le USERFORM de cloture.
 

CHALET53

XLDnaute Barbatruc
Bonjour,

As-tu regardé la proposition que je te faisais dans la procédure rivate Sub Commandbutton1 dans les commentaires
Quelle est la valeur de la variable ligne (si tu l'as appelé ainsi) lorsque tu valides
Quand tu sélectionnes une valeur dans la combobox, la procédure liée à cette combobox commence par enregistrer le numéro de ligne sur laquelle on travaille et elle te sert lors de la validation de tes saisies
As-tu défini la variable en amont de toutes les procédures ?

a+
 

lloyd67

XLDnaute Nouveau
Bonjour, merci

oui j'ai vu le commentaire, j'ai essayé le code ci dessous, mais comme dit, je ne suis pas expert, j'ai du mal ! qu'Est-ce qui est faux ?

Private Sub CommandButton1_Click()
With Feuil7
derlign = .Range("g65536")
.Cells(derlign, 7).Value = TextBox1
.Cells(derlign, 8).Value = TextBox2
.Cells(derlign, 9).Value = TextBox3
.Cells(derlign, 10).Value = TextBox4
.Cells(derlign, 11).Value = TextBox5
.Cells(derlign, 12).Value = TextBox6
.Cells(derlign, 13).Value = TextBox7
.Cells(derlign, 14).Value = TextBox8
ligne = ComboBox1.ListIndex + 6
End Sub
 

CHALET53

XLDnaute Barbatruc
Si tu as utilisé ma proposition (utiliser une combobox pour sélectionner le numéro de client, tu as cette procédure et dans cette procédure tu prends acte de la ligne sur laquelle se trouve le client sélectionné (après avoir défini au-dessus de toutes les procédures la variable ligne comme je l'ai fait ce qui permet de la réutiliser dans toutes les procédures par la suite et notamment dans la procédure de validation
Ensuite, tu n'utilises pas derlign mais dans tes formules tu remplaces derlign par ligne
Sinon, joins ton fichier

Private Sub ComboBox1_Change()
ligne = ComboBox1.ListIndex + 6
For Each cel2 In P
If cel2.Value = Val(ComboBox1.Value) Then
TextBox10 = cel2.Offset(0, 1).Value
TextBox13 = cel2.Offset(0, 2).Value
TextBox12 = cel2.Offset(0, 3).Value
TextBox15 = cel2.Offset(0, 4).Value
TextBox11 = cel2.Offset(0, 5).Value

Exit For
End If
Next
'Stop
End Sub
 

lloyd67

XLDnaute Nouveau
J'ai pris note, j'ai testé. Mais je crois ne pas comprendre encore bien correctement la logique de chacun de ces codes.
ci joint le fichier que j'ai tenté de modifier.
 

Pièces jointes

  • TEST MAINTENANCE 6.xls
    1.3 MB · Affichages: 117

CHALET53

XLDnaute Barbatruc
Remplace ta procédure par celle-ci :

Private Sub CommandButton1_Click()
ligne = ComboBox1.ListIndex + 6
With Sheets("Listing d'OT")
.Cells(ligne, 7).Value = TextBox1
.Cells(ligne, 8).Value = TextBox2
.Cells(ligne, 9).Value = TextBox3
.Cells(ligne, 10).Value = TextBox4
.Cells(ligne, 11).Value = TextBox5
.Cells(ligne, 12).Value = TextBox6
.Cells(ligne, 13).Value = TextBox7
.Cells(ligne, 14).Value = TextBox8
End With
End Sub
 

lloyd67

XLDnaute Nouveau
bonjour à tous,

j'ai honte de moi car je pensais vous avoir remercié pour vos aides mais en re-parcourant mes messages, je m'aperçoit ne pas l'avoir fait. Je ne suis pas trop souvent sur le forum... je m'en excuses messieurs dames.

==> Le fichier excel fonctionne parfaitement (en ligne dans notre société depuis décembre 2016), je vous remercie donc tous pour cette précieuse aide, qui, vous ne vous en doutez pas, a considérablement changé notre façon de travailler dans notre société.

Pour info : étant donné que c'est un fichier excel en réseau et utilisé par plusieurs utilisateurs, j'ai réussi à intégrer (tout seul cette fois lol) une alerte par email lorsqu'un nouvelle entrée est enregistrée ou fermée.
C'est donc devenu quasiment un logiciel .

Donc un grand merci à tous !
 

Alfredo

XLDnaute Nouveau
Bonjour,
j'ai un souci avec la macro, le transfert des données s'effectue correctement mais tout est en texte et du coup je n'arrive pas à exploiter les renseignement de date ou de chiffre. Comme puis-je faire pour changer cela et que certain des textbox passe en format date ou nombre ?
Merci pour votre aide
K.
 

tchapdie

XLDnaute Nouveau
[ Bonjour avez vous déjà reçu les infos manquantes ?]
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…