Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

date automatique dans la feuille

3 réponses
Avatar
magic-dd
bonjour

dans mon programme de compte, j'ai un userform pour les operations
fixes (UsfOpeFix)

celui ci comporte une texboxe pour la date (Tdate)

quand je mets la date ( ex le 21) sans le mois puisque les operations
se feront le meme jour mais pas avec le meme mois j'aimerai que lors
de ma recopie j'ai en fonction de la recopie de la date par ex 21/01
sur janvier, 21/02 sur fevrier etc


voici le code de ce que j'ai actuellement

Sub feu()
Dim Ctrl As Control
Dim fin As Integer
Dim Feuille As String

Feuille =3D ActiveSheet.Name


For Each Ctrl In UsfOpeFix.Controls
If TypeName(Ctrl) =3D "CheckBox" Then
If Ctrl.Value =3D True Then
With ThisWorkbook
With Sheets(Ctrl.ControlTipText)
.Activate
.Range("B65536").End(xlUp).Offset(1, 0).Value
=3D UsfOpeFix.Tdate.Value
.Range("B65536").End(xlUp).Offset(0, 1).Value
=3D UsfOpeFix.Ttype.Value
.Range("B65536").End(xlUp).Offset(0, 2).Value
=3D UsfOpeFix.Tops.Value
.Range("B65536").End(xlUp).Offset(0, 3).Value
=3D UsfOpeFix.Tdeb.Value
.Range("B65536").End(xlUp).Offset(0, 4).Value
=3D UsfOpeFix.Tcred.Value
fin =3D .Range("G65536").End(xlUp)(2).Row
.Range("G" & fin).Formula =3D "=3D$G$3-SUM(E$2:E"
& fin & ")+SUM(F$2:F" & fin & ")"
End With
End With
Ctrl.Value =3D False 'On efface la s=E9lection
End If
End If
Next Ctrl


UsfOpeFix.Tdate.Value =3D ""
UsfOpeFix.Ttype.Value =3D ""
UsfOpeFix.Tops.Value =3D ""
UsfOpeFix.Tdeb.Value =3D ""
UsfOpeFix.Tcred.Value =3D ""

If Application.CountA(Feuil1.Range("D:D")) > 2 Then
FormSaisie.BoxLibell=E9.RowSource =3D "DONNEES!D3:D" &
Application.CountA(Feuil1.Range("D:D")) ' OK C BON

If Application.CountA(Range("G:G")) > 2 Then
FormSupression.BoxListe.RowSource =3D "B5:F" &
Application.CountA(Range("G:G"))


Sheets(Feuille).Activate


End Sub

merci

3 réponses

Avatar
Papyjac
Bonjour magic-dd,

Je ne sais pas ce que tu sais pas faire,
Si tu saisis 21 et que tu veux 21/01/08
Le plus simple est d'utiliser la formule DateSerial(year(now()),
month(now()), 21)


--
Papyjac


"magic-dd" a écrit :

bonjour

dans mon programme de compte, j'ai un userform pour les operations
fixes (UsfOpeFix)

celui ci comporte une texboxe pour la date (Tdate)

quand je mets la date ( ex le 21) sans le mois puisque les operations
se feront le meme jour mais pas avec le meme mois j'aimerai que lors
de ma recopie j'ai en fonction de la recopie de la date par ex 21/01
sur janvier, 21/02 sur fevrier etc


voici le code de ce que j'ai actuellement

Sub feu()
Dim Ctrl As Control
Dim fin As Integer
Dim Feuille As String

Feuille = ActiveSheet.Name


For Each Ctrl In UsfOpeFix.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
With ThisWorkbook
With Sheets(Ctrl.ControlTipText)
.Activate
.Range("B65536").End(xlUp).Offset(1, 0).Value
= UsfOpeFix.Tdate.Value
.Range("B65536").End(xlUp).Offset(0, 1).Value
= UsfOpeFix.Ttype.Value
.Range("B65536").End(xlUp).Offset(0, 2).Value
= UsfOpeFix.Tops.Value
.Range("B65536").End(xlUp).Offset(0, 3).Value
= UsfOpeFix.Tdeb.Value
.Range("B65536").End(xlUp).Offset(0, 4).Value
= UsfOpeFix.Tcred.Value
fin = .Range("G65536").End(xlUp)(2).Row
.Range("G" & fin).Formula = "=$G$3-SUM(E$2:E"
& fin & ")+SUM(F$2:F" & fin & ")"
End With
End With
Ctrl.Value = False 'On efface la sélection
End If
End If
Next Ctrl


UsfOpeFix.Tdate.Value = ""
UsfOpeFix.Ttype.Value = ""
UsfOpeFix.Tops.Value = ""
UsfOpeFix.Tdeb.Value = ""
UsfOpeFix.Tcred.Value = ""

If Application.CountA(Feuil1.Range("D:D")) > 2 Then
FormSaisie.BoxLibellé.RowSource = "DONNEES!D3:D" &
Application.CountA(Feuil1.Range("D:D")) ' OK C BON

If Application.CountA(Range("G:G")) > 2 Then
FormSupression.BoxListe.RowSource = "B5:F" &
Application.CountA(Range("G:G"))


Sheets(Feuille).Activate


End Sub

merci




Avatar
magic-dd
oui j'y avais pense mais la j'avance un peu

voici le code



Sub feu()
Dim Ctrl As Control
Dim fin As Integer
Dim Feuille As String

Feuille = ActiveSheet.Name


For Each Ctrl In UsfOpeFix.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
With ThisWorkbook
With Sheets(Ctrl.ControlTipText)
.Activate

Select Case ActiveSheet.Range("L4")
Case 1 To 8
Select Case Len(Tdate) ' nombre de
caractere dans la Tdate
Case 1 ' un caractere soit de 1 à 9
Select Case (Tdate)
Case 1 To 9
Tdate = "0" & Tdate & "/" & "0" &
((ActiveSheet.Range("L4").Value) + 1)
End Select
Case 2
Select Case (Tdate)
Case 10 To 19
Tdate = Tdate & "/" & "0" &
((ActiveSheet.Range("L4").Value) + 1)
Case 20 To 31 ' du 20 au 30
Tdate = Tdate & "/" & "0" &
(ActiveSheet.Range("L4").Value)
End Select
End Select
Case 9
Select Case Len(Tdate)
Case 1
Select Case (Tdate)
Case 1 To 9
Tdate = "0" & Tdate & "/" &
((ActiveSheet.Range("L4").Value) + 1)
End Select
Case 2
Select Case (Tdate)
Case 10 To 19
Tdate = Tdate & "/" &
((ActiveSheet.Range("L4").Value) + 1)
Case 20 To 31 ' du 20 au 30
Tdate = Tdate & "/" & "0" &
(ActiveSheet.Range("L4").Value)
End Select
End Select

Case 10 To 12
Select Case Len(Tdate)
Case 1
Select Case (Tdate)
Case 1 To 9
Tdate = "0" & Tdate & "/" &
((ActiveSheet.Range("L4").Value) + 1)
End Select
Case 2
Select Case (Tdate)
Case 10 To 19
Tdate = Tdate & "/" &
((ActiveSheet.Range("L4").Value) + 1)
Case 20 To 31 ' du 20 au 30
Tdate = Tdate & "/" &
(ActiveSheet.Range("L4").Value)
End Select
End Select
End Select


.Range("B65536").End(xlUp).Offset(1, 0).Value
= UsfOpeFix.Tdate.Value
.Range("B65536").End(xlUp).Offset(0, 1).Value
= UsfOpeFix.Ttype.Value
.Range("B65536").End(xlUp).Offset(0, 2).Value
= UsfOpeFix.Tops.Value
.Range("B65536").End(xlUp).Offset(0, 3).Value
= UsfOpeFix.Tdeb.Value
.Range("B65536").End(xlUp).Offset(0, 4).Value
= UsfOpeFix.Tcred.Value
fin = .Range("G65536").End(xlUp)(2).Row
.Range("G" & fin).Formula = "=$G$3-SUM(E$2:E"
& fin & ")+SUM(F$2:F" & fin & ")"
End With
End With
Ctrl.Value = False 'On efface la sélection

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

comment recuperer la valeur d'origine de tdate ici

car a ce stade t date = tdate & "/" & le mois de ma feuille active

or j'aimerai qu'il soit egal a sa valeur d'origine soit par exemple 21
ou 25 ou 12


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

End If
End If
Next Ctrl


UsfOpeFix.Tdate.Value = ""
UsfOpeFix.Ttype.Value = ""
UsfOpeFix.Tops.Value = ""
UsfOpeFix.Tdeb.Value = ""
UsfOpeFix.Tcred.Value = ""

If Application.CountA(Feuil1.Range("D:D")) > 2 Then
FormSaisie.BoxLibellé.RowSource = "DONNEES!D3:D" &
Application.CountA(Feuil1.Range("D:D")) ' OK C BON

If Application.CountA(Range("G:G")) > 2 Then
FormSupression.BoxListe.RowSource = "B5:F" &
Application.CountA(Range("G:G"))


Sheets(Feuille).Activate




End Sub
Avatar
magic-dd
finalement j'ai bidouillé et mis une formule

Tdate = Left(Range("B65536").End(xlUp).Offset(0, 0).Value, 2)

et la tout roule

merci encore