Creation fichier ecxel pour pilotage industriel
bonjours a tous
déjà je tiens a remercier par avance toute les personne qui prendrons le temps de me lire et de m apporter leur connaissance et savoir
je vous présente mon projets
je souhaite crée un programme ecxel qui me permettrais de suivre le pilotage d une petite entreprise je sais qu il y a des programme tous fait sur le net ou autre mais je souhaite faire un truc gratuitement
dans mon programme j aimerais y inclure les options suivante:
page d accueil avec des indicateurs (suivi production sur un dizaine de machines style compteur de puissance)
d avoir un suivi sur l évolution des commandes (avance/retard)
un suivi de traçabilité
une base de donnée
un ordre de lancement (production sur machine )
un contrôle de matière brut a utiliser suivant la commande avec plusieurs critère
une gestion de stock de c est matière brut
un inventaire de produit fini en stock
j oublie certainement plusieurs truc que je souhaiterais ajouter par la suite pour le départ j ai commencer sur une vba avec un type de formulaire dont je bloque sur la formule complète j ai crée une liste déroulante avec plusieurs étape de la fabrication quand je saisie mes "commande" j aimerais que tout les champs renseigner s enregistre dans la feuille suivi commande ensuite pour valider les étapes fabrication etc j aimerais que dans se même formulaire saisir uniquement deux champs style reference et numéro de bf ainsi les autre champs se remplisse automatiquement ensuite une fois valider que sa me renseigne les champs dans la feuille correspondante a la liste déroulante afin de valider l opération
je vous joint mon fichier en cours
merci a vous d avoir pris le temps de me lire j espère
juste que mes explication ne sont pas trop confuse
Bonjour Odin,
Telle quelle, ta demande d'aide est très (trop) large : il s'agit d'un véritable projet qui nécessitera un investissement en temps important qui me semble difficile à consentir pour des contributeurs empathiques mais bénévoles...
Un conseil : plutôt que d'exposer ton projet de façon globale, postes sur ce forum des demandes d'aide abordant un point précis sur lequel tu bloques.
bonjour GVIALLES
j en suis conscient que mon projet est larges après je ne demande pas que l on me le fasse j ai exposer mon projet afin que l on me dise si c est possible de tout faire en forme de classeur ecxel ainsi que d avoir des idées extérieur
après je déposerais régulièrement des avancement de mon projet afin de partager avec vous
un petit coup de mains sur ma formule VBA svp j aimerais que quand je selectionne autre que commande dans ma liste deroulante que j entre uniquement la ref ainsi que le num de bf et que les autre champs se remplisse automatiquement svp
Private Sub txtref_AfterUpdate()
Dim commandeWS As Worksheet
Dim refRow As Variant
' Référence à la feuille "suivi de commande"
Set commandeWS = ThisWorkbook.Sheets("suivi de commande")
' Recherche de la référence dans les colonnes C et D de la feuille "suivi de commande"
Dim refColumn As Range
Set refColumn = Union(commandeWS.Columns("C"), commandeWS.Columns("D"))
refRow = Application.Match(Me.txtref.Value, refColumn, 0)
' Si la référence est trouvée, remplissez les autres champs
If Not IsError(refRow) Then
' Remplir le champ "client"
Me.txtclient.Value = commandeWS.Cells(refRow, "A").Value
Me.txtnumcde.Value = commandeWS.Cells(refRow, "E").Value
Me.txtdesig.Value = commandeWS.Cells(refRow, "F").Value
Me.txtquantite.Value = commandeWS.Cells(refRow, "G").Value
' Ajoutez d'autres champs à remplir automatiquement ici
Else
MsgBox "Référence inconnue.", vbExclamation
End If
End Sub
Private Sub CommandButton1_Click()
' Validation des données et enregistrement dans la feuille correspondante
Dim ws As Worksheet
Dim LastRow As Long
' Déterminer la feuille cible en fonction du choix dans la liste déroulante
Select Case Me.boxaction.Value
Case "Commande"
Set ws = ThisWorkbook.Sheets("suivi commande")
Case "fabrication"
Set ws = ThisWorkbook.Sheets("suivi commande fabrication")
Case "affutage"
Set ws = ThisWorkbook.Sheets("suivi commande affutage")
Case "rectif"
Set ws = ThisWorkbook.Sheets("suivi rectif ")
Case "coupe"
Set ws = ThisWorkbook.Sheets("suivi coupe")
Case "conventionnel"
Set ws = ThisWorkbook.Sheets("suivi conventionnel")
Case "Expedition"
Set ws = ThisWorkbook.Sheets("suivi expedition")
Case "Contrôle"
Set ws = ThisWorkbook.Sheets("suivi controle")
End Select
' Trouver la première ligne vide dans la colonne A de la feuille cible
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1
' Placer les données sur la feuille correspondante
With ws.Cells(LastRow, 1).Resize(1, 7)
.Value = Array(Me.txtdate.Value, Me.txtref.Value, Me.txtclient.Value, _
Me.txtnumbf.Value, Me.txtnumcde.Value, Me.txtdesig.Value, _
Me.txtquantite.Value)
End With
' Afficher un message de validation des données
MsgBox "Données validées avec succès !", vbInformation
' Réinitialiser les champs de texte (sauf txtdate)
Me.txtref.Value = ""
Me.txtclient.Value = ""
Me.txtnumbf.Value = ""
Me.txtnumcde.Value = ""
Me.txtdesig.Value = ""
Me.txtquantite.Value = ""
End Sub
Private Sub Worksheet_Activate()
' Remplit la TextBox avec la date actuelle lors de l'ouverture de la feuille
Me.txtdate.Value = Date
End Sub
re,
pourquoi utilisez-vous pas des tableaux structurés, cela est plus facile à maintenir ? La colonne A est maintenant part du tableau
Private Sub CommandButton1_Click()
' Validation des données et enregistrement dans la feuille correspondante
Dim Tbl As ListObject
' Déterminer la feuille cible en fonction du choix dans la liste déroulante
Select Case Me.boxaction.Value
Case "Commande": Set Tbl = ThisWorkbook.Sheets("suivi commande").Range("TBL_Suivi_Commande").ListObject
Case "fabrication": Set ws = ThisWorkbook.Sheets("suivi commande fabrication") 'la même chose pour les autres
Case "affutage": Set ws = ThisWorkbook.Sheets("suivi commande affutage")
Case "rectif": Set ws = ThisWorkbook.Sheets("suivi rectif ")
Case "coupe": Set ws = ThisWorkbook.Sheets("suivi coupe")
Case "conventionnel": Set ws = ThisWorkbook.Sheets("suivi conventionnel")
End Select
' Placer les données sur la feuille correspondante
Tbl.ListRows.Add.Range.Resize(1, 7).Value = Array(Me.txtdate.Value, Me.txtref.Value, Me.txtclient.Value, _
Me.txtnumbf.Value, Me.txtnumcde.Value, Me.txtdesig.Value, Me.txtquantite.Value)
' Afficher un message de validation des données
MsgBox "Données validées avec succès !", vbInformation
' Réinitialiser les champs de texte (sauf txtdate)
Me.txtref.Value = ""
Me.txtclient.Value = ""
Me.txtnumbf.Value = ""
Me.txtnumcde.Value = ""
Me.txtdesig.Value = ""
Me.txtquantite.Value = ""
End Sub
comment faire svp
Bonjour Odin,
Ici, une introduction aux tableaux structurés : https://excellons.org/tuto-tableaux-structures-une-introduction/
re, pour le reste
au lieu de .ListColumns("Client").DataBodyRange(refRow, 1).Value, on peut aussi utiliser ..DataBodyRange.cells( 1,"B").Value, par exemple (ou autres formats)
Private Sub txtref_LostFocus()
Dim refRow As Variant
' Recherche de la référence dans les colonnes C et D de la feuille "suivi de commande"
With ThisWorkbook.Sheets("suivi commande").Range("TBL_Suivi_Commande").ListObject
refRow = Application.Match(Me.txtref.Value, .ListColumns("reference").DataBodyRange, 0)
' Si la référence est trouvée, remplissez les autres champs
If Not IsError(refRow) Then
' Remplir le champ "client"
Me.txtclient.Value = .ListColumns("Client").DataBodyRange(refRow, 1).Value
Me.txtnumcde.Value = .ListColumns("num de commande").DataBodyRange(refRow, 1).Value
Me.txtdesig.Value = .ListColumns("designation").DataBodyRange(refRow, 1).Value
Me.txtquantite.Value = .ListColumns("quantité").DataBodyRange(refRow, 1).Value
' Ajoutez d'autres champs à remplir automatiquement ici
Else
MsgBox "Référence inconnue.", vbExclamation
End If
End With
End Sub
merci a vous pour vos réponse
en faite ce que je cherche a faire via ma vba est l operation suivante
j ai crée une liste déroulante qui correspond a des feuilles dans mon classeur (suivi commande, suivi fabrication , suivi expédition etc)
mon objectif est que lorsque que je sélectionne commande dans ma liste déroulante je remplisse tout les champs de mon formulaire âpres validation des données ceci sont enregistrer dans le suivi commande
mais j aimerais que lorsque je choisi un autre choix dans la liste déroulante que je puisse renseigner uniquement la reference et le numéro de commande et que les autre champs soit saisie automatiquement en allant chercher la ligne de commande qui correspond ceci aura pour but de valider l opération et ainsi faire avancer le processus de fabrication
j ai pas mal modifier mon fichier si vous voulez jeter un coups d œil la feuil1 devrait être ma future page d accueil
bon ben la un grand merci mais c est enervant je me casse la tete avec une vba a rallonge depuis une semaine et toi tu me sort deux ligne tout est regler
un GRAND GRAND merci a toi
re,
merci, merci.
Il y a une chose qu'il faut savoir, j'ai déplacé les macros du module de "feuil1" vers un module ordinaire, parce que comme çà, on peut utiliser un tableau comme ceci
range("Nom du Tableau").listobject et si vous voulez, vous pouvez déplacer ce tableau d'une feuille à une autre, no problem ! Mais dans le module d'une feuille, il faut toujours ajouter la feuille, donc sheets("nom de la feuille").range("nom du tableau").listobject.
Puis les numéros (index) des 6 premières colonnes sont déclarés "Public" au début du module1, donc vous pouvez les utilisez partout dans tous les modules ordinaires et modules d'une feuille. Si plus tard, vous insérez une colonne dans tous vos tableaux, vous n'avez qu'à modifier ce numéro.
d accord tu a repondu a mes questions que je me poser j aime bien comprendre les chose et non faire du copier coller
encors merci du bon boulot
si parts exemple j ai le champs designiation qui est plus ou moins la description de l outil est t il possible qu au moment du remplissage du formulair je recupere l info dans la base de donnees
re,
pour ces hexagons, j'ai commencé à leur donner une macro commune "Hexagon" et dépendant de l'hexagon, on fait quelque chose différent.
Concernant votre autre question, oui, on peut faire des recherches dans ce tableau. Par exemple client "444" et référence "444"
j ai essayer le formulaire le 444 qui renvoie a la designation est le client
dans mon cas j aurai besoin que la désignation est un liens uniquement avec la reference il faudrais qu il vienne chercher la désignation
dans la bas de donner
pour ce qui est des forme je l ai est attribuer a mes feuilles afin d aller les ouvrer directement pour un accès plus rapide je t envoie mon dossier
je boss dur
re,
avec maintenant un lien dans la cellule "designiation"
Je ne sais pas ce qu'il se passe quand vous triez le tableau des données ou si vous y supprimez des lignes, peut-être un double-clicque sera plus fiable.
Désolés à tous mais j ai actuellement quelque souci de connection internet (vive la fibre ) merci encors à vous
Pas de panique je travaille toujours sur mon projet j ai encors la chance d avoir accès à mon téléphone pour suivre vos conseil