UserForm
Résolu/Fermé
ti_mouton
Messages postés
143
Date d'inscription
vendredi 29 mai 2015
Statut
Membre
Dernière intervention
5 septembre 2020
-
24 juil. 2017 à 16:54
ti_mouton Messages postés 143 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020 - 25 juil. 2017 à 16:10
ti_mouton Messages postés 143 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020 - 25 juil. 2017 à 16:10
3 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
24 juil. 2017 à 17:12
24 juil. 2017 à 17:12
Bonjour Mouton, bonjour le forum,
Le jour, la semaine et le mois sont calculés en fonction de la date. Le fait de vouloir les calculer à l'ouverture de l'UserForm fait planter le code. Supprime (ou commente) ces trois lignes :
Si tu modifies la date ces données seront recalculées et renvoyées via le bouton Valider dans la ligne, dans leur colonne respective...
Le jour, la semaine et le mois sont calculés en fonction de la date. Le fait de vouloir les calculer à l'ouverture de l'UserForm fait planter le code. Supprime (ou commente) ces trois lignes :
semaine(CDate(TextBox1)) = .Range("C" & Ligne_Modif) Format(CDate(TextBox1), "mmmm") = .Range("D" & Ligne_Modif) Format(CDate(TextBox1), "dddd") = .Range("B" & Ligne_Modif)
Si tu modifies la date ces données seront recalculées et renvoyées via le bouton Valider dans la ligne, dans leur colonne respective...
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
24 juil. 2017 à 17:22
24 juil. 2017 à 17:22
Re,
Oui avec un exemple avec une dizaine de lignes de données !...
Oui avec un exemple avec une dizaine de lignes de données !...
ti_mouton
Messages postés
143
Date d'inscription
vendredi 29 mai 2015
Statut
Membre
Dernière intervention
5 septembre 2020
25 juil. 2017 à 09:13
25 juil. 2017 à 09:13
ThauTheme,
Voici mon fichier mis à jour avec plusieurs ligne de données, l'idée est de trier les données par date (colonne A) et par heure ((colonne E).
http://www.cjoint.com/c/GGzhnm75gYQ
Merci :)
Voici mon fichier mis à jour avec plusieurs ligne de données, l'idée est de trier les données par date (colonne A) et par heure ((colonne E).
http://www.cjoint.com/c/GGzhnm75gYQ
Merci :)
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
>
ti_mouton
Messages postés
143
Date d'inscription
vendredi 29 mai 2015
Statut
Membre
Dernière intervention
5 septembre 2020
25 juil. 2017 à 09:44
25 juil. 2017 à 09:44
Bonjour le fil, bonjour le forum,
Le code de tri :
Le code de tri :
Sub Macro2() Dim O As Worksheet Dim DL As Integer Set O = Worksheets("MASTER") DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row O.Sort.SortFields.Clear O.Sort.SortFields.Add Key:=Range("A3:A" & DL) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers O.Sort.SortFields.Add Key:=Range("E3:E" & DL) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With O.Sort .SetRange Range("A3:AA" & DL) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
ti_mouton
Messages postés
143
Date d'inscription
vendredi 29 mai 2015
Statut
Membre
Dernière intervention
5 septembre 2020
>
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
25 juil. 2017 à 10:35
25 juil. 2017 à 10:35
Merci le trie fonctionne !
Par contre je m'aperçois que j'ai un soucis au niveau des fonctions Semaine et Mois. Par exemple lorsque je rentre la date 01/03/2017 il renvoi le mois Janvier et la Semaine 1, comme si la date ete au format anglo-saxon alors que j'ai bien une ligne de code qui défini le format date en "dd/mm/yyyy". Une idée ?
Merci
Par contre je m'aperçois que j'ai un soucis au niveau des fonctions Semaine et Mois. Par exemple lorsque je rentre la date 01/03/2017 il renvoi le mois Janvier et la Semaine 1, comme si la date ete au format anglo-saxon alors que j'ai bien une ligne de code qui défini le format date en "dd/mm/yyyy". Une idée ?
Merci
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
>
ti_mouton
Messages postés
143
Date d'inscription
vendredi 29 mai 2015
Statut
Membre
Dernière intervention
5 septembre 2020
25 juil. 2017 à 10:50
25 juil. 2017 à 10:50
Re,
Oui ! Quand on renvoie une date d'un contrôle vers une cellule on s'expose à ce genre de problème. Pour éviter ça je transforme la date en un entier long avec DateSerial et je n'ai plus de problème.
Ton code modifié :
Oui ! Quand on renvoie une date d'un contrôle vers une cellule on s'expose à ce genre de problème. Pour éviter ça je transforme la date en un entier long avec DateSerial et je n'ai plus de problème.
Ton code modifié :
'valide Nouveau/valide Modif Private Sub CommandButton1_Click() Dim DerLig As Integer Dim D As Long 'déclare la variable D (Date) D = DateSerial(Year(Me.TextBox1.Value), Month(Me.TextBox1.Value), Day(Me.TextBox1.Value)) 'définit la date D en entier long With Worksheets("MASTER") If Ligne_Modif = 0 Then DerLig = .Range("A" & Rows.Count).End(xlUp).Row + 1 Else DerLig = Ligne_Modif End If .Range("A" & DerLig).Value = D 'renvoie la date D .Range("A" & DerLig).NumberFormat = "dd/mm/yyyy" 'formate la date D .Range("C" & DerLig) = semaine(D) 'semaide de D .Range("D" & DerLig) = Format(D, "mmmm") 'mois de D .Range("B" & DerLig) = Format(D, "dddd") 'jour de D .Range("E" & DerLig).Value = TextBox2.Value .Range("F" & DerLig).Value = ComboBox1.Value .Range("G" & DerLig).Value = ComboBox2.Value .Range("H" & DerLig).Value = ComboBox3.Value .Range("I" & DerLig).Value = ComboBox4.Value .Range("J" & DerLig).Value = ComboBox11.Value .Range("K" & DerLig).Value = TextBox3.Value .Range("L" & DerLig).Value = TextBox4.Value .Range("M" & DerLig).Value = TextBox5.Value .Range("N" & DerLig).Value = ComboBox5.Value .Range("O" & DerLig).Value = TextBox6.Value .Range("P" & DerLig).Value = TextBox7.Value .Range("Q" & DerLig).Value = ComboBox6.Value .Range("R" & DerLig).Value = TextBox8.Value .Range("S" & DerLig).Value = TextBox9.Value .Range("S" & DerLig).NumberFormat = "# ##0,00" .Range("T" & DerLig).Value = TextBox10.Value .Range("T" & DerLig).NumberFormat = "# ##0,00" .Range("U" & DerLig).Value = TextBox11.Value .Range("U" & DerLig).NumberFormat = "# ##0,00" .Range("V" & DerLig).Value = TextBox12.Value .Range("V" & DerLig).NumberFormat = "# ##0,00" .Range("W" & DerLig).Value = ComboBox7.Value .Range("X" & DerLig).Value = ComboBox8.Value .Range("Y" & DerLig).Value = ComboBox9.Value .Range("Z" & DerLig).Value = ComboBox10.Value .Range("AA" & DerLig).Value = TextBox13.Value End With Unload Me End Sub
ti_mouton
Messages postés
143
Date d'inscription
vendredi 29 mai 2015
Statut
Membre
Dernière intervention
5 septembre 2020
>
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
25 juil. 2017 à 16:10
25 juil. 2017 à 16:10
Impec ! Merci beaucoup
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 778
Modifié le 24 juil. 2017 à 17:28
Modifié le 24 juil. 2017 à 17:28
Bonjour,
Dans l'initialisation du formulaire, c'est cette partie du code qui est en cause:
Elle n'a jamais pu fonctionner écrite ainsi !!!
Et je ne vois pas ce que tu voudrais faire.
Cordialement
Patrice
Dans l'initialisation du formulaire, c'est cette partie du code qui est en cause:
semaine(CDate(TextBox1)) = .Range("C" & Ligne_Modif) Format(CDate(TextBox1), "mmmm") = .Range("D" & Ligne_Modif) Format(CDate(TextBox1), "dddd") = .Range("B" & Ligne_Modif)
Elle n'a jamais pu fonctionner écrite ainsi !!!
Et je ne vois pas ce que tu voudrais faire.
Cordialement
Patrice
24 juil. 2017 à 17:17
Merci pour ta réponse ça fonctionne parfaitement ! Saurais tu également m'aider pour écrire une ligne de code qui permettrait de trier les données de la feuille excel en fonction de la date ?
Merci :)