Comment programmer en vba un enregistrement de données

Fermé
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 - 13 mai 2016 à 18:26
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 - 16 mai 2016 à 21:07
Bonjour,

Voilà j'essais tant bien que mal à programmer en vba.
J'ai une feuille appelé Base de donné afin de pouvoir y inscrire au fur et à mesure mes données avec un userform...
alors quand je rentre des données pas de soucis à priori...

Premier soucis , je sais pas pourquoi lors de l'enregistrement les lignes sont plus grosses à chaques saisis, mystère pour mon niveau.

ma question là voilà...

je voudrais pendant l'enregistrement des données sur la colonne prix kms en G8, quand on encode dans l'userform kilomètres, que le nombre de km le l'userform s'affiche sur la colonne G8; mais quand mêmes temps sur la colonne H8 il me calcul comme suite, sous une condition SI. Que je n'arrive pas à créer, pas doué...
En utlisant la valeur du textbox10 comme suite:

textbox10<10 =0
textbox10<=20 on fait le calcul valeur du textbox10*0.18
textbox10<=40 on fait le calcul valeur du textbox10*0.20
textbox10<=80 on fait le calcul valeur du textbox10*0.22
textbox10>80 on fait le calcul valeur du textbox10*0.30

et que ce calcul s'affiche aprés enregistrement dans la colonne H8

voici mon ébauche de projet

y à t'il un talent qui pourrais m'expliquer la marche à suivre ?

https://www.cjoint.com/c/FEnqoHzC2D0
A voir également:

8 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
14 mai 2016 à 07:36
Bonjour
Premier soucis , je sais pas pourquoi lors de l'enregistrement les lignes sont plus grosses à chaques saisis. Normal on reprend la taille de la ligne au-dessus.
Correction:
Private Sub CommandButton1_Click()
    Sheets("BASE de DONNEE").Select
    ' insertion de la  ligne
    Rows(8).Insert
    Rows(8).EntireRow.RowHeight = 15
    ' remise à zéro du formulaire
    Unload Formulaire ' ferme  le formulaire
End Sub

Et pour l'autre question
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
    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
14 mai 2016 à 15:45
merci frenchie83

j'était pas loin mais mal saisi les données avec le [G8], sa marche nickel, merci de ton aide....
j'ai une autre question, je bloque sur comment je pourrais incrémenter le chiffre 1 sur la feuille Base de donnée en [A8] , en gros à chaque ligne je souhaiterais qu'il m'indique 1 puis 2, 3 ect à chaque ligne saisi.
si tu pouvais m'aider
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
14 mai 2016 à 16:17
En ajoutant 1 a la valeur de A9, comme ceci
Private Sub CommandButton1_Click()
    Sheets("BASE de DONNEE").Select
    ' insertion de la  ligne
    Rows("8:8").Insert shift:=xlDown
    [A8] = [A9] + 1
    ' remise à zéro du formulaire
    Unload Formulaire ' ferme  le formulaire
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
14 mai 2016 à 17:21
sa marche le hic, si tu veux c'est que la première ligne qui est enregistrer, n'est pas de numéro d'attribuer, cela incrémente le chiffre 1 sur la ligne suivante etc...
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337 > coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016
14 mai 2016 à 17:46
Pardon
[A9] = [A10] + 1
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
14 mai 2016 à 18:04
Génial marche du tonnerre.

vais encore t'ennuyer, décidément.
je maîtrise pas le vba fait plus de calcul sur excel avec fonction simple je m'en sort mais là....

Ma question est celle là, comment tu fait pour chercher dans une cellule des valeurs et en faire une condition.
j'ai une feuille appeler Paramètres sous excel

en D1 j'ai Thèmes
en D2 jusqu'à aller D20 j'ai de Thèmes

en E1 j'ai Heure
en E2 jusqu'à E20 des heures du type 00:00

en F1 j'ai Lieu
en F2 jusqu'à F20 c'est soit deux choix maison ou extérieur

en G1 J'ai Prix
en G2 jusqu'à G2 un prix correspondant

Ma question est celle-ci....

je voudrais en VBA que la condition selon ce que indique mon textbox en l'occurence celle de l'heure et combobox lieu et combobox theme dans mon userform puisse faire la correspondance entre chaque ligne si elle la trouve.

Je m'explique si les deux combobox ou le textbox m'indique la même valeur correspondant à la ligne 2 sur D2+E2+F2 cela donnera G2 et ainsi de suite pour les autres ligne.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
14 mai 2016 à 19:58
Si j'ai bien compris
Dans le "Formulaire", on saisit l'heure, le thème et le lieu et si les 3 réunis correspondent à une des lignes du tableau de la feuille "PARAMETRES" alors dans la textbox5 "ACCOMPTE" on affiche le prix trouvé en colonne G de la feuille "PARAMETRES"
https://www.cjoint.com/c/FEorYMs8PLw
Pour que cela fonctionne, sur les 3 paramètres à saisir dans le formulaire, il faut saisir le "LIEU" en dernier (c'est lui qui déclenche la recherche).
Autre chose: dans le tableau de la feuille "PARAMETRES", les heures sont entrées au format texte et non pas au format heure (les heures s'affichent sur la partie gauche de la colonne).
Cdlt
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
16 mai 2016 à 17:40
bonjour, Frenchie83

j'ai essayer de mettre un autre textbox pour afficher le prix selon les parametres comme tu l'avais fait sur ton exemple,
mais je n'arrive pas à se que cela affiche le prix comme toi?
qu'ai je donc oublier dans ton code?

je voudrais que le prix s'affiche sur le textbox11

mais il est important que la recherche basé sur la feuille paramètres soit respecté...
je veux dire qu'il peu avoir plusieurs fois le même thème, à des heures différente ou lieu différent avec un prix lui aussi différent.
Il ne peu avoir un thème particulier pour chaque possibilité....

peu tu m'éclairer ? merci

http://www.cjoint.com/c/FEqpKE1PAy0
0

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

Posez votre question
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
14 mai 2016 à 20:40
c'est presque cela, non en faite quand les 3 paramètres sont réunis,

Textbox5
Combobox2
Combobox1

je sais pas ou le mettre, mais si les 3 conditions correspond à ce qu'il y a dans la feuille des paramètres en D E F cela affichera le prix qui correspond à G

quand je vais enregistrement la saisi le but est que le tarif s'affiche dans la feuille Base de Donnée sur la cellule en F8 ou il y les prix.

on touche pas au Paramètres c'est les prix selon les heures.

Le but n'était pas de remplir l'acompte qui servira à autres chose plus tard, le problème en VBA j'arrive pas à comprendre le principe des fonctions comme sur une programmation excel.

se qui me complique le problème, j'ai trouvé plus agréable de passer par VBA plus ergonomique....mais je coince dans plein de domaine.... navré
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
15 mai 2016 à 05:29
Bonjour
Le prix se met dans la colonne J
https://www.cjoint.com/c/FEpdCZHJiMw
Cdlt
0
coupidon Messages postés 98 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 23 novembre 2016 1
15 mai 2016 à 15:15
Merci génial, ce code pour la fermeture...
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
16 mai 2016 à 19:46
Bonjour
C'est la Combobox1 qui déclenche la recherche du prix
Private Sub ComboBox1_Change()
' cette  procédure permet de renseigner  la cellule D8 en fonction de la donnée
' écrite dans le formulaire à la parti Lieu
    Sheets("BASE de DONNEE").Select
    [D8] = ComboBox1
    Call RechercherPrix
    TextBox11 = Prix
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
16 mai 2016 à 21:07
Ah d'accord je l'avais mis sur le textbox11, ce qui ne permet pas de déclencher la recherche, génial... merci Frenchie
0