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 !
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
comprends pourquoi maintenant, car en prenant des rdv pour le mois de juillet,
excel affiche la semaine correspondante à ce mois et doit générer les autres en cachées...enfin je pense 😕
voici le fichier avec les modifs faites mais une erreur intervient lors de la validation du rdv
aussi merci de m'en dire plus sur "la combobx" toujours pas saisi pour aller faire apparaitre la liste "heure rdv"
vous remerciant
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
ç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
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.
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
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🙄
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
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
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
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
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!
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
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
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
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
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.
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
- 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