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
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"))
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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"))
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
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
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
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
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
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"))
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
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"))