XL 2016 inserser un nombre de ligne sur commande

abdourhaman

XLDnaute Nouveau
bonjours à tous je suis nouveau sur le forum et nouveau en vba excel je viens à vous pour demander votre aide sur un petit projet.
dans mon programme, je demande à l'utilisateur indique dans textbox1.text le nombre de ligne dont il a besoin et je veux que mon tableau situer sur la deuxième feuille comporte exactement le même nombre de ligne que celui indiquer dans textbox1.text et que tous les autre cellules situer hors de ce tableau soient bloquées
et tout autre suggestion pour l'amélioration de mon travail est la bienvenue
 

Pièces jointes

  • PARETO.xlsm
    108.7 KB · Affichages: 27

Staple1600

XLDnaute Barbatruc
Bonjour le fil, abdourhaman

Si j'ai bien compris la question, voici ma proposition
(code VBA à mettre à place de celui qui est déjà dans l'userform)
VB:
'SAISIE DES DONNEES
Private Sub CommandButton1_Click()
Dim lOBj As ListObject, NBLigne As Long, TOTALigne As Long
Set lOBj = Sheets("Données de maintenance").ListObjects(1)
NBLigne = TextBox1
TOTALigne = lOBj.Range.Rows.Count - 1
lOBj.Resize lOBj.Range.Resize(TOTALigne + NBLigne, 4)
Unload UserForm1
End Sub

Private Sub UserForm_Initialize()
Dim lOBj As ListObject
Set lOBj = Sheets("Données de maintenance").ListObjects(1)
lOBj.Resize lOBj.Range.Resize(2, 4)
MsgBox "Bienvenu(e) dans cette application excel, utilisant la maintenance de PARRETOT." _
& Chr(13) & "Grace à elle vous aurez les noms des 20% de vos machines causant 80% des pannes de votre système." _
& Chr(13) & Chr(13) & "Veuillez saisir les données pour appliquer ce principe de maintenance"
End Sub
 

abdourhaman

XLDnaute Nouveau
Bonjour le fil, abdourhaman

Si j'ai bien compris la question, voici ma proposition
(code VBA à mettre à place de celui qui est déjà dans l'userform)
VB:
'SAISIE DES DONNEES
Private Sub CommandButton1_Click()
Dim lOBj As ListObject, NBLigne As Long, TOTALigne As Long
Set lOBj = Sheets("Données de maintenance").ListObjects(1)
NBLigne = TextBox1
TOTALigne = lOBj.Range.Rows.Count - 1
lOBj.Resize lOBj.Range.Resize(TOTALigne + NBLigne, 4)
Unload UserForm1
End Sub

Private Sub UserForm_Initialize()
Dim lOBj As ListObject
Set lOBj = Sheets("Données de maintenance").ListObjects(1)
lOBj.Resize lOBj.Range.Resize(2, 4)
MsgBox "Bienvenu(e) dans cette application excel, utilisant la maintenance de PARRETOT." _
& Chr(13) & "Grace à elle vous aurez les noms des 20% de vos machines causant 80% des pannes de votre système." _
& Chr(13) & Chr(13) & "Veuillez saisir les données pour appliquer ce principe de maintenance"
End Sub
merci l'ami
 

Discussions similaires

Réponses
6
Affichages
266