Comment programmer en vba un enregistrement de données

coupidon Messages postés 98 Statut Membre -  
coupidon Messages postés 98 Statut Membre -
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

8 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. coupidon Messages postés 98 Statut Membre 1
       
      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
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. coupidon Messages postés 98 Statut Membre 1
       
      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
      1. Frenchie83 Messages postés 2254 Statut Membre 339 > coupidon Messages postés 98 Statut Membre
         
        Pardon
        [A9] = [A10] + 1
        0
  3. coupidon Messages postés 98 Statut Membre 1
     
    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
  4. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. coupidon Messages postés 98 Statut Membre 1
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. coupidon Messages postés 98 Statut Membre 1
     
    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
  7. coupidon Messages postés 98 Statut Membre 1
     
    Merci génial, ce code pour la fermeture...
    0
  8. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. coupidon Messages postés 98 Statut Membre 1
       
      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