Création fichier entretien véhicule et historique

Bonjour à tous,

Je suis entrain de créer un fichier excel pour le suivi d'entretien de mon véhicule. le but est de ne pas bloquer les cellules pour que chacun puisse y adapter sa voiture, sa moto, etc....

Voila comment se compose le fichier:

Le premier onglet et le sommaire, où l'on voit les retards d'entretien en rouge, le kilométrage et la date du prochain entretien.

Ce tableau est composé en partie: moteur, refroidissement, frein..Etc et chaque partie à son propre onglet.

Il y a en plus un onglet dépense. pour le suivi des factures.

Voila mon problème:

J'ai mis une colonne orange après les colonnes "effectué le" et "kilométrage"

Cette colonne orange doit avoir 2 fonctions:

La premiere une fonction validation: valide si la date et le kilométrage sont présent, sinon message d'erreur.

La seconde une fonction enregistrement, quand on clique sur la cellule orange, j'aimerais que la date et le kilométrage soient enregistrées dans l'onglet correspondant.

Pour exemple, je fais le "changement d'huile" dans la partie "moteur", le 2/3/2008" a "20000km". Je clique sur la cellule orange "validation", et les données "2/3/2008" et "20000km" s'enregistre dans l'onglet moteur sous le titre "changement d'huile".

A la seconde vidange, je rentre "3/6/2010" et "30000km", je clique sur validation, et ces données viennent s'enregistrer sous les précédentes dans l'onglet "moteur"

Si quelqu'un pouvait m'aider à faire cette fonction enregsitrement…ça serait super sympa, parce que j'avoue que cela dépasse mes compétences en excel.

Il faudrait juste me montrer un exemple que je le reproduise pour le reste du fichier.

21'952entretien-vfr.zip (16.24 Ko)

Encore merci de votre aide

Bonjour,

J'ai adapté un de mes fichiers où on fait un peu la même chose au boulot.

18'555entretien-vfr800.zip (20.12 Ko)

Il y a un bouton devant la ligne "changement d'huile", par dessus la case G6. Clic, et ca va incrémenter la feuille MOTEUR. Si tu mets d'autres valeurs, ca va se mettre en dessous des premières. Et ainsi de suite.

Dis moi ce que tu en penses. Pour voir la maco, fait clic droit sur un onglet/visualiser le code. puis va voir dans le module.

Ton onglet feuil1 (2), je l'ai renommé en "Général"

Les pros, est-ce que ca tient la route mon histoire?

Oui c'est excellent.

Je ne pensais pas qu'on pouvait faire des boutons comme sur PPT.

D'après le code , j'ai:

Public Sub changementhuile()
Sheets("MOTEUR").Visible = True

    Application.ScreenUpdating = False
    Sheets("Général").Range("E6:F6").Copy
    With Sheets("MOTEUR").Range("G65536").End(xlUp)(2)
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteFormats

   Application.CutCopyMode = False

      End With
End Sub

Tu le tapes en manuel ou tu fais directement ta macro?

Je n'ai aucune connaissance en visual basic, et très peu voir presque rien en macro...

tu pourrais m'expliquer ta manip?

PS: pour les futurs lecteurs qui réouvrent mon fichier, les liens hypertextes vers la page principale ne fonctionnent plus avec la nouvelle dénomination de l'onglet "général"

Merci pour cette réponse super rapide...et qui ré^pond bien à ma question

Content que ça te convienne. On peut ajouter un peu des conditions de validations, par exemple si une des deux cellules est vide, impossible de copier, enfin ce genre de truc.

Alors pour ce qui est de la macro, j'ai pompé ça sur un de mes fichiers, que j'ai élaboré avec ce forum en octobre 2008, jusqu'il y a peu. Un grand merci d'ailleurs à PLabrousse, qui m'a développé pas mal de mes codes.

En fait je n'y connais pas grand chose en VBA. Je sais adapter des macro existantes, et je m'aide surtout de l'aide dans Visual Basic.

En règle général, des chose simples comme ça, je m'en sors, sinon, il faut faire appel aux pros

Pour t'aider à comprendre ici :

  • Sheets : désigne les feuilles de ton classeur
  • Range : c'est l'étendu de ta sélection
  • Copy : copie
  • Paste = coller (spécial : les valeurs, et les formats)

Quand tu fais une macro, par exemple, si tu veux faire pareil pour un autre type de maintenance sur ton véhicule, tu fais insertion (dans visual basique) / procédure (sub). Tu la nommes (comme je l'ai fais avec l'huile). Une fois terminée (tu n'as qu'a adapter les feuilles et les cellules à mon avis), refais un bouton, ou copie/colle celui que j'ai fais, puis affecte lui ta macro (clic droit/affecter une macro).

Voià, à ton service!

Merci pour la traduction des termes...

Voila ce que j'ai essayé

1:copier coller ton bouton au dessus pour le faire sur le "niveau d'huile"

2: dans VBA:insertion/procédure/sub, que j'ai nommé "niveauhuile" (j'ai pas mis d'espace)

3: copier ton code dans la macro "niveauhuile"

4: modification Range ("E6:F6") par Range("E5:F5")....( ce que je veux copier)

5: je ne sais comment on modifie "Range("G65536")", c'est ok je viens de trouver pour ça aussi!!! (je suis trop content)

6:enregistrement de la macro "niveauhuile"

7: click droit sur le nouveau bouton, affectation de la macro "niveauhuile"

8:...Ca marche!!!!!!!!

Premier étape validé grace à toi!!!! tu n'es peut etre pas un pro, mais je te comprends bien!!

Deuxième étape...est ce que je peux me permettre...comment tu fais pour faire ta validation uniquement si les cellules sont saisies?

Avant je faisais dans Excel Outils/validation....mais je ne me rappelle plus trop.

Encore merci pour ton aide

Ecoute, je suis ravi de voir que mon aide te plaise, ca fait plaisir!

Pour les conditions, c'est très intuitif. Dans ta Public Sub changementhuile(), tu peux remplacer ton code par celui ci, où il y a juste des conditions au début. Le reste rien de changé :

Public Sub changementhuile()

'Condition de remplissage de la date
    Range("E6").Select
            If ActiveCell = "" Then
                MsgBox ("veuillez entrer la date de l'opération, puis validez avec la touche Entrée <--")
                Exit Sub
            End If

'Condition de remplissage des km
    Range("F6").Select
            If ActiveCell = "" Then
                MsgBox ("Renseigner le kilométrage du véhicule lors de l'opération")
                Exit Sub
            End If

Sheets("MOTEUR").Visible = True

    Application.ScreenUpdating = False
    Sheets("Général").Range("E6:F6").Copy
    With Sheets("MOTEUR").Range("G65536").End(xlUp)(2)
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteFormats

    Application.CutCopyMode = False

            End With
End Sub

Note que tu peux faire des penses-bête dans tes macro en mettant du texte précédé d'un apostrophe.

Les conditions "s'éctivent" lorsque tu clic sur "valider" alors qu'une case est vide.

Tu peux aussi demander à ce que le format soit celui souhaiter, afin d'etre homogène. Là ca se passe effectivement dans Excel. Sélectionne la cellule, puis Donnée / Validation. Là tu peux choisir de restreindre le type de données à mettre dans la cellule, par exemple que des données "dates", puis tu peux paramétrer des petits mot "d'engueulade" quand le format n'est pas bon, etc etc..

Voilà, bonne continuation, et bon développement

A ton service!

Encore merci pour ce code...qui fonctionne à merveille.

En réalité j'ai déjà du code durant mes études...donc je comprends assez la structure.

Pour ce qui est des annotations...merci du conseil...vu que je souhaite faire un fichier modulable par tous, je vais en mettre au maximum. J'aimerais que ce fichier soit diffusé sur un forum d'entre aide.

Une dernière question...(j'espère ne plus t'embéter après...), Le retard est uniquement attribué sur le dépassement du kilométrage. J'aimerais qu'un nombre jour de retard apparaisse si la date est dépassée.

En revanche si les 2 sont dépassés....Je prefere afficher uniquement le kilométrage (les deux serait top...mais pas possible à mon avis).

J'ai essayé avec des SI, OU, ET...mais je n'arrive pas à le matérialiser correctement sur excel....ce n'est peut etre pas la bonne solution.

Encore merci pour ton aide.

Rechercher des sujets similaires à "creation fichier entretien vehicule historique"