Projet: Creation "GMAO"

bonjour à tous,

Je m'appel Mikhaïl 23ans, je travaille dans une usine agroalimentaire en tant que technicien "responsable" de maintenance depuis 3 ans (2 ans en alternance BTS MI et 1 ans de CDI ) .

Étant tout seul pour gérer et effectuer toutes les opérations de maintenances je me suis vu obligé de créer un petit logiciel de maintenance pendant ma première année de formation que voici :

Comme vous pouvez le constater pour ceux qui ont visualisé le code du fichier joint, que je ne suis qu'un simple amateur de VBA . C'est pourquoi je fais appel à vous pour me guider dans la création d'un nouveau logiciel de maintenance, cependant avant de me lancer j'aurais quelques petites questions :

  • Est-il possible de crée sous Excel un logiciel multiposte ?
  • Pour des raison de bug d'affichage doit-je crée le logiciel entièrement sous userform ?
Si oui -> Existe t-il un moyen pour remplir une listview ou listbox 15 colonnes sur max 10 000 lignes en moins de 2sec ?

En vous remerciant d'avance.

Mikhaïl

Salut le forum

Bienvenue ScorpioRG comme nouveau membres.

Lorsque ton véhicule est en problème, tu apportes une photo de ton moteur au garagiste . . .

Rien à faire avec le fichier que tu as mis en téléchargement

Bonne chance

Mytå

Mytå a écrit :

Salut le forum

Bienvenue ScorpioRG comme nouveau membres.

Lorsque ton véhicule est en problème, tu apportes une photo de ton moteur au garagiste . . .

Rien à faire avec le fichier que tu as mis en téléchargement

Bonne chance

Mytå

Je vois ce que tu veux me dire sauf que pour l'instant je n'ai pas de problème de VBA donc je n'ai aucun fichier ou code à fournir .

Pour reprendre ton exemple je cherche juste à acheter une nouvelle voiture, mais avant j'aimerais me renseigner sur celle qui me conviendrait le mieux par rapport à mon utilisation.

- Est-il possible de crée sous Excel un logiciel multiposte ?

Je sais qu'il est possible d'utilisé un même classeur par plusieurs personne en même temps " par l'option partager le classeur" mais est-ce vraiment fiable et pratique sur le long terme ?

- Pour des raison de bug d'affichage doit-je crée le logiciel entièrement sous userform ?

J'ai récemment testé de remplir une listview et listbox "Contrôles ActiveX" dans une feuille excel et il y avait toujours diffèrent bug d'affichage, à chaque activation de la feuil et au remplissage ( par code VBA et non par rowsource) .

Donc ma question était en faite de savoir si les utilisateur aller visualier et modifier les données via feuille et Userform comme c'est le cas dans le fichier joint ou seulement via des userform notamment a l'aide de multipage. comme cet exemple

1'642gmao-v0.zip (50.61 Ko)

Si oui -> Existe t-il un moyen pour remplir une listview ou listbox 15 colonnes sur max 10 000 lignes en moins de 2sec ?

Sur l'exemple GMAO V0 ci dessus on peut voir que la macro reste rapide. Cependant faite le test en remplissant 10 000 ligne au lieu des 100 lignes du fichier et vous aller pouvoir constaté que la macro prend plus de 2 sec sachant que j'ai testé plein de code VBA et c'est celui-ci le plus rapide.

Voila j'espère avoir était un peut plus clair sur mes besoin.

Mikhail

Bonjour

Je ne me suis occupé que tu temps de remplissage de la ListView

Avec la dernière ligne : 12022

Ta macro : 7 secondes

En passant par un tableau : 3 secondes

scorpioRG a écrit :

Pour des raison de bug d'affichage

C'est quoi ce(s) bug(s) ?

scorpioRG a écrit :

- Est-il possible de crée sous Excel un logiciel multiposte ?

Pas de réponse de ma part : Aucune idée de la faisabilité

A voir si tu veux continuer

Banzai64 a écrit :

Bonjour

Je ne me suis occupé que tu temps de remplissage de la ListView

Avec la dernière ligne : 12022

Ta macro : 7 secondes

En passant par un tableau : 3 secondes

scorpioRG a écrit :

Pour des raison de bug d'affichage

C'est quoi ce(s) bug(s) ?

scorpioRG a écrit :

- Est-il possible de crée sous Excel un logiciel multiposte ?

Pas de réponse de ma part : Aucune idée de la faisabilité

A voir si tu veux continuer

Qu' entend tu par un tableau? est til possible de joindre le fichier?

Bonjour

Remplaces la partie correspondante de ta macro par celle-ci

  tablo = Range("A11:T" & Range("A" & Rows.Count).End(xlUp).Row)
  For NLignList1 = 1 To UBound(tablo)
    .ListItems.Add , , tablo(NLignList1, 1)
    For Rech = 2 To 19
      .ListItems(NLignList1).ListSubItems.Add , , tablo(NLignList1, Rech)
    Next Rech
  Next NLignList1

Rajoutes aussi la déclaration suivante

Dim tablo
Banzai64 a écrit :

Bonjour

Remplaces la partie correspondante de ta macro par celle-ci

  tablo = Range("A11:T" & Range("A" & Rows.Count).End(xlUp).Row)
  For NLignList1 = 1 To UBound(tablo)
    .ListItems.Add , , tablo(NLignList1, 1)
    For Rech = 2 To 19
      .ListItems(NLignList1).ListSubItems.Add , , tablo(NLignList1, Rech)
    Next Rech
  Next NLignList1

Rajoutes aussi la déclaration suivante

Dim tablo

Je vient de testé ton code et effectivement celui-ci est beaucoup plus rapide .

Mais est il possible d'afficher le résultat d'un filtre dans cet listview ? en modifiant ton code pour qu'il prennent en compte les ligne masquée .

il faudrait que la ListView n'affiche que les 4 lignes du tableau, j'avais déjà testé plusieurs codes, mais soit il étaient trop lent ou ils ne prenaient en compte que la 1 ère ligne masquée .

Mikhail

Bonjour

J'avais commencé à regarder ton code mais celui-ci est incomplet

Il me faudrait le code complet avec des données bidons( cela n'a aucune importance) , mais si je commence à corriger le code je n'ai pas envie de le refaire chaque fois qu'il y aura une autre partie du code qui arrive

A te lire

Pour info : Ton filtre n'agit pas sur la bonne colonne

il faut

col = ComboBox7.ListIndex + 2
Banzai64 a écrit :

Bonjour

J'avais commencé à regarder ton code mais celui-ci est incomplet

Il me faudrait le code complet avec des données bidons( cela n'a aucune importance) , mais si je commence à corriger le code je n'ai pas envie de le refaire chaque fois qu'il y aura une autre partie du code qui arrive

A te lire

Pour info : Ton filtre n'agit pas sur la bonne colonne

il faut

col = ComboBox7.ListIndex + 2

J'ai pas compris ceux que tu voulais me dire , donc j'ai simplifier au maximum le log pour n'avoir que les codes utilisée

le voici :

Comme ont peut le voir j'ai appliquer un filtre sur la 1er colonne pour n'afficher que la ligne 15 et 20 , cependant lorsque je lance la macro la Listview m'affiche les donnée de la ligne 15 à la ligne 20 .

J'espère avoir était un peut plus clair.

Mikhail

Banzai64 a écrit :

Bonjour

A voir

Heu toujours pas compris pourquoi tu à utilisé l'avant dernier fichier ?

En faite je cherche juste à avoir le résultat d'un filtre tableau dans une listview.

Bonjour

scorpioRG a écrit :

Heu toujours pas compris pourquoi tu à utilisé l'avant dernier fichier ?

Parce que dans la dernière version tu as supprimé les CBB : Pas facile pour faire des tests

scorpioRG a écrit :

En faite je cherche juste à avoir le résultat d'un filtre tableau dans une listview.

Oui et cela ne fonctionne pas dans le fichier que j'ai joint ?

Banzai64 a écrit :

Bonjour

scorpioRG a écrit :

Heu toujours pas compris pourquoi tu à utilisé l'avant dernier fichier ?

Parce que dans la dernière version tu as supprimé les CBB : Pas facile pour faire des tests

scorpioRG a écrit :

En faite je cherche juste à avoir le résultat d'un filtre tableau dans une listview.

Oui et cela ne fonctionne pas dans le fichier que j'ai joint ?

Tu est un chef , je viens de tester ton code et il marche à merveille .

Enfin juste un bug,

- quand le résultat du filtre est égale à la première ligne du tableau (ligne 11) la ListView n'affiche aucune valeur .

Merci pour cet aide rapide, précieuse et efficace

Bonjour

scorpioRG a écrit :

quand le résultat du filtre est égale à la première ligne du tableau (ligne 11) la ListView n'affiche aucune valeur .

Soit plus précis

J'ai fait un test en n'ayant qu'un paramètre unique dans une colonne et pas de soucis

Sauf la colonne 2 c'est à cause du format de cellule, passes le en standard

Voir fichier joint : Recherche sur colonne N° Intervention et Avancement

Banzai64 a écrit :

Bonjour

scorpioRG a écrit :

quand le résultat du filtre est égale à la première ligne du tableau (ligne 11) la ListView n'affiche aucune valeur .

Soit plus précis

J'ai fait un test en n'ayant qu'un paramètre unique dans une colonne et pas de soucis

Sauf la colonne 2 c'est à cause du format de cellule, passes le en standard

Voir fichier joint : Recherche sur colonne N° Intervention et Avancement

Regarde sur ce fichier :

J'ai modifier le code pour qu'il n'affiche seulement les valeurs filtrés à l'ouverture de l'UserForm et comme tu peut le voir la macro plante quand il n'y a que la ligne 11 à afficher , pour tout le reste ca marche parfaitement.

Bonjour

Essayes en initialisant la variable DerLig à la bonne valeur c'est à dire 105

Banzai64 a écrit :

Bonjour

Essayes en initialisant la variable DerLig à la bonne valeur c'est à dire 105

J'ai compris ce que tu voulait me dire du coup j'ai rajouter ce code

' DerLig = .Range("A" & Rows.Count).End(xlUp).Row

If DerLig = 11 Then DerLig = 12 Else

Comme cela ca marche parfaitement .

Sinon petite question de programmation : Vue que l'ensemble de mon logiciel va être crée sur un seul UserForm j'aimerait savoir si j'avais pas intérêt à rassembler mon code dans des modules pour évité de surchargé le code de mon UserForm ?

Merci encore

Mikhaïl

Bonjour

Que cela fonctionne tant mieux, mais normalement on y inscrit le numéro de la dernière ligne du tableau non filtré

scorpioRG a écrit :

Sinon petite question de programmation : Vue que l'ensemble de mon logiciel va être crée sur un seul UserForm j'aimerait savoir si j'avais pas intérêt à rassembler mon code dans des modules pour évité de surchargé le code de mon UserForm ?

Que cela soit dans le code de l'UserForm ou dans des modules pas grande importance en soi, juste une question d'organisation

Banzai64 a écrit :

Bonjour

Que cela fonctionne tant mieux, mais normalement on y inscrit le numéro de la dernière ligne du tableau non filtré

scorpioRG a écrit :

Sinon petite question de programmation : Vue que l'ensemble de mon logiciel va être crée sur un seul UserForm j'aimerait savoir si j'avais pas intérêt à rassembler mon code dans des modules pour évité de surchargé le code de mon UserForm ?

Que cela soit dans le code de l'UserForm ou dans des modules pas grande importance en soi, juste une question d'organisation

je vois ce que tu veux dire mais le problème est que mon tableau n'a aucune limite donc la valeur de la dernière ligne va changer.

Ok pour le code je vais tout mettre dans l'userform car je pense que ca restera quand même plus simple en cas de problème


Je suis entrain de crée l'interface du logiciel , cependant j'ai un gros problème au niveau du Contrôle Toolbar , je n'arrive pas a jouter des bouton à l'intérieur de celui-ci . J'ai d abord pensé à un problème de compatibilité du coup je vient de testé sur:

Un pc avec windows 7 et office 2007

Un pc avec windows vista et office 2007

Un pc avec windows XP et office 2003

Voici un screen une fois la toolbar insérer

apercu toolbar

Mikhail


Pourquoi mon topic n'est pas remonté alors que je viens de mettre une question? (celle avec la photo)

Bonjour,

Etudiant en maintenance industriel , j'entreprend de réaliser une GMAO sur excel . Et à travers plusieurs recherche , je suis tomber sur votre discutions à propos de la création d'une Gmao , je voudrais savoir si vous pourriez me fournir un exemplaire de la GMAO que vous avez réussi à mettre en place. Ou m'aider dans les début de la création de cette GMAO . Je vous rmercie

Rechercher des sujets similaires à "projet creation gmao"