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

userform avec planning de livraison

  • Initiateur de la discussion Initiateur de la discussion sesa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sesa

XLDnaute Occasionnel
bonsoir

je souhaiterais créer un userform avec les éléments que vous trouverez dans le fichier sur la première feuille
sachant qu'il faudra diriger les prises de rendez-vous en fonction des semaines de l'année 2009 sur une nouvelle feuille
en espérant m'avoir fait comprendre
merci
 

Pièces jointes

Re : userform avec planning de livraison



Re Bonjour sesa, jeanpierre, alexga78, Excel-lent, le forum,

La réponse sur ton autre fil:
https://www.excel-downloads.com/threads/combobox.114082/

Bon week-end
 
Re : userform avec planning de livraison

re

j'ai essayé ce code :
Private Sub ComboBox3_Change()
With Sheets("Data")
ComboBox1.List = .Range("C2:C" & .Range("A65536").End(xlUp).Row).Value
End With
End Sub

et j'ai lancé l'userform et ma liste déroulante n'y est toujours pas
à vous lire
merci
 
Re : userform avec planning de livraison

ça se précise, ai pu renseigner deux combobox, par contre celle qui est destinée aux heures de rdv affiche l'heure en décimal;
aussi, j'ai une erreur d'exécution une fois tous les champs remplis
et des informations sur la feuille semaine 07 sont manquantes
en vous remerciant d'avance
ci-joint fichier
 

Pièces jointes

Re : userform avec planning de livraison

Bonjour sesa,

Il s'agit la d'un problème de format de ta combobox.

Une piste sur ce fil:
https://www.excel-downloads.com/threads/format-combobox-nombre.73694/
reagrde les remarques de Catrice pour contourner ce problème.


Edit: Pour les formats Heures
Private Sub ComboBox4_Change()
Combobox4.Value = Format(CDate(ComboBox4.Value), "hh:mm")
End Sub

De plus passe ta colonne D en format Texte, pour cela rajoute ' devant tes valeurs, ainsi dans ta liste déroulante tu auras bien le bon format et non des décimales.
 
Dernière édition:
Re : userform avec planning de livraison

Re,
aussi, j'ai une erreur d'exécution une fois tous les champs remplis
et des informations sur la feuille semaine 07 sont manquantes

Normal tu fais référence à des textbox qui n'existe pas dans ton usf comme celui ci:
.Range("C" & derlign) = TextBox3.Value
et celui-ci:
.Range("F" & derlign) = TextBox5.Value
Pour les parties manquantes, nomal, il transfert les données jusqu'au moment ou ça beug😉

Remplace ton code par ceci:
Code:
With Sheets("SEMAINE 0" & NumSemaine(TextBox2.Value))
derlign = Sheets("SEMAINE 0" & NumSemaine(TextBox2.Value)).Range("A65530").End(xlUp).Row + 1
.Activate
.Range("A1") = "Date de livraison prévue"
.Range("B1") = "Date RDV"
.Range("C1") = "Heure RDV"
.Range("D1") = "N° de commande"
.Range("E1") = "Fournisseur"
.Range("F1") = "Nbre de palettes"
.Range("G1") = "Personne qui a pris RDV"
.Range("A" & derlign) = CDate(Format(TextBox1.Value, "dd/mm/yyyy"))
.Range("B" & derlign) = CDate(Format(TextBox2.Value, "dd/mm/yyyy"))
[COLOR="Red"].Range("C" & derlign) = CDate(Format(ComboBox4.Value, "hh:mm"))[/COLOR]
.Range("D" & derlign) = ComboBox1.Value
.Range("E" & derlign) = ComboBox1.Value
[COLOR="red"].Range("F" & derlign) = ComboBox3.Value[/COLOR]
.Range("G" & derlign) = ComboBox2.Value
.Range("A1:G65000").Select

Et n'oublie pas ce que je t'ai mis dans le post précédent!! 😉
Pour le format de ta colonne D dans Data et pour ton combobox4_change

A te lire.
 
Re : userform avec planning de livraison

bonsoir alex67800 et le fil

J'ai changé le format des heures par ' et en effet ça marche
et dans la foulée j'ai changé une partie ducode de l'userform.

aussi, je suis allé sur le lien en effet cela m'a permis de comprendre comment faire pou renseigner la combo et je l'ai sauvegardé comme exemple.

par contre toujours pas réussi à remplir les zones manquantes de la feuille car erreur exécution 13

ci joint :


Private Sub ComboBox2_Change()

End Sub

Private Sub ComboBox3_Change()
With Sheets("Data")
ComboBox1.List = .Range("C2:C" & .Range("A65536").End(xlUp).Row).Value
End With
End Sub

Private Sub ComboBox4_Change()
ComboBox4.Value = Format(CDate(ComboBox4.Value), "hh:mm")
End Sub

Private Sub CommandButton2_Click()
Select Case MsgBox("Voulez vous quitter ?", vbYesNo Or vbInformation)
Case vbYes
Unload Me
Case vbNo
End Select
End Sub

Private Sub UserForm_Initialize()
With Sheets("Data")
ComboBox4.List = .Range("D2😀" & .Range("D65536").End(xlUp).Row).Value
ComboBox3.List = .Range("C2:C" & .Range("C65536").End(xlUp).Row).Value
ComboBox2.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
ComboBox1.List = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Value
End With
End Sub
Private Sub CommandButton1_Click()
Dim derligne As Integer
Dim c As Control
For Each c In Me.Controls
Select Case TypeName(c)
Case "TextBox", "ComboBox"
If c.Value = "" Then
MsgBox "Remplir toutes les zones SVP !", vbOKOnly
c.SetFocus
Exit Sub
End If
End Select
Next c
Set c = Nothing
On Error GoTo a
With Sheets("SEMAINE 0" & NumSemaine(TextBox2.Value))
a: If Err.Number = 9 Then
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "SEMAINE 0" & NumSemaine(TextBox2.Value)
End If
End With
With Sheets("SEMAINE 0" & NumSemaine(TextBox2.Value))
derlign = Sheets("SEMAINE 0" & NumSemaine(TextBox2.Value)).Range("A65530").End(xlUp).Row + 1
.Activate
.Range("A1") = "Date de livraison prévue"
.Range("B1") = "Date RDV"
.Range("C1") = "Heure RDV"
.Range("D1") = "N° de commande"
.Range("E1") = "Fournisseur"
.Range("F1") = "Nbre de palettes"
.Range("G1") = "Personne qui a pris RDV"
.Range("A" & derlign) = CDate(Format(TextBox1.Value, "dd/mm/yyyy"))
.Range("B" & derlign) = CDate(Format(TextBox2.Value, "dd/mm/yyyy"))
.Range("C" & derlign) = CDate(Format(ComboBox4.Value, "hh:mm"))
.Range("D" & derlign) = ComboBox1.Value
.Range("E" & derlign) = ComboBox1.Value
.Range("F" & derlign) = ComboBox3.Value
.Range("G" & derlign) = ComboBox2.Value
.Range("A1:G65000").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Columns.AutoFit
End With
Sheets("SEMAINE 0" & NumSemaine(TextBox2.Value)).Range("A1").Select
End With
Unload Me
Sheets("Data").Select
End Sub

A te lire
merci
 
Re : userform avec planning de livraison

Bonsoir sesa, le forum,

J'ai testé ton fichier joint avec les modifs proposé et pas de problème cela fonctionne très bien, y compris la création de nouvelles feuilles.
Regarde ci:
http://cjoint.com/?csa4iT3K0k

Bizarrement le fichier est très lourd alors qu'il ni à quasiment rien!!! Impossible à réduire. Mystère🙄

Bref tu constateras qu'il fonctionne très bien!
 
Re : userform avec planning de livraison

bonjour alex67800 et le forum,

Alex, ça fonctionne très, merci beaucoup !

j'ai modifié l'ordre de remplissage des colonnes allant de A à G, et pu tout faire marcher.Je suis content d'avoir réussi cette étape grâce à tous, voire même une colonne supplémentaire concernant le n° tel.🙂

Encore une requête :
Je voudrais mettre 2 calendriers :
1 pour la date de saisie de rdv et 1 autre pour la date de livraison prévue
d'abord peux tu me faire un exemple pour le premier et je tacherai en faire de même pour le second, le but est de pouvoir saisir plus rapidement mes Textbox

aussi, sur chaque feuille générée, rajouter une entête comme : "Planning de réception" (les marges de la feuille semaine 07 a été crée)
d'avance merci
cj joint le fichier
 

Pièces jointes

Re : userform avec planning de livraison

bonjour alex67800 et le forum,

Alex, ça fonctionne très, merci beaucoup !

j'ai modifié l'ordre de remplissage des colonnes allant de A à G, et pu tout faire marcher.Je suis content d'avoir réussi cette étape grâce à tous, voire même une colonne supplémentaire concernant le n° tel.🙂

Encore une requête :
Je voudrais mettre 2 calendriers :
1 pour la date de saisie de rdv et 1 autre pour la date de livraison prévue
d'abord peux tu me faire un exemple pour le premier et je tacherai en faire de même pour le second, le but est de pouvoir saisir plus rapidement mes Textbox

aussi, sur chaque feuille générée, rajouter une entête comme : "Planning de réception" (les marges de la feuille semaine 07 a été crée)
d'avance merci
cj joint le fichier
 
Re : userform avec planning de livraison

j'ai oublié le fichier avec les calendriers mais erreur d'exécution :

Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Calendrier.Show
End Sub
Private Sub TextBox2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Calendrier.Show
End Sub

voir poste précédent.
 

Pièces jointes

Re : userform avec planning de livraison

Bonsoir sesa,

Personnellement j'utilise des contrôles Dtpicker, c'est un calendrier en fait, en lieu et place des TextBox.
L'avantage est qu'il ne nécessite aucun usf supplémentaire, et permet de choisir directement une date, d'autant qu'il arrive que calendar ne fonctionne pas sur certain pc, ce qui a été mon cas en ouvrant ton fichier 😉
Je t'en ais mis un pour exemple pour ta date de livraison.

Il a fallut rajouter ceci à l'userform_initialize:
Code:
DTPicker1.Value = Date
Cela a pour effet de proposer par défaut la date du jour!

Puis remplacer cette ligne:

Code:
.Range("A" & derlign) = CDate(Format(TextBox1.Value, "dd/mm/yyyy"))
par celle-ci:
Code:
.Range("A" & derlign) = CDate(Format([COLOR="Red"]DTPicker1.Value[/COLOR], "dd/mm/yyyy"))

Je te laisse le soin de remplacer ton textbox2 par un dtpicker, mais attention il te faudra changer toute les lignes se rapportant à TextBox2 en Dtpicker2 une fois celui-ci créé.
aussi, sur chaque feuille générée, rajouter une entête comme : "Planning de réception" (les marges de la feuille semaine 07 a été crée)
Il te suffit des fois d'utiliser l'enregistreur de macro de faire naturellement tes manips, puis l'arrêter et regarder ce que cela te donne comme code. Delà l'adapter à ton besoin, ce que j'ai fait et me donne ceci une fois adapter:
Code:
Sub entete()
'
' entete Macro
' Macro enregistrée le 17/02/2009 par Alex67800
'

'
   With Sheets("SEMAINE 0" & NumSemaine(UserForm1.TextBox2.Value)).PageSetup

        .CenterHeader = "&""Calibri,Gras""&16PLANNIG DE RECEPTION"
        .HeaderMargin = Application.InchesToPoints(0.3)
    End With
End Sub

Tu le trouveras dans le module 2

P.S: pour rajouter un contrôle Dtpicker, dans VBA, Boîte à outils>>>>>click droit sur un des contrôle éxistant>>>>>contrôles supplémentaires>>>>>cocher Microsoft Date and Time Picker control 6.0.

Tu les trouveras ainsi dans ta boîte à outils et tu pourras le rajouter à ton usf en lieu et place du TextBox2

A te lire!
 

Pièces jointes

Re : userform avec planning de livraison

bonjour Alex 67800, et le forum

Tout d'abord merci de ta collaboration
Après avoir suivi tes conseils, modification de chaque ligne concernant "Textbox 2 en DTPicker2.Value = Date , désolé mais j'ai encore une erreur, ci joint code :

Private Sub CommandButton2_Click()
Select Case MsgBox("Voulez vous quitter ?", vbYesNo Or vbInformation)
Case vbYes
Unload Me
Case vbNo
End Select
End Sub

Private Sub UserForm_Initialize()
DTPicker1.Value = Date
DTPicker2.Value = Date
With Sheets("Data")
ComboBox4.List = .Range("D2😀" & .Range("D65536").End(xlUp).Row).Value
ComboBox3.List = .Range("C2:C" & .Range("C65536").End(xlUp).Row).Value
ComboBox2.List = .Range("A2:A" & .Range("A65536").End(xlUp).Row).Value
ComboBox1.List = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Value
End With
End Sub
Private Sub CommandButton1_Click()
Dim derligne As Integer
Dim c As Control
For Each c In Me.Controls
Select Case TypeName(c)
Case "TextBox", "ComboBox"
If c.Value = "" Then
MsgBox "Remplir toutes les zones SVP !", vbOKOnly
c.SetFocus
Exit Sub
End If
End Select
Next c
Set c = Nothing
On Error GoTo a
With Sheets("SEMAINE 0" & NumSemaine(DTPicker2.Value = Date))
a: If Err.Number = 9 Then
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "SEMAINE 0" & NumSemaine(DTPicker2.Value = Date)
End If
End With
With Sheets("SEMAINE 0" & NumSemaine(DTPicker2.Value = Date))
entete
derlign = Sheets("SEMAINE 0" & NumSemaine(DTPicker2.Value = Date)).Range("A65530").End(xlUp).Row + 1
.Activate
.Range("A1") = "Date de livraison prévue"
.Range("B1") = "Date RDV"
.Range("C1") = "Heure RDV"
.Range("D1") = "N° de commande"
.Range("E1") = "Fournisseur"
.Range("F1") = "Nbre de palettes"
.Range("G1") = "Personne qui a pris RDV"
.Range("H1") = "Numéro de téléphone du contact"
.Range("A" & derlign) = CDate(Format(DTPicker1.Value, "dd/mm/yyyy"))
.Range("B" & derlign) = CDate(Format(DTPicker2.Value, "dd/mm/yyyy"))
.Range("C" & derlign) = CDate(Format(ComboBox4.Value, "hh:mm"))
.Range("D" & derlign) = TextBox4.Value
.Range("E" & derlign) = ComboBox1.Value
.Range("F" & derlign) = ComboBox3.Value
.Range("G" & derlign) = ComboBox2.Value
.Range("H" & derlign) = TextBox5.Value

With .Range("A1:H" & derlign)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.Columns.AutoFit
End With
'Sheets("SEMAINE 0" & NumSemaine(DTPicker2.Value = Date)).Range("A1").Select
End With
Unload Me
Sheets("Data").Select
End Sub

A te lire
 
Re : userform avec planning de livraison


RE Alex,
tu es sûr qu'un Textbox peut utiliser le DTPicker comme pour la Combobox réalisé par tes soins
 
Re : userform avec planning de livraison

Bonsoir Sesa,
tu es sûr qu'un Textbox peut utiliser le DTPicker comme pour la Combobox réalisé par tes soins
Un Dtpicker et un Textbox sont 2 contrôles totalement différents.
Après avoir suivi tes conseils, modification de chaque ligne concernant "Textbox 2 en DTPicker2.Value = Date , désolé mais j'ai encore une erreur, ci joint code :

Je n'ai jamais dis cela. Le Dtpicker2.Value = Date, il ne faut mettre ceci que dans usf_initialize, de ce fait le Dtpicker est de fait = Date, donc pas nécessaire de la rappeler.

Rappel toi comment j'ai programmé dans ton CommandButton1 le DtPicker1

L'erreur ne viendrait-elle pas de là,
With Sheets("SEMAINE 0" & NumSemaine(DTPicker2.Value = Date))
ActiveSheet.Name = "SEMAINE 0" & NumSemaine(DTPicker2.Value = Date)
derlign = Sheets("SEMAINE 0" & NumSemaine(DTPicker2.Value = Date)).Range("A65530").End(xlUp).Row + 1
.Activate
Si tu regardes bien avec textbox2 il ni avait pas = Date
With Sheets("SEMAINE 0" & NumSemaine(TextBox2.Value))
entete

Tu peux supprimer cette ligne:
'Sheets("SEMAINE 0" & NumSemaine(DTPicker2.Value = Date)).Range("A1").Select
Il y a une apostrophe devant donc est considéré comme un commentaire ( je sais c'est moi qui l'avait fait 😀).

Edit: Au fait de quel combobox réalisé par mes soins parles-tu? J'ai créé un DTpicker et non une combobox pour textbox lol. Le Textbox1 je l'ai supprimé!!
Il te faut donc créer un deuxième DtPicker, en lieu et place du TextBox2 comme je te l'ai expliqué sur le précédent post.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
788
Réponses
40
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…