GUYANAIS
XLDnaute Occasionnel
Bonjour,
Je n'arrive pas à charger mon "userform1" avec les informations souhaitées dans les "textbox" correspondantes. Dans mon formulaire je dois rapporter des valeurs qui proviennent de différentes feuilles Factures et Result. Pour ouvrir le formulaire je clique sur la cellule A9 de la feuille Result.
Je dois avoir un problème dans le code ci-dessous. Je vous joins le fichier en pièce jointe. Merci d'avance de votre aide.
Je n'arrive pas à charger mon "userform1" avec les informations souhaitées dans les "textbox" correspondantes. Dans mon formulaire je dois rapporter des valeurs qui proviennent de différentes feuilles Factures et Result. Pour ouvrir le formulaire je clique sur la cellule A9 de la feuille Result.
Je dois avoir un problème dans le code ci-dessous. Je vous joins le fichier en pièce jointe. Merci d'avance de votre aide.
Code:
Private Sub UserForm1_Initialize()
TextBox1 = Date
TextBox2 = Sheets(8).Range("G2").Text 'Sheets (8) feuille dans l'ordre de mon classeur
TextBox3.Value = Sheets(2).Range("S6").Value 'Sheets (2) feuille dans l'ordre de mon classeur
TextBox4.Value = Sheets(2).Range("S7").Value
Label18.Caption = ListView1.ListItems.Count 'On affiche le Nb enregistrement
With ListView1
.Gridlines = True 'affiche les lignes
.View = lvwReport 'style de rapport
.FullRowSelect = True 'permet de selectionner une ligne dans la liste
'Nomme lmes entêtes et défini les largeurs
.ColumnHeaders.Add Text:="Noms", Width:=80
.ColumnHeaders.Add Text:="Prénom", Width:=80
.ColumnHeaders.Add Text:="Grade", Width:=50
.ColumnHeaders.Add Text:="Libellé unité", Width:=100
.ColumnHeaders.Add Text:="PCE", Width:=70
.ColumnHeaders.Add Text:="Libellé rubrique", Width:=100
.ColumnHeaders.Add Text:="Montant", Width:=70
'************
End With
Call Actualisation 'on appelle la procédure de remplissage du listview
End Sub
Private Sub Actualisation()
' déclaration des variables
Dim Item As ListItem
Dim DerniereLigne As Integer
Dim i As Integer
Dim Ws As Worksheet
Set Ws = ThisWorkbook.Sheets("Result")
DerniereLigne = Ws.Cells(Rows.Count, 2).End(xlUp).Row 'On cherche la derniére ligne du tableau de la feuil19 de la colonne 2
With Me.ListView1
.ListItems.Clear 'on vide à chaque rechargement
'on boucle toutes les lignes et on charge les informations
For i = 9 To DerniereLigne
'On affiche dans la ListView le contenu des données
.ListItems.Add , , Feuil19.Cells(i, 3)
.ListItems(.ListItems.Count).ListSubItems.Add , , Feuil19.Cells(i, 4)
.ListItems(.ListItems.Count).ListSubItems.Add , , Feuil19.Cells(i, 5)
.ListItems(.ListItems.Count).ListSubItems.Add , , Feuil19.Cells(i, 9)
.ListItems(.ListItems.Count).ListSubItems.Add , , Feuil19.Cells(i, 11)
.ListItems(.ListItems.Count).ListSubItems.Add , , Feuil19.Cells(i, 13)
.ListItems(.ListItems.Count).ListSubItems.Add , , Format(Feuil19.Cells(i, 15), "# ##0 €")
Next i
Me.Label18.Caption = .ListItems.Count 'On affiche le Nb enregistrement
End With
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim Tbl() As Variant
Dim Derlig As Long, Derlig2 As Long
Dim Ws As Worksheet, Ws1 As Worksheet
Application.ScreenUpdating = False
'Control de saisie
If Me.TextBox6 = "" Then MsgBox "Veuillez renseigner ce champ !", vbCritical: Me.TextBox6.SetFocus: Exit Sub
If Me.TextBox2 = "" Then MsgBox "Veuillez renseigner le type d'enregistrement !", vbCritical: Me.TextBox2.SetFocus: Exit Sub
If Me.TextBox5 = "" Then MsgBox "Veuillez saisir un Numero d'enregsitrement !", vbCritical: Me.TextBox5.SetFocus: Exit Sub
If Not IsDate(Me.TextBox1) Then MsgBox "Veuillez saisir une date d'enregistrement !", vbCritical: Me.TextBox1.SetFocus: Exit Sub
If Me.TextBox3 = "" Then MsgBox "Veuillez saisir une date de début !", vbCritical: Me.TextBox3.SetFocus: Exit Sub
If Me.TextBox4 = "" Then MsgBox "Veuillez saisir une date de fin !", vbCritical: Me.TextBox4.SetFocus: Exit Sub
'************
Set Ws = ThisWorkbook.Sheets("Result")
Set Ws1 = ThisWorkbook.Sheets("BDD")
Derlig = Ws.Range("B65536").End(xlUp).Row
Derlig2 = Ws1.Range("E65536").End(xlUp).Row + 1
Tbl = Ws.Range("B9:O" & Derlig).Value
With Ws1
.Range("G" & Derlig2).Resize(UBound(Tbl, 1), UBound(Tbl, 2)).FormulaLocal = Tbl
.Range("A" & Derlig2 & ":A" & Derlig2 + UBound(Tbl, 1) - 1) = Me.TextBox1
.Range("B" & Derlig2 & ":B" & Derlig2 + UBound(Tbl, 1) - 1) = Me.TextBox5
.Range("C" & Derlig2 & ":C" & Derlig2 + UBound(Tbl, 1) - 1) = Me.TextBox6
.Range("D" & Derlig2 & ":D" & Derlig2 + UBound(Tbl, 1) - 1) = Me.TextBox2
.Range("E" & Derlig2 & ":E" & Derlig2 + UBound(Tbl, 1) - 1) = Me.TextBox3
.Range("F" & Derlig2 & ":F" & Derlig2 + UBound(Tbl, 1) - 1) = Me.TextBox4
End With
Set Ws = Nothing
Set Ws1 = Nothing
Application.ScreenUpdating = True
MsgBox "L'enregistrement s'est bien déroulé !", vbInformation
Unload Me
Sheets("Fac_ETAT").Select
Range("B3").Select
End Sub