XL 2019 Besoin d'aide sur diverses macros

darknigthmare

XLDnaute Nouveau
Bonjours à tous
voilà j'ai besoin de faire des tableaux avec quelque fonction macro, mais je n'arrive pas à avoir ce que je voudrais faire
je vais essayer vous décrire ce que j'aimerai avoir
-sur le tableau MaintenanceAfaire j'aimerai avoir B2:C2 & E2:H2 qui une fois que le bouton valider est appuyée cela efface les cellules et transpose les valeurs dans le tableau Historiqueoutillage sur la ligne B4:H4 et qu'à chaque fois qu'une nouvelle entrée est ajoutée, que la dernière valeur soit sur la B4:H5 et que la précédente soit sur la ligne du dessous, Etc. (tout en agrandissant le tableaux a chaque fois que ya plus de place)(chose qui est quasi fonctionnel, mais j'ai encore quelque problème sur la transposition des valeurs et de position
-si possible avec la validation des données que j'ai mises en place sur les cellules B2:H2 d'avoir la possibilité d'ajouter si une valeur qui n'existe pas est entrée de l'ajouter a la suite de ceux prises dans la plage mise en référence dans la feuille "reference'


feuille Historiqueoutillage :
-À chaque fois qu'une cellule en O dépasse les 7 utilisations la colonne passe en orange et passe sur le tableau principal "MaintenanceAfaire" (le bleu) dès que cela passe à 9 cela passe en rouge
-la quantité fabriquer + le nombre d'utilisations doivent s'incrémenter à chaque fois qu'une nouvelle ligne avec le même pt apparait


feuille Maintenance :
-avoir une copie du tableau bleu dynamique et un bouton à cote de chaque référence (bouton qui permet de remettre a zéro le nombre d'utilisations depuis la dernière maintenance ainsi que de remettre à zéro le nombre de poches depuis la dernière maintenance (O:p du tableau historique d'outillage),et de metre au jour d appuy du bouton la dernière maintenance (colonne (R) du tableau historique d outillage)

macro mail
-je n'arrive pas à faire apparaitre le tableau bleu dans le corps du message
(j'aimerai savoir s'il est possible une fois que le tableau bleu copier sur la feuille maintenance avec les boutons de remise à zéro peut être activé directement dans le mail envoyer (ex la personne reçoit le mail et clic sur le bouton remise a zéro de la ligne en question et cela applique la modification et tous ce que cela doit activer par la suite (sauvegarde comprise))

merci Beaucoup pour toute aide que vous pourriez m'apporter

 

Pièces jointes

  • MaintenanceDesOutillages.xlsm
    63.7 KB · Affichages: 13
Dernière édition:

fanfan38

XLDnaute Barbatruc
patrick
Bonjour
il n'y a pas de ligne vide dans les tableau structuré
les lignes vide sont dans maintenance qui n'est pas un tableau structuré
il faut ajouté une ligne en debut de tableau c'est pour ça que j'utilise c4
idem pour la ligne a supprimer: c'est la première
Mais je ne suis pas un as (au contraire) je ne fais que aider les forummeur du mieux que je peux)
Tu déclare comment R
set R=range("lenom de ton tableau").listobject.listrows.add.range'on ajoute une ligne
A+ François
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour darknightmare
Bonjour François ,Patrick
François :
Ou tu considères la Ligne
1° Comme une Ligne du tableau
tu mets :
VB:
Dim R as ListRow
et set R=range("lenom de ton tableau").listobject.listrows.Add
2° Ou tu Considères la Plage de Cellule de la Ligne !
tu mets :
Code:
Dim R as Range
set R=range("lenom de ton tableau").listobject.listrows.add.Range
Bonne Journée
Jean marie
 

ChTi160

XLDnaute Barbatruc
Oh ! tu es Vieux Lol;)
Mois 65 Lol
mais qu'est ce qu'on s'amuse Lol
ces tableau Structurés son vraiment pratiques !
as tu vu le Tuto de Pierre Fauconnier qui est très intéressant !
Un exemple qui concerne notre Sujet.
Le Lien :
plus généralement !
Le Lien :
Bonne Journée
François
Jean marie
 
Dernière édition:

darknigthmare

XLDnaute Nouveau
Bonjour merci a tous pour votre intérêt a mes petits problèmes
-Je me suis rendu compte aussi que pour plus de précisions la détection de date devrais être plus détaillé (heure :minute) car si dans la journée plusieurs changements sont apporté je ne suis pas sûr qu'il le détecte
-actuellement si j'ai bien compris la transposition des données sur le tableau maintenance prennent en compte la colonne machines, mais cela ne correspond pas forcément à ce qui est écrit sur la ligne (exemple si le tableau la majorité des outillages pt440044 sont faite sur la machine hf5 cela devrais apparaitre hf5 et non pas hf1 qui est sur la même ligne que le pt440044

deux nouvelles petites suggestions qui me sont apparu
-sur le tableau référence il y a des PT mit à part dans une colonne non-maintenance, ces pt la devrais pouvoir être sélectionnable dans l'user form production, mais qu'aucune formule de maintenance ne soit applicables (pour éviter que des personnes puisse les rajouter, car ils ne sont pas dans la liste)
-pour la partie mail, je n'arrive toujours pas à faire apparaitre le tableau maintenance dans le corps du message (si vous avez une petite idée)

merci bien pour l'intérêt et le temps que vous m'accorder
 

patricktoulon

XLDnaute Barbatruc
patrick
Bonjour
il n'y a pas de ligne vide dans les tableau structuré
les lignes vide sont dans maintenance qui n'est pas un tableau structuré
il faut ajouté une ligne en debut de tableau c'est pour ça que j'utilise c4
idem pour la ligne a supprimer: c'est la première
Mais je ne suis pas un as (au contraire) je ne fais que aider les forummeur du mieux que je peux)
Tu déclare comment R
set R=range("lenom de ton tableau").listobject.listrows.add.range'on ajoute une ligne
A+ François
bonjour @fanfan38
il faut ajouté une ligne en debut de tableau c'est pour ça que j'utilise c4
c'est là ou tu fait erreur
car avant de faire partie du Tableau structuré C4 fait partie d'une feuille
oui mais de quelle feuille !!??? si la feuille active est celle qui est concernée tout va bien mais si elle ne l'ai pas ben tu est chocolat

tandis que range("nomdutableau").listobject dans l'es names il n'en existe qu'un il ne peut donc y avoir ambiguité donc la propertie"listobject "fonctionne meme si la feuille concerné n'est pas celle qui est active

c'est donc bien comme ceci que l'on ajoute une ligne tout en determinant l'object range en meme temps
VB:
set R=range("lenom de ton tableau").listobject.listrows.add.range'on ajoute une ligne
R est bien le l'object range qui correspond a la ligne que tu viens d'ajouter
c'est simple , propre, net

si on veut ajouter a la fin c'est ".add" si on veut l'ajouter en 1 ere postion c'est ".add(1)"
;)
 

fanfan38

XLDnaute Barbatruc
Bonjour
Ch'ti 160 non j'avais pas vu... qu'est ce que je vais être moins con ce soir...lol
Merci de l'info patricktoulon
Pour les mails je compte sur vous (ce n'est pas ma tasse de thé)
Pour le reste:
Est ce la machine ou l'outillage qui va à la maintenance?
Pour quoi faire l'heure?
la liste en m5 et suivante est ajouté dans la liste des machines et il n'y aura pas de maintenance pour celle ci
J'ai fait la modif proposé par patricktoulon

A+ François
 

Pièces jointes

  • MaintenanceDesOutillagesv2(1).xlsm
    81.4 KB · Affichages: 3

darknigthmare

XLDnaute Nouveau
c'est l'outillage qui part en maintenance ,la machine sert a savoir sur laquelle l'outillage a été utiliser
nous somme en quart ,durant une journée il se peut qu' il y est plusieurs changements d'outillage

PS: il me semble que si une date est changée manuellement sur la ligne "dernière maintenance" cela ne transpose plus les valeur sur le tableaux maintenance ,depuis que j ai valider la première ligne de maintenance il ne veut plus me remettre une ligne sur ce dit tableaux
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonsoir ,
une autre question :
quel est le but de cette procédure :
VB:
Private Sub UserForm_Initialize()
  Dim Plage As Range, tablo, dl As Long, i As Long
  With Sheets("reference")
    Set Plage = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
    Me.ComboBox1.List = Plage.Value '-----> Ici On remplie le Combobox1 avec la Colonne "B"
    dl = .Range("M65536").End(xlUp).Row
    For i = 5 To dl
      Me.ComboBox1.AddItem .Range("M" & i).Value '----> Ici On ajoute au Combobox1 la Colonne "M"
    Next
    Set Plage = .Range("J2:J" & .Range("J65536").End(xlUp).Row)
    Me.ComboBox3.List = Plage.Value
  End With
  tablo = [T_outillage[Code Outillage]]
  Me.ComboBox2.List = tablo
End Sub
Pourquoi alimenter ce Combobox1 avec les deux Colonnes " Code et désignation " de l'outillage ?
Edit je viens de comprendre Lol
sur le tableau référence il y a des PT mit à part dans une colonne non-maintenance, ces pt la devrais pouvoir être sélectionnable dans l'user form production,
ne pas tenir compte du message ci dessus ! Lol
pour éviter les Ligne vides faire un test avant le AddItem
Code:
Private Sub UserForm_Initialize()
  Dim Plage As Range, tablo, dl As Long, i As Long
  With Sheets("reference")
  With .Range("T_outillage[machines]")
         For i = 1 To .Rows.Count
            If Not Trim(.Cells(i)) = Empty Then
                Me.ComboBox1.AddItem Trim(.Cells(i))
            End If
         Next i
 End With
    dl = .Range("M65536").End(xlUp).Row
    For i = 5 To dl
     With .Range("M" & i)
     If Not IsEmpty(.Value) Then Me.ComboBox1.AddItem .Value
     End With
    Next
    Set Plage = .Range("J2:J" & .Range("J65536").End(xlUp).Row)
    Me.ComboBox3.List = Plage.Value
  End With
  tablo = [T_outillage[Code Outillage]]
  Me.ComboBox2.List = tablo
End Sub
autre question:
est ce que tous les outillages peuvent servir sur touse les Machines ?
Bonne Soirée
Jean marie
 
Dernière édition:

darknigthmare

XLDnaute Nouveau
Bonsoir ,
une autre question :
quel est le but de cette procédure :
VB:
Private Sub UserForm_Initialize()
  Dim Plage As Range, tablo, dl As Long, i As Long
  With Sheets("reference")
    Set Plage = .Range("B2:B" & .Range("B65536").End(xlUp).Row)
    Me.ComboBox1.List = Plage.Value '-----> Ici On remplie le Combobox1 avec la Colonne "B"
    dl = .Range("M65536").End(xlUp).Row
    For i = 5 To dl
      Me.ComboBox1.AddItem .Range("M" & i).Value '----> Ici On ajoute au Combobox1 la Colonne "M"
    Next
    Set Plage = .Range("J2:J" & .Range("J65536").End(xlUp).Row)
    Me.ComboBox3.List = Plage.Value
  End With
  tablo = [T_outillage[Code Outillage]]
  Me.ComboBox2.List = tablo
End Sub
Pourquoi alimenter ce Combobox1 avec les deux Colonnes " Code et désignation " de l'outillage ?
Edit je viens de comprendre Lol

ne pas tenir compte du message ci dessus ! Lol
pour éviter les Ligne vides faire un test avant le AddItem
Code:
Private Sub UserForm_Initialize()
  Dim Plage As Range, tablo, dl As Long, i As Long
  With Sheets("reference")
  With .Range("T_outillage[machines]")
         For i = 1 To .Rows.Count
            If Not Trim(.Cells(i)) = Empty Then
                Me.ComboBox1.AddItem Trim(.Cells(i))
            End If
         Next i
 End With
    dl = .Range("M65536").End(xlUp).Row
    For i = 5 To dl
     With .Range("M" & i)
     If Not IsEmpty(.Value) Then Me.ComboBox1.AddItem .Value
     End With
    Next
    Set Plage = .Range("J2:J" & .Range("J65536").End(xlUp).Row)
    Me.ComboBox3.List = Plage.Value
  End With
  tablo = [T_outillage[Code Outillage]]
  Me.ComboBox2.List = tablo
End Sub
autre question:
est ce que tous les outillages peuvent servir sur touse les Machines ?
Bonne Soirée
Jean marie
oui et non
certain outillage sont unique a une machine propre, d'autre quant a eux peuvent être interchangeable sur une plage de machine

PS: il me semble que si une date est changée manuellement sur la ligne "dernière maintenance" cela ne transpose plus les valeur sur le tableaux maintenance ,depuis que j ai valider la première ligne de maintenance il ne veut plus me remettre une ligne sur ce dit tableaux
j'ai rajouter ceci depuis mon dernier test
 

darknigthmare

XLDnaute Nouveau
Re
Pour le déplacement des Boutons à droite des chiffres!

jean marie
merci bien :D

PS :
-est t'il possible de bloquer la modification des cellules (sans bloquer les actions faite par les macro)
-est t'il possible d activer par défauts sur mon book l'activation des macros (car travaillants avec des novice voire pire en informatique pour éviter qu'il ne fassent n'importe quoi
 
Dernière édition:

darknigthmare

XLDnaute Nouveau
après un petit test je suis tomber sur ce petit problème
si une valeur est rentrée dans le tableaux "historique d'outillage" et que c'est la 8 ieme valeur (donc que la valeur a été transposer sur le tableaux"maintenance") et que l'on supprimé la valeur( car on c'est tromper avec la commande "supprimer la dernière entrée") ,la valeur est toujours présente sur le tableaux maintenance

PS : je remets ici les requêtes toujours en cours
Je me suis rendu compte aussi que pour plus de précisions la détection de date devrais être plus détaillé (heure :minute) car si dans la journée plusieurs changements sont apporté je ne suis pas sûr qu'il le détecte
-actuellement si j'ai bien compris la transposition des données sur le tableau maintenance prennent en compte la colonne machines, mais cela ne correspond pas forcément à ce qui est écrit sur la ligne (exemple si le tableau la majorité des outillages pt440044 sont faite sur la machine hf5 cela devrais apparaitre hf5 et non pas hf1 qui est sur la même ligne que le pt440044

deux nouvelles petites suggestions qui me sont apparu
-sur le tableau référence il y a des PT mit à part dans une colonne non-maintenance, ces pt la devrais pouvoir être sélectionnable dans l'user form production, mais qu'aucune formule de maintenance ne soit applicables (pour éviter que des personnes puisse les rajouter, car ils ne sont pas dans la liste)
-pour la partie mail, je n'arrive toujours pas à faire apparaitre le tableau maintenance dans le corps du message (si vous avez une petite idée)
il me semble que si une date est changée manuellement sur la ligne "dernière maintenance" cela ne transpose plus les valeur sur le tableaux maintenance ,depuis que j ai valider la première ligne de maintenance il ne veut plus me remettre une ligne sur ce dit tableaux
-est t'il possible de bloquer la modification des cellules (sans bloquer les actions faite par les macro)
-est t'il possible d activer par défauts sur mon book l'activation des macros (car travaillants avec des novice voire pire en informatique pour éviter qu'il ne fassent n'importe quoi
macro mail
-je n'arrive pas à faire apparaitre le tableau bleu dans le corps du message
(j'aimerai savoir s'il est possible une fois que le tableau bleu copier sur la feuille maintenance avec les boutons de remise à zéro peut être activé directement dans le mail envoyer (ex la personne reçoit le mail et clic sur le bouton remise a zéro de la ligne en question et cela applique la modification et tous ce que cela doit activer par la suite (sauvegarde comprise))

voila aussi la dernière version du fichier

merci bien a tous et a toutes
 

Pièces jointes

  • MaintenanceDesOutillagesv2.xlsm
    111.7 KB · Affichages: 4

fanfan38

XLDnaute Barbatruc
Bonjour
si une valeur est rentrée dans le tableaux "historique d'outillage" et que c'est la 8 ieme valeur (donc que la valeur a été transposer sur le tableaux"maintenance") et que l'on supprimé la valeur( car on c'est tromper avec la commande "supprimer la dernière entrée") ,la valeur est toujours présente sur le tableaux maintenance
Réglé

il me semble que si une date est changée manuellement sur la ligne "dernière maintenance" cela ne transpose plus les valeur sur le tableaux maintenance ,depuis que j ai valider la première ligne de maintenance il ne veut plus me remettre une ligne sur ce dit tableaux
Réglé

Demain je ferai le blocage des cellules

Pour les mails ouvre un nouveau post (en précisant que c'est pour un mail): je ne sais pas faire

A+ François
 

Pièces jointes

  • MaintenanceDesOutillagesv2.xlsm
    117.6 KB · Affichages: 6

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth