Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

juju12

XLDnaute Nouveau
Re : problème excel macro VBA Userform

Bonjour,

Merci pour vos réponses déjà
Cependant cela ne fonctionne pas....cela insère une ligne mais reprend pas la mise en forme de mon tableau...
 

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:

juju12

XLDnaute Nouveau
Re : problème excel macro VBA Userform

Merci !

Cela reprend la mise en forme de l'en tête du tableau et j'aimerai que ca reprenne la mise en forme de ma première ligne du tableau et cela ne fonctionne pas
 

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:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…