Réalisation un ComboBox avecliste déroulante permettant de filter dynamiqu
Re
Un premier point que vous n'avez pas fait et que je vous avais écrit
1. Dans toutes les feuilles mois, vous devez supprimer les lignes vides. feuille Janvier de la ligne 15 à 214 (à moins que vous avez supprimé les données pour le poids du fichier ?). Idem pour les autres feuille Mois.
2. Gestionnaire de noms :
---- il y a des fautes d'orthographe dans le nom livraison et le mois.
---- il y a pas mal de REF# , on supprime ?
3. il y a une liaison vers un fichier Base moule. Normal cela ou il faut supprimer ?
Si c'est votre bon fichier que vous avez posté je peux faire les corrections. dites moi . Sinon je vous écris tout ce qu'il faut corriger
Pour le message, voyez les explications dans ce lien sur le même sujet --> https://forum.excel-pratique.com/s/goto/919839
J'ai supprimer beaucoup de fichiers dans la base pour la rendre légère. Si vous pouvez quelques corrections ou propositions ca va beaucoup m'aider .
merci
J'ai supprimer beaucoup de fichiers dans la base pour la rendre légère.
De fichiers ? ou de feuilles ?
Je peux vous faire les corrections mais cela implique que vous repartez du fichier que je vous donnerai. Dites moi
Merci de répondre aux questions posées dans les 3 points dans mon post précédent.
De fichiers ? ou de feuilles ?
-Oh faite c’est les feuilles que J'ai supprimées
Un premier point que vous n'avez pas fait et que je vous avais écrit
1. Dans toutes les feuilles mois, vous devez supprimer les lignes vides. feuille Janvier de la ligne 15 à 214 (à moins que vous avez supprimé les données pour le poids du fichier ?). Idem pour les autres feuille Mois.
- j’ai supprimé les données pour le poids du fichier
2. Gestionnaire de noms :
---- il y a des fautes d'orthographe dans le nom livraison et le mois.
- ok je vais les corriger
---- il y a pas mal de REF# , on supprime ?
- c’est des parties qui sont supprimées pour alléger le fichier
3. il y a une liaison vers un fichier Base moule. Normal cela ou il faut supprimer ?
- ce n’est pas Normal il faut supprimer ?
Si c'est votre bon fichier que vous avez posté je peux faire les corrections. dites moi . Sinon je vous écris tout ce qu'il faut corriger
-comme c’est un partie de la base que j’ai envoyé, je pense que si vous m’écrivez les parties à corriger ça serait bien.
Merci
1. Dans toutes les feuilles mois, vous devez supprimer les lignes vides. feuille Janvier de la ligne 15 à 214 (à moins que vous avez supprimé les données pour le poids du fichier ?). Idem pour les autres feuille Mois.
- j’ai supprimé les données pour le poids du fichier
Ok.
3. il y a une liaison vers un fichier Base moule. Normal cela ou il faut supprimer ?
- ce n’est pas Normal il faut supprimer ?
Si vous ne la supprimez pas, excel va vous envoyer un message qu'il y a une liaison avec un fichier externe. Vous avez dû faire un copier -coller du fichier BAse Moule.... vers votre fichier tel que posté
Voici les parties à corriger pour l'USF Livraison :
1. En dessous d'option explicit , rajoutez cette ligne
Dim flag As Boolean2. Code Enregistrer, à remplacer par celui-ci
Private Sub CmdEnregistrer_Click()
Dim mois As Byte
Dim lig As Integer
Dim sh As String
Call controle
If flag = True Then Exit Sub
On Error Resume Next
mois = Month(CDate(Me.TextDate.Value))
Select Case mois
Case 1: sh = "JANVIER"
Case 2: sh = "FEVRIER"
Case 3: sh = "MARS"
Case 4: sh = "AVRIL"
Case 5: sh = "MAI"
Case 6: sh = "JUIN"
Case 7: sh = "JUILLET"
Case 8: sh = "AOUT"
Case 9: sh = "SEPTEMBRE"
Case 10: sh = "OCTOBRE"
Case 11: sh = "NOVEMBRE"
Case 12: sh = "DECEMBRE"
Case Else
MsgBox "Mois non Valide", vbCritical, "Erreur mois"
Exit Sub
End Select
With Range("livraison_" & sh).ListObject
If .ListRows.Count = 0 Then 'trouver si ligne dans tableau structuré
.ListRows.Add: lig = 1 'si pas de ligne
Else: .ListRows.Add: lig = .ListRows.Count 'si lignes trouvees
End If
With .DataBodyRange
.Item(lig, 1) = CDate(Me.TextDate.Value) 'DATE
.Item(lig, 2) = Me.CombotypeMachine.Value 'MACHINE
.Item(lig, 3) = Me.ComboCode.Value 'CODE
.Item(lig, 4) = Me.TextEquipement.Value
.Item(lig, 5) = Me.ComboSection.Value 'SECTION
.Item(lig, 6) = Me.TextHeureEmission.Value 'Heure Emission
.Item(lig, 7) = Me.TextHeureLivraison.Value 'heure de livrason
.Item(lig, 8) = Me.TextNomsExecutants.Value 'GESTIONAIRES
End With
End With
End SubDésolé de revenir là dessus mais vous devez utiliser ce code pour vos tableaux structurés
J'ai réactivé la ligne 'item(lig, 4) pour l'équipement, la formule que vous avez dans votre tableau ne me semble pas utile puisque vous utilisez des codes et Userform.
3. Code controle. Ce code servira à vérifier que toutes les combo ou textbox sont complétées. Cela répond à votre demande dans un post précédent
Private Sub controle()
Dim ctl As Control
For Each ctl In UsFSaisieLivraison.Controls
If TypeName(ctl) <> "Label" Then
Select Case TypeName(ctl)
Case "TextBox"
If Controls(ctl.Name) = vbNullString Then
MsgBox "Veuillez compléter la rubrique " & Mid(ctl.Name, 5, Len(ctl.Name)), , "Rubrique incomplète": flag = True: Exit Sub
End If
Case "ComboBox"
If Controls(ctl.Name) = vbNullString Then
MsgBox "Veuillez compléter la rubrique " & Mid(ctl.Name, 6, Len(ctl.Name)), , "Rubrique incomplète": flag = True: Exit Sub
End If
End Select
End If
Next ctl
flag = False
End SubRem :
- Une fois terminé, je vous rappelle que vous ne devez avoir aucune ligne sans données dans votre tableau. Si ce n'est pas le cas, sélectionnez les lignes entre les colonnes S et AC, puis faite un click droite et choisir l'option "Supprimer" --> "Lignes de tableau" (vous devez absolument voir lignes de tableau. Si ce n'est pas le case c'est que vous êtes hors de tableau structuré)
- lorsque vous entrez des Heures, vous devez avoir cette structure hh:mm (ex : 11:00)
Faites un test avant de passer à l'USF Corrective
Faites un test avant de passer à l'USF Corrective
merci infiniment!
Bonjour
Même remarque que précédemment, lorsque vous voulez reprendre un message d'un post, utilisez l'icone Citation disponible dans la barre de menu et collez la phrase dans la fenêtre.
J'ai corrigé votre post
Ok on peut passer à l'USF Corrective ?
Cela va aller dans le même sens que pour la livraison.
Ok on peut passer à l'USF Corrective ?
ok bien sur, on peut continuer.
merci beaucoup pour le coaching !,
Dans l'USF corrective, modifiez ceci
1. En dessous d'option explicit , rajoutez la même ligne que dans le point 1 de mon post précédent --> https://forum.excel-pratique.com/s/goto/1202793
2. Code Enregistrer, à remplacer par celui-ci
Private Sub CmdEnregistrer_Click()
Dim mois As Byte
Dim lig As Integer
Dim sh As String
Call controle
If flag = True Then Exit Sub
'If Me.TextDate.Value = "" Then MsgBox "Aucune date saisie", vbCritical, "Saisie date": Exit Sub
On Error Resume Next
mois = Month(CDate(Me.TextDate.Value))
Select Case mois
Case 1: sh = "JANVIER"
Case 2: sh = "FEVRIER"
Case 3: sh = "MARS"
Case 4: sh = "AVRIL"
Case 5: sh = "MAI"
Case 6: sh = "JUIN"
Case 7: sh = "JUILLET"
Case 8: sh = "AOUT"
Case 9: sh = "SEPTEMBRE"
Case 10: sh = "OCTOBRE"
Case 11: sh = "NOVEMBRE"
Case 12: sh = "DECEMBRE"
Case Else
MsgBox "Mois non Valide", vbCritical, "Erreur mois"
Exit Sub
End Select
On Error GoTo 0
'Enregistrer les donnees sur la feuille
With Range("histo_" & sh).ListObject
If .ListRows.Count = 0 Then 'trouver si ligne dans tableau structuré
.ListRows.Add: lig = 1 'si pas de ligne
Else: .ListRows.Add: lig = .ListRows.Count 'si lignes trouvees
End If
With .DataBodyRange
.Item(lig, 1) = CDate(Me.TextDate.Value) 'DATE
.Item(lig, 2) = Me.ComboCode.Value 'CODE
.Item(lig, 3) = Me.TextEquipement.Value 'EQUIPEMENT
.Item(lig, 4) = Me.ComboSection.Value 'SECTION
.Item(lig, 5) = Me.CombotypeIntervention.Value 'TYPE INTERVENTION
.Item(lig, 6) = Me.TextDI.Value 'N0° BON INTERVENTION
.Item(lig, 7) = Me.TextAnomalie.Value 'ANOMALIE CONSTATEE
.Item(lig, 8) = Me.TextRapport.Value 'RAPPORT D'INTERVENTION
.Item(lig, 9) = Me.TextPiecesderechange.Value 'PIECES DE RECHANGE UTILISEES
.Item(lig, 10) = Format(CDate(Me.TextDebutIntervention.Value), "dd/mm/yyyy hh:mm") 'DATE & HEURE DEBUT INTERVENTION'
.Item(lig, 11) = Format(CDate(Me.TextFinIntervention.Value), "dd/mm/yyyy hh:mm") 'DATE & HEURE FIN INTERVENTION
.Item(lig, 15) = Me.TextNomsExecutants.Value 'EXECUTANTS
.Item(lig, 16) = Me.TextObsevation.Value 'Observation
End With
MsgBox "Données enregistrées avec succès", vbInformation, "Enregistrement"
End With
End Sub3. Code controle. Identique au code donné dans mon post précédent (https://forum.excel-pratique.com/s/goto/1202793) à l'exception de la ligne ci-dessous qui est à modifier pour reprendre le nom de l'USF Corrective
For Each ctl In UsFSaisieCorrectiveAtelier.ControlsRem :
- Remarque identique concernant les lignes sans données dans votre tableau. Donc à supprimer comme expliqué précédemment.
- lorsque vous entrez les dates et Heures, vous devez avoir cette structure dd/mm/yyyy hh:mm (ex : 15/01/2024 11:00)
Il vous faut un espace entre l'année et le premier caractère de l'heure pour respecter la structure
Faites un test pour voir si c'est ok afin de vérifier si vous avez une erreur. de mon coté cela fonctionne sans souci
Faites un test pour voir si c'est ok afin de vérifier si vous avez une erreur. de mon coté cela fonctionne sans souci
Super! c'est parfait, ca marche comme je l'imaginait, merci beaucoup, pour votre soutient.
Parfait !
A moins que je me trompe, il me semble que tout est bon ?
Dites moi
Si terminé pensez à
cordialement
A moins que je me trompe, il me semble que tout est bon ?
Dites moi
Oui, oui pour ce projet c'est ok, c'est ce que je cherchais.
mais pour deux autres projets que je posterai dans les jours a venir, j'aurai besoins de vos aides également.
une fois encore merci.
