problème excel macro VBA Userform

juju12

XLDnaute Nouveau
Bonjour,



Je rencontre un soucie sur userform notament au moment de valider. Le but est que a chaque fois que j'appuie sur valider l'ensemble des infos viennent se mettre sur une ligne excel => ceci je suis arriver à le faire. cependant la ligne s'insère au dessous du tableau et j'aimerai que la ligne ajouter s'affiche au dessu.

Merci d'avance!

Voici le code:

Private Sub Bt_Valider_Click()

Dim nr As Integer
If Me.UF_Listcli = "" Or Me.UF_Chantier = "" Or Me.UF_Nom = "" Or Me.UF_Prénom = "" Or Me.UF_Adresse = "" Or Me.UF_Cp = "" Or Me.UF_Ville = "" Or Me.UF_Typecli = "" Or Me.UF_Com = "" Or Me.UF_ListDAS = "" Or Me.UF_Listtrav = "" Or Me.UF_MontTTC = "" Or Me.UF_ListtxTVA = "" Or Me.UF_MontTVA = "" Or Me.UF_MontHT = "" Or Me.UF_Date = "" Or Me.UF_Mois = "" Then

MsgBox "Saisir les champs incomplets"

GoTo Ending
Else

nr = ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(Rows.Count, 1).End(xlUp).Row + 1
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 1) = UF_Chantier
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 2) = UF_Nom
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 3) = UF_Prénom
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 4) = UF_Adresse
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 5) = UF_Cp.Value
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 6) = UF_Ville
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 7) = UF_Typecli
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 8) = UF_Com
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 9) = UF_ListDAS
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 10) = UF_Listtrav
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 11) = UF_MontTTC.Value
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 12) = UF_ListtxTVA.Value
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 13) = UF_MontTVA.Value
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 14) = UF_MontHT.Value
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 15) = UF_Date.Value
ThisWorkbook.Sheets("Nouveaux Chantiers").Cells(nr, 16) = UF_Mois

Me.UF_Listcli = ""
Me.UF_Chantier = ""
Me.UF_Nom = ""
Me.UF_Prénom = ""
Me.UF_Adresse = ""
Me.UF_Cp = ""
Me.UF_Ville = ""
Me.UF_Typecli = ""
Me.UF_Com = ""
Me.UF_ListDAS = ""
Me.UF_Listtrav = ""
Me.UF_MontTTC = ""
Me.UF_ListtxTVA = ""
Me.UF_MontTVA = ""
Me.UF_MontHT = ""
Me.UF_Date = ""
Me.UF_Mois = ""


Me.UF_Listcli.SetFocus

End If
Ending:
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : problème excel macro VBA Userform

Bonjour.
Copiez la1ère ligne puis insérez la devant la 2ième, s'il n'y a apparemment pas de vraie mise sous forme de tableau…
et au lieu de lui faire chercher 16 fois la feuille "Nouveaux Chantiers" dans sa collection Sheets, stockez donc d'abord la ligne dans une variable As Range. Ou mieux stockez les valeurs de contrôles dans un petit tableau d'une ligne et 16 colonnes.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : problème excel macro VBA Userform

Je parlais de la première ligne des données de la plage.
Remarque: le procédé n'est pas applicable si la dite plage est mise sous forme de tableau. Du moins en Excel 16. Ce n'est pas grave car il y a alors autre chose à faire: commencer par récupérer le tableau dans une variable As ListObject et par la suite faire un Add sur son ListRows.
 
Dernière édition:

Statistiques des forums

Discussions
312 194
Messages
2 086 064
Membres
103 110
dernier inscrit
Privé