USERFORM

Bonjour tout le monde

Je suis débutant en VBA et après quelque recherche J'ai réussi a faire fonctionné un code qui me permets de créer une ligne automatiquement sur deux feuilles (Info et Summ) une fois le mois et le produit sélectionné...

Or, les choses se complique pour moi quand j essaie d'utiliser un userform pour saisir les données automatiquement dans la nouvelle ligne qui vient d'être crée

Vola le code qui marche pas pour moi (ci-joint mon fichier)

[code][/Dim lrCD As Long, lrPD As Long

lrCD = Sheets(“Info”).Range(“A” & Rows.Count).End(xlUp).Row

Sheets(“CustomerDetails”).Cells(lrCD + 1, “A”).Value = TextBox1.Text

Sheets(“CustomerDetails”).Cells(lrCD + 1, “B”).Value = TextBox2.Text

Sheets(“CustomerDetails”).Cells(lrCD + 1, “C”).Value = TextBox3.Text

Sheets(“CustomerDetails”).Cells(lrCD + 1, “D”).Value = TextBox4.Text

lrPD = Sheets(“Summ”).Range(“A” & Rows.Count).End(xlUp).Row

Sheets(“ProductDetails”).Cells(lrCD + 1, “A”).Value = TextBox1.Text

Sheets(“ProductDetails”).Cells(lrCD + 1, “B”).Value = TextBox2.Text

Sheets(“ProductDetails”).Cells(lrCD + 1, “C”).Value = TextBox5.Text

Sheets(“ProductDetails”).Cells(lrCD + 1, “D”).Value = TextBox6.Text

End Sub

code]

Merci pour l'aide

12db.xlsm (32.56 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

27db-v1.xlsm (35.18 Ko)

Merci beaucoup gmb pour la reponse

en faite, ton code ca marche a la perfection sauf que je l ai modifé un peu pour qu il réponds exactement a des nouvelles demandes

voila le nouveau code

Private Sub CommandButton1_Click()

Dim Info As Long, Summ As Long

With Sheets("Info")

Lgn = .Range("A4").End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn, 2) = Controls("Textbox2")

.Cells(Lgn, 3) = Controls("Textbox3")

.Cells(Lgn, 4) = Controls("Textbox4")

.Cells(Lgn, 5) = DateDiff("h", .Cells(Lgn, 2), .Cells(Lgn, 3)) / 24

End With

With Sheets("Summ")

Lgn = .Range("A4").End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn, 2) = Controls("Textbox2")

.Cells(Lgn, 3) = Controls("Textbox3")

.Cells(Lgn, 4) = Controls("Textbox4")

End With

Unload Me

End Sub

Merci encore pour l'aide

Bonjour

vba1 a écrit :

sauf que je l ai modifé un peu pour qu il réponds exactement a des nouvelles demandes

voila le nouveau code

Et...il marche ou tu as encore besoin de moi ?

Si tu as besoin, explique et joins ton fichier.

Bye !

Bonjour gmb

le code marche parfaitement merci

En revanche, j ai un autre petit probleme par rapport a la fonction "recherche" dans l'userform

en faite l'idée c est de faire apparaître tout ce qui a été rentré dans la base une fois le sous produit selectionné dans la case recherche ( dans le fichier ci-joint, J'ai utilisé le multipage vu le nombre d'information a traité)...avec la possibilité de modifier les informations déjà rentrer

puisque dans la ligne A il nya pas que le noms des sous produits(il ya aussi le mois et le nom du produits), je ne peux pas utiliser dans la case recherche un Combobox..enfin ce que je pense

ci-joint le fichier

merci encore pour l'aide

9db-v1.xlsm (38.11 Ko)

Suite a mon dernier message

voila le code que j essaie de faire fonctionné mais malheureusement j arrive pas...

Private Sub TextBox5_Change()

Dim lig As Integer

With Sheets("Info") ' feuille ou sont mes infos d'avance

lig = .Columns("A").Find(What:=TextBox5, after:=Range("A4"), Lookat:=xlWhole).Row ' chercher dans la colonne a , mon élément de référence

.Cells(lig, "B") = TextBox1_Change ' va porter les infos sur la bonne ligne

.Cells(lig, "C") = TextBox2_Change

.Cells(lig, "D") = TextBox3_Change

.Cells(lig, "E") = TextBox4_Change

End Sub

Ci-joint le fichier

5db-v1.xlsm (38.17 Ko)

Bonjour

Nouvelle proposition.

Bye !

12db-v2.xlsm (49.46 Ko)

Wow

Merci infiniment gmb pour ton aide...ta proposition réponds exactement a ce que je recherche

j aurai surement besoin de toi pour d'autres petites questions vu mes connaissances limitées en VBA

Je m'arrache les cheveux avec une base de données depuis le debut de mois....

Merci encore gmb

salut jmb c'est encore moi

Je viens d'ajouter une modification sur un code que j'ai déjà mis en place grâce a ton aide pour qu'il traite des nouvelles demandes ..mais ma modification ne réponds pas exactement a ce que je voulais je m'explique:

J ai ajouté une nouvelle feuille nommée Taxe. Sur cette feuille, il ya le mois et le produits. L'idée c est qu'une fois appuyer sur le bouton "transférer"de l'Userform, le nom de sous produit (ex: Produit A) doit apparaître DEUX FOIS consécutifs dans la feuille Taxe sous le mois et le produit qui lui corresponds(Cellule D5 et H5 de la feuille Formulaire de saisie)..la selection d un nouveau sous produits vient s'ajouter au dessous des deux lignes du sous produit selectionné avant ex:

Produit A

Produit A

Produit B

Produit B

Voila le code

Private Sub CommandButton1_Click()

Dim Info As Long, Summ As Long, Taxe As String

With Sheets("Info")

Lgn = .Range("A4").End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn, 2) = Controls("Textbox2")

.Cells(Lgn, 3) = Controls("Textbox3")

.Cells(Lgn, 4) = Controls("Textbox4")

.Cells(Lgn, 5) = Round(DateDiff("h", .Cells(Lgn, 2), .Cells(Lgn, 3)) / 24, 4)

End With

With Sheets("Summ")

Lgn = .Range("A4").End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn, 2) = Controls("Textbox2")

.Cells(Lgn, 3) = Controls("Textbox3")

.Cells(Lgn, 4) = Controls("Textbox4")

End With ' la partie qui marche pas

With Sheets("Taxe")

Lgn = .Range("A7").End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn, 1) = Controls("Textbox1")

End With

Unload Me

End Sub

Ci-joint le fichier

Vraiment merci


Message suite

le fichier Joint

20db-v1.xlsm (87.79 Ko)

Bonjour

vba1 a écrit :

la partie qui marche pas

Essaie cette modification :

With Sheets("Taxe")
 Lgn = .Range("A7").End(xlDown).Row + 1
 .Cells(Lgn, 1) = Controls("Textbox1")
 .Cells(Lgn+1, 1) = Controls("Textbox1")

Bye !

Bonjour

Malheureusement marche toujours pas...j'ai définis des variables pour qu'il cherche le mois d'abord puis le produit dans la feuille Taxe et metre les deux lignes de meme sous-produit au dessous du produit trouvé..mais ca blogue sur la ligne ( Lgn = .Range(SecondAdress).End(xlDown).Row + 1)

voila le code

Private Sub CommandButton1_Click()

Dim x, m as long Info As Long, Summ As Long, Taxe As String

With Sheets("Info")

Lgn = .Range("A4").End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn, 2) = Controls("Textbox2")

.Cells(Lgn, 3) = Controls("Textbox3")

.Cells(Lgn, 4) = Controls("Textbox4")

.Cells(Lgn, 5) = Round(DateDiff("h", .Cells(Lgn, 2), .Cells(Lgn, 3)) / 24, 4)

End With

With Sheets("Summ")

Lgn = .Range("A4").End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn, 2) = Controls("Textbox2")

.Cells(Lgn, 3) = Controls("Textbox3")

.Cells(Lgn, 4) = Controls("Textbox4")

End With

With Taxe = Worksheets("Taxe").Select

x = Range("C1")

m = Range("B1")

With Worksheets("Taxe").Range("A:A")

Set c = .Find(m, LookIn:=xlValues, Lookat:=xlWhole)

If Not c Is Nothing Then

firstaddress = c.Address

End If

Set c = .Find(x, after:=Range(firstaddress), LookIn:=xlValues, Lookat _

:=xlPart)

SecondAddress = c.Address

End With

With Sheets("Taxe")

Lgn = .Range(SecondAdress).End(xlDown).Row + 1

.Cells(Lgn, 1) = Controls("Textbox1")

.Cells(Lgn + 1, 1) = Controls("Textbox1")

End With

le fichier ci joint

Merci beaucoup

6db-v1.xlsm (51.67 Ko)
Rechercher des sujets similaires à "userform"