Comment suivant une date remettre à 1 une incrémentation en vba

Fermé
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 - Modifié par baladur13 le 18/05/2016 à 13:25
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 18 mai 2016 à 12:50
Bonjour,

Je me fait un projet, j'ai une feuille avec une Base de donnée, j'ai un userform qui permet une fois enregistrer les données incrément un à chaque saisi sur la cellule A8.
Mais j'aimerais suivant une année nouvelle que l'incrémentation reprenne à 1 à partir de la nouvelle année.

donc sur la feuille de Base de Donnée, aprés saisi avec l'userform.
quand la ligne est comme tel en
A8 B8
se mettra à 1 quand 1 02/03/2017 nouvelle année
2 05/10/2016 même année
dois se remettre à 1 02/02/2016 quand nouvelle année
3 25/04/2015 même année
2 12/03/2015 même année
première saisi 1 01/02/2015 même année

pour résumer, tant que l'année change pas cela s'incrément normalement, mais quand l'année change le premier reprenne l'ordre à 1 puis incrément normalement jusqu'à une prochaine nouvelle année, et, ainsi de suite.
Est-ce possible à réaliser.....?

voici mon projet : https://www.cjoint.com/c/FEqlEW6SFa0
A voir également:

5 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
17 mai 2016 à 05:11
Bonjour
remplacez
[A9] = [A10] + 1

par
If Year(Cells(9, 2)) <> Year(Cells(10, 2)) Then [A9] = 1 Else [A9] = [A10] + 1

Cdlt
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
17 mai 2016 à 08:59
génial cool sa fonctionne, bravo pour ta maitrise en VBA
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
17 mai 2016 à 09:50
Comme tu as mon projet en main, lol
et que tu est super doué, j'aimerais te demander comment on fait pour afficher un résultat dans une combobox après un calcul. Et que cela s'affiche sur l'userform comme tu as fait pour le prix, mais sur une nouvelle comboBox11 par exemple.

J'ai tester plein de truc mais sa veux pas s'afficher, pourtant je me suis inspiré de ton principe avec la combobox1.

en gros j'aimerais que l'on fasse l'addition du résultat que donne la (textbox10+textbox11)-textbox2 qui me donnerais le restant de la somme à devoir mais qu'elle apparaisse comme sur la textbox11 qu'il faut créer ?

accepte tu de m'aider?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
18 mai 2016 à 08:30
Bonjour
J'ai recombiné les "sub Textbox10_KeyPress" avec "sub Textbox10_change" pour n'en faire qu'une "sub Textbox10_change "
Si vous rajouter une textbox(et non pas une combobox) pour moi cela devenait la TextBox12 et appliquez la formule qui récupère les valeurs des cellules à inclure dans la formule de la ligne 8, ce qui fait
TextBox12 = [G8] + [F8] - [I8] (rectifiez si je me trompe de cellule)

Private Sub Textbox10_change() 'KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Cette procèdure permet si la valeur n'est pas comprise entre 0 et 9 et qu'elle n'est pas un backspace
    'If InStr(1, "0123456789", Chr(KeyAscii)) = 0 And KeyAscii <> 8 Then
       'MsgBox "Caractère non autorisé"
       'KeyAscii = 0
    'End If
    [G8] = TextBox10
    TextBox12 = [G8] + [F8] - [I8]
    [J8] = TextBox2.Value
'End Sub

'Private Sub Textbox10_change()
' cette  procédure permet de renseigner  la cellule G8 en fonction de la donnée
' écrite dans le formulaire à la parti Kilomètres
    Sheets("BASE de DONNEE").Select
    [G8] = TextBox10.Value
    If [G8] < 10 Then
        [H8] = 0
    ElseIf [G8] <= 20 Then
        [H8] = [G8] * 0.18
    ElseIf [G8] <= 40 Then
        [H8] = [G8] * 0.2
    ElseIf [G8] <= 80 Then
        [H8] = [G8] * 0.22
    ElseIf [G8] > 80 Then
        [H8] = [G8] * 0.3
    End If
End Sub

Cdlt
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
18 mai 2016 à 10:47
bonjour frenchie83 merci pour ton aide

alors c'est pas tout à fait cela, sa me déconcerte le VBA j'arrive pas à saisir le principe.

En gros comment afficher le résultat dans une textbox12 par exemple la valeur H8 qui à était calculer avec les conditions if? sur la textbox10

je comprend pas comment une textbox affiche un résultat quelconque quand on fait un calcul. Sa semble simple mais cela ne fonctionne pas avec moi ? lol

le résultat de la textbox10, comment la récupérer pour qu'elle s'affiche sur un textbox afin de voir si le calcul est correcte....

en gros voilà la question
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
18 mai 2016 à 11:10
RE
Si j'ai bien compris.
Ajoutez en dernière ligne de Private Sub Textbox10_change()
TextBox12 = [H8]

Cdlt
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
18 mai 2016 à 11:23
pour afficher un resultat sur un autre textbox il faut être sur un textbox qui est le dernier et on affiche a la fin d'une procédure comme tu as fait?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338 > coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016
18 mai 2016 à 11:36
on affiche a la fin d'une procédure comme tu as fait Je mets le résultat à la fin, parce qu'il faut bien attendre que les calculs soient faits.
Explication dans l'ordre chronologique:
La textbox10 est recopiée dans la cellule G8
H8 est le résultat de G8 multiplié par un coefficient.
Comme il nous faut récupérer ce résultat, on le chercher directement dans H8 que l'on met dans la textbox12.
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
18 mai 2016 à 11:57
cela deviens nettement plus clair, vous avez raison.. merci du coup de main c'est du grand art...
encore un petit truc ou astuce j'essais de ranger mes textbox et combobox pour qu'avec la tabulation ne parte pas de haut au milieu à gauche à droite...
vous faites comment, pour que cela soit chronologique pour l'encodage par exemple
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
18 mai 2016 à 12:50
Dans la feuille VBA
1- sélectionnez "Formulaire"
2- Affichage/Ordre tabulation
3- déplacez avec l'aide des boutons "Monter "ou "Descendre" les contrôles dans l'ordre voulu.
0