Bonjour à toutes et à tous,
Je me permets de faire appel à nouveau à vos connaissances.
J'utilise plusieurs Userforms (USF) afin de récolter les informations selon certains cas de figures.
Afin de pouvoir passer les informations d'une USF à une autre, j'ai déclaré certaines variables comme étant PUBLIC au début d'un module.
J'ai un problème avec deux USF qui ne passe pas l'information correctement.
Dans un USF, l'information est collectée par une LISTBOX ,dans l'autre USF, l'information est collectée par un TEXTBOX.
Je mets le code ci-dessous pour la listbox en précisant je fais pratiquement la même chose pour le textbox (Facturant = UserForm5.TextBox26.Value)
Vous remarquerez que j'ai pris la précaution d'écrire le contenu de la variable Facturant afin de pouvoir vérifier. J'ai rajouté cette ligne pour essayer de "déverminer" mon code. La valeur de la variable Facturant est correctement écrite dans la feuille "Transfert".
Afin de faciliter la tâche de l'utilisateur et comme j'utilise un MULTIPAGE, je fais apparaître la valeur dans le TextBox25. Pour être complet, le passage d'une page à l'autre se fait par un CommandButton afin d'être certain que l'utilisateur a rentré les informations nécessaires et la dernière page permet d'écrire les valeurs des données récoltées.
Les données récoltées sont écrites dans un tableau en utilisant le code suivant :
La routine PUBLIC SUB raz met à zéro toutes les variables qui ont été déclarées comme publique, afin d'éviter des problèmes de "pollution" lorsque je retourne dans un USF.
Le problème que je rencontre est le suivant : la variable Facturant change de valeur lorsque j'exécute cette routine. Elle prend une valeur qui était celle de Facturant précédemment.
J'ai déjà mis un Msgbox juste avant d'écrire dans le tableau mais tout est ok.
L'un(e) d'entre vous aurait-il/elle une idée, une piste ou bien a-t-elle rencontré le même problème?
Je pourrais bien sûr écrire les informations sur une feuille puis les transmettre à l'endroit désiré mais j'aimerais bien élevé quelque peu mon niveau en VBA.
Mon niveau dans VBA n'est pas terrible et le code pour écrire dans un tableau a été "pompé" d'un site où un génie et son disciple ont sévis.
Je cherche depuis vendredi après-midi mais sans succès.
J'espère ne pas avoir été trop long et je vous remercie d'avance pour votre aide.
Michel
Excel 2010 - 32 bit
Windows 7 Ultimate - 64 bit
Je me permets de faire appel à nouveau à vos connaissances.
J'utilise plusieurs Userforms (USF) afin de récolter les informations selon certains cas de figures.
Afin de pouvoir passer les informations d'une USF à une autre, j'ai déclaré certaines variables comme étant PUBLIC au début d'un module.
J'ai un problème avec deux USF qui ne passe pas l'information correctement.
Dans un USF, l'information est collectée par une LISTBOX ,dans l'autre USF, l'information est collectée par un TEXTBOX.
Je mets le code ci-dessous pour la listbox en précisant je fais pratiquement la même chose pour le textbox (Facturant = UserForm5.TextBox26.Value)
Code:
Private Sub ListBox1_Click()
Facturant = Userform4.ListBox1.Value
Worksheets("Transfert").Cells(1, 2).Value = Facturant
Userform4.TextBox25.Value = Facturant
MsgBox (Facturant)
End Sub
Vous remarquerez que j'ai pris la précaution d'écrire le contenu de la variable Facturant afin de pouvoir vérifier. J'ai rajouté cette ligne pour essayer de "déverminer" mon code. La valeur de la variable Facturant est correctement écrite dans la feuille "Transfert".
Afin de faciliter la tâche de l'utilisateur et comme j'utilise un MULTIPAGE, je fais apparaître la valeur dans le TextBox25. Pour être complet, le passage d'une page à l'autre se fait par un CommandButton afin d'être certain que l'utilisateur a rentré les informations nécessaires et la dernière page permet d'écrire les valeurs des données récoltées.
Les données récoltées sont écrites dans un tableau en utilisant le code suivant :
Code:
Private Sub CommandButton8_Click()
' Save as PUBLIC
Dim LR As ListRow
Worksheets("INV REC").Select
' toutes les informations obligatoires ont été testées avant
'--------------------------------------------------------
' On remplit le tableau
'--------------------------------------------------------
Range("Tableau1[#Totals]").Select
Set LR = Selection.ListObject.ListRows.Add(alwaysinsert:=True)
LR.Range.Cells(1, 2).Value = Facturant
LR.Range.Cells(1, 3).Value = POsubject
LR.Range.Cells(1, 4).Value = invref
LR.Range.Cells(1, 5).Value = myDate
LR.Range.Cells(1, 6).Value = POref
LR.Range.Cells(1, 7).Value = sanstva£
LR.Range.Cells(1, 8).Value = tva£
LR.Range.Cells(1, 9).Value = avectva£
LR.Range.Cells(1, 10).Value = pourcentage£ * flagtva£
LR.Range.Cells(1, 11).Value = sanstva€
LR.Range.Cells(1, 12).Value = tva€
LR.Range.Cells(1, 13).Value = avectva€
LR.Range.Cells(1, 14).Value = pourcentage€ * flagtva€
LR.Range.Cells(1, 15).Value = sanstvaSEK
LR.Range.Cells(1, 16).Value = tvaSEK
LR.Range.Cells(1, 17).Value = avectvaSEK
LR.Range.Cells(1, 18).Value = pourcentageSEK * flagtvaSEK
LR.Range.Cells(1, 19).Value = 1
LR.Range.Cells(1, 20).Value = datetopay
LR.Range.Cells(1, 21).Value = notes
' On rajoute une numéro d'ordre
LR.Range.Cells(1, 1).Select
ActiveCell.FormulaR1C1 = "=R[-1]C+1"
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
-----------------------------------
'On remet tout à zéro
raz
'----------------------------------
Worksheets("Intro").Select
Range("K9").Select
Unload UserForm5
End Sub
La routine PUBLIC SUB raz met à zéro toutes les variables qui ont été déclarées comme publique, afin d'éviter des problèmes de "pollution" lorsque je retourne dans un USF.
Le problème que je rencontre est le suivant : la variable Facturant change de valeur lorsque j'exécute cette routine. Elle prend une valeur qui était celle de Facturant précédemment.
J'ai déjà mis un Msgbox juste avant d'écrire dans le tableau mais tout est ok.
L'un(e) d'entre vous aurait-il/elle une idée, une piste ou bien a-t-elle rencontré le même problème?
Je pourrais bien sûr écrire les informations sur une feuille puis les transmettre à l'endroit désiré mais j'aimerais bien élevé quelque peu mon niveau en VBA.
Mon niveau dans VBA n'est pas terrible et le code pour écrire dans un tableau a été "pompé" d'un site où un génie et son disciple ont sévis.
Je cherche depuis vendredi après-midi mais sans succès.
J'espère ne pas avoir été trop long et je vous remercie d'avance pour votre aide.
Michel
Excel 2010 - 32 bit
Windows 7 Ultimate - 64 bit