gestion auto

sesa

XLDnaute Occasionnel
bonsoir à tous,

sur la feuille 2 intitulé "clio", le contrôle technique est annoncé pour 2010 sachant que la première date de circulation était du 07/05/2009.
alors j'ai dans la cellule C8 07/05/2010 ! comment faire pour afficher 2013 ?
pour info, j'ai récupéré ce fichier sur le fofo :eek:
merci
 

Pièces jointes

  • Parc auto test.xls
    61 KB · Affichages: 72

sesa

XLDnaute Occasionnel
Re : gestion auto

salut Bruno,

mais dans la workbook, ou faut il placer la formule magique :D

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "Stat 2012" Or ActiveSheet.Name = "Présentation" Then Exit Sub
For c = Cells(2 ^ 16, 4).End(xlUp).Row To Cells(14, 4).Row Step -1
If Cells(c, 4) = "CT" Then
Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 1, Month(Cells(c, 1)), Day(Cells(c, 1)))
GoTo Révision
End If
Next c
Cells(8, 3) = DateSerial(Year(Cells(4, 5)) + 1, Month(Cells(4, 5)), Day(Cells(4, 5)))
Révision:
For r = Cells(2 ^ 16, 4).End(xlUp).Row To Cells(14, 4).Row Step -1
If Cells(r, 4) = "Révision" Then
Cells(8, 6) = ((Cells(r, 2) + 30000) \ 30000) * 30000
Exit Sub
End If
Next r
Cells(8, 6) = ((Cells(5, 5) + 30000) \ 30000) * 30000
End Sub
 

sourcier08

XLDnaute Occasionnel
Re : gestion auto

Salut,

Merci BrunoM45 pour l'idée des 15 jours.

Si tu veux faire les modifs dans ta macro liée au bouton "Nouveau véhicule", tu remplaces les 2 lignes :

Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 1, Month(Cells(c, 1)), Day(Cells(c, 1)))


par


Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 5, Month(Cells(c, 1)), Day(Cells(c, 1)) - 15)
 

sesa

XLDnaute Occasionnel
Re : gestion auto

Salut,

Merci BrunoM45 pour l'idée des 15 jours.

Si tu veux faire les modifs dans ta macro liée au bouton "Nouveau véhicule", tu remplaces les 2 lignes :

Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 1, Month(Cells(c, 1)), Day(Cells(c, 1)))


par


Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 5, Month(Cells(c, 1)), Day(Cells(c, 1)) - 15)

Soucier,
dans la workbook, je ne vois qu'une seule ligne celle ci :

Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 1, Month(Cells(c, 1)), Day(Cells(c, 1)))

que j'ai remplacée comme dit sans effet.
est ce que tu peux me mettre le workbook en entier avec les modifs pour vérifier ?
merci
 

sourcier08

XLDnaute Occasionnel
Re : gestion auto

Tu as 2 fois la même ligne, observes bien le code :

salut Bruno,

mais dans la workbook, ou faut il placer la formule magique :D

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "Stat 2012" Or ActiveSheet.Name = "Présentation" Then Exit Sub
For c = Cells(2 ^ 16, 4).End(xlUp).Row To Cells(14, 4).Row Step -1
  If Cells(c, 4) = "CT" Then
    Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 5, Month(Cells(c, 1)), Day(Cells(c, 1))-15) '1ere ligne
    GoTo Révision
  End If
Next c
Cells(8, 3) = DateSerial(Year(Cells(4, 5)) + 5, Month(Cells(4, 5)), Day(Cells(4, 5))-15) '2nde ligne
Révision:
For r = Cells(2 ^ 16, 4).End(xlUp).Row To Cells(14, 4).Row Step -1
  If Cells(r, 4) = "Révision" Then
    Cells(8, 6) = ((Cells(r, 2) + 30000) \ 30000) * 30000
  Exit Sub
  End If
Next r
Cells(8, 6) = ((Cells(5, 5) + 30000) \ 30000) * 30000
End Sub

[EDIT - 21h19]
J'ai déjà apporté les corrections au code :

Cells(8, 3) = DateSerial(Year(Cells(4, 5)) + 5, Month(Cells(4, 5)), Day(Cells(4, 5))-15) '1ere ligne
Cells(8, 3) = DateSerial(Year(Cells(4, 5)) + 5, Month(Cells(4, 5)), Day(Cells(4, 5))-15) '2nde ligne
 
Dernière édition:

sesa

XLDnaute Occasionnel
Re : gestion auto

Désolé Sourcier, merci.
J'ai recopié ton code et effectué un test, ça marche.
Par contre, une fois la date du CT "5ans" réalisée, comment ajuster pour tous les 2 ans ?
A chaque fois Excel va me le calculer sur 5 ans ?
Y a t il un code à ajouter pour prendre en compte les 2 ans après le premier CT ?
 

sesa

XLDnaute Occasionnel
Re : gestion auto

Salut
Soucier, quand je souhaite enregistrer une "opération" sur un véhicule avec la feuille "présentation",
je sélectionne mon véhicule puis opération, je renseigne l'userform :
la date, kilométrage, nature opération "CT" qui va permettre de calculer le prochain contrôle technique,
le fournisseur qui intervient , la désignation et la facture.
En effet, pour chaque voiture nouvelle ou enregistrer, je serai amené à utiliser l'userform "présentation" en sélectionnant l'intervention qui a été réalisée.

En clair, quand je crée une nouvelle feuille pour une nouvelle voiture, je souhaiterais en fonction de la date première circulation que le CT (<5ans, ou >5ans) apparaisse en C8, chose fait par tes soins (avec 15 jours d'avance).
par contre, quand on fait une opération en mettant CT, le calcule doit se faire avec la cellule C8 afin de connaitre la prochaine visite, qui normalement se fera 2 ans après la première circulation.
Si tu veux à chaque fois que je renseigne une intervention, en utilisant CT sur l'userform, et bien la cellule C8 calcule le prochain CT mais pour 5ans ce qui est faux.
En espérant avoir donné plus d'info.
Au plaisir
 

sourcier08

XLDnaute Occasionnel
Re : gestion auto

Salut,


Les déplacements et modifications que j'ai apporté sont visibles entre plusieurs sauts de lignes.

J'ai déplacé la macro du Thisworkbook sur le bouton "nouveau véhicule".
Elle n'avait pas sa place là.
Ce qui donne :

Code:
Private Sub CommandButton3_Click()
Sheets("Modèle").Select
Cells.Copy
Sheets.Add
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False _
        , Transpose:=False
ActiveSheet.Name = InputBox("Nommez la feuille")





If ActiveSheet.Name = "Stat 2012" Or ActiveSheet.Name = "Présentation" Then Exit Sub
For c = Cells(2 ^ 16, 4).End(xlUp).Row To Cells(14, 4).Row Step -1
  If Cells(c, 4) = "CT" Then
    Cells(8, 3) = DateSerial(Year(Cells(c, 1)) + 5, Month(Cells(c, 1)), Day(Cells(c, 1)) - 15) '1ere ligne
   GoTo Révision
  End If
Next c
Cells(8, 3) = DateSerial(Year(Cells(4, 5)) + 5, Month(Cells(4, 5)), Day(Cells(4, 5)) - 15) '2nde ligne
Révision:
For r = Cells(2 ^ 16, 4).End(xlUp).Row To Cells(14, 4).Row Step -1
  If Cells(r, 4) = "Révision" Then
    Cells(8, 6) = ((Cells(r, 2) + 30000) \ 30000) * 30000
  Exit Sub
  End If
Next r
Cells(8, 6) = ((Cells(5, 5) + 30000) \ 30000) * 30000





Range("B3").Select
MsgBox "Vous pouvez compléter les renseignements"
Unload Me
End Sub

J'ai ensuite ajouté une commande dans ta macro "ok" de l'userform2.

Code:
Private Sub CommandButton1_Click()
If Controls("textbox2") = "" Then
MsgBox "Indiquez la date"
Controls("textbox2").SetFocus
Exit Sub
ElseIf Controls("textbox3") = "" Then
MsgBox "Indiquez le kilometrage"
Controls("textbox3").SetFocus
Exit Sub
ElseIf Controls("textbox6") = "" Then
MsgBox "Indiquez le Fournisseur"
Controls("textbox6").SetFocus
Exit Sub
ElseIf Controls("textbox5") = "" Then
MsgBox "Indiquez le Montant"
Controls("textbox5").SetFocus
Exit Sub
End If





If ComboBox1.Value = "CT" Then
    Range("C8").Value = DateSerial(Year(Range("C8")) + 2, Month(Range("C8")), Day(Range("C8")) - 15)
End If








If Cells(2 ^ 16, 1).End(xlUp)(2).Row <> 14 Then
  Cells(2 ^ 16, 1).End(xlUp)(2).EntireRow.Insert
  Cells(2 ^ 16, 1).End(xlUp).EntireRow.Copy
  Cells(2 ^ 16, 1).End(xlUp)(2).PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End If
Cells(2 ^ 16, 1).End(xlUp)(2).Select
Selection = TextBox2.Value
Selection.Offset(0, 1) = TextBox3.Value
Selection.Offset(0, 2) = TextBox6.Value
Selection.Offset(0, 3) = ComboBox1.Value
Selection.Offset(0, 4) = TextBox4.Value
If ComboBox1.Value = "Carburant" Then
  Selection.Offset(0, 7) = TextBox5.Value
Else
  Selection.Offset(0, 6) = TextBox5.Value
End If   
        
Unload Me
End Sub


J'espère que ça te conviendra.


[EDIT]
Je viens de voir qu'on peut enlever la ligne :

If ActiveSheet.Name = "Stat 2012" Or ActiveSheet.Name = "Présentation" Then Exit Sub
 

Pièces jointes

  • Copie de Parc auto test.xls
    89 KB · Affichages: 72
  • Copie de Parc auto test.xls
    89 KB · Affichages: 70
  • Copie de Parc auto test.xls
    89 KB · Affichages: 75
Dernière édition:

sesa

XLDnaute Occasionnel
Re : gestion auto

bonsoir,

merci Sourcier pour ton travail et le temps passé.
je viens de tester et il en est résulté ceci :
quand je saisi pour l'auto clio révision (120000 klm), dans la cellule F8 le chiffre ne se change pas c'est à dire ne m'affiche pas la prochaine révision? comme je ne suis pas très fort dans les codes VBa, peux tu me donner la modif ?
 

sourcier08

XLDnaute Occasionnel
Re : gestion auto

Tout dépend de ce que tu vas mettre dans la textbox3 (kilométrage).

Que mets-tu dans ta textbox3 (kilométrage) ?

Mets-tu le kilométrage de la prochaine révison ou le kilométrage à parcourir jusqu'à la prochaine révision?


exemple 1:

240000 soit : je remplace le kilométrage actuel par celui-ci


exemple 2:

120000 soit : j'ajoute ceci au kilométrage déjà affiché en F8


En fonction de ce que tu désires, tu devras choisir entre :

Code:
Private Sub CommandButton1_Click()
If Controls("textbox2") = "" Then
MsgBox "Indiquez la date"
Controls("textbox2").SetFocus
Exit Sub
ElseIf Controls("textbox3") = "" Then
MsgBox "Indiquez le kilometrage"
Controls("textbox3").SetFocus
Exit Sub
ElseIf Controls("textbox6") = "" Then
MsgBox "Indiquez le Fournisseur"
Controls("textbox6").SetFocus
Exit Sub
ElseIf Controls("textbox5") = "" Then
MsgBox "Indiquez le Montant"
Controls("textbox5").SetFocus
Exit Sub
End If

'---------exemple 1------------
If ComboBox1.Value = "CT" Then
    Range("C8").Value = DateSerial(Year(Range("C8")) + 2, Month(Range("C8")), Day(Range("C8")) - 15)
ElseIf ComboBox1.Value = "Révision" Then
    Range("f8").Value = Range("f8") + TextBox3.Value
End If
'------------------------------

If Cells(2 ^ 16, 1).End(xlUp)(2).Row <> 14 Then
  Cells(2 ^ 16, 1).End(xlUp)(2).EntireRow.Insert
  Cells(2 ^ 16, 1).End(xlUp).EntireRow.Copy
  Cells(2 ^ 16, 1).End(xlUp)(2).PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End If
Cells(2 ^ 16, 1).End(xlUp)(2).Select
Selection = TextBox2.Value
Selection.Offset(0, 1) = TextBox3.Value
Selection.Offset(0, 2) = TextBox6.Value
Selection.Offset(0, 3) = ComboBox1.Value
Selection.Offset(0, 4) = TextBox4.Value
If ComboBox1.Value = "Carburant" Then
  Selection.Offset(0, 7) = TextBox5.Value
Else
  Selection.Offset(0, 6) = TextBox5.Value
End If


        
        
        
Unload Me
End Sub

ou

Code:
Private Sub CommandButton1_Click()
If Controls("textbox2") = "" Then
MsgBox "Indiquez la date"
Controls("textbox2").SetFocus
Exit Sub
ElseIf Controls("textbox3") = "" Then
MsgBox "Indiquez le kilometrage"
Controls("textbox3").SetFocus
Exit Sub
ElseIf Controls("textbox6") = "" Then
MsgBox "Indiquez le Fournisseur"
Controls("textbox6").SetFocus
Exit Sub
ElseIf Controls("textbox5") = "" Then
MsgBox "Indiquez le Montant"
Controls("textbox5").SetFocus
Exit Sub
End If

'---------exemple 2------------
If ComboBox1.Value = "CT" Then
    Range("C8").Value = DateSerial(Year(Range("C8")) + 2, Month(Range("C8")), Day(Range("C8")) - 15)
ElseIf ComboBox1.Value = "Révision" Then
    Range("f8").Value = TextBox3.Value
End If
'------------------------------

If Cells(2 ^ 16, 1).End(xlUp)(2).Row <> 14 Then
  Cells(2 ^ 16, 1).End(xlUp)(2).EntireRow.Insert
  Cells(2 ^ 16, 1).End(xlUp).EntireRow.Copy
  Cells(2 ^ 16, 1).End(xlUp)(2).PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
End If
Cells(2 ^ 16, 1).End(xlUp)(2).Select
Selection = TextBox2.Value
Selection.Offset(0, 1) = TextBox3.Value
Selection.Offset(0, 2) = TextBox6.Value
Selection.Offset(0, 3) = ComboBox1.Value
Selection.Offset(0, 4) = TextBox4.Value
If ComboBox1.Value = "Carburant" Then
  Selection.Offset(0, 7) = TextBox5.Value
Else
  Selection.Offset(0, 6) = TextBox5.Value
End If


        
        
        
Unload Me
End Sub
 

sesa

XLDnaute Occasionnel
Re : gestion auto

Re
Imaginons, je tape dans la textbox 120100 (prévu 120000) et comme "nature réparation" révision, je valide.
Tout à fait en F8 cela est déjà présent mais quand tu arrives à cette révision, je pensais que le code calculé à nouveau la prochaine révision.
sur ma feuille "clio", je devrais avoir le nouveau kilométrage pour la prochaine révision
qu'en penses tu ?
 
Dernière édition:

sourcier08

XLDnaute Occasionnel
Re : gestion auto

Si tu veux remplacer la valeur en F8 par la nouvelle alors tu dois prendre la seconde formulation.
 

Pièces jointes

  • Copie de Parc auto test.xls
    88.5 KB · Affichages: 78
  • Copie de Parc auto test.xls
    88.5 KB · Affichages: 78
  • Copie de Parc auto test.xls
    88.5 KB · Affichages: 85

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz