XL 2010 insertion dans un tableau par inputbox

korobo

XLDnaute Nouveau
Bonjour à tous,

Je voudrais faire une macro excel qui permet d'ajouter une nouvelle ligne à un tableau . Je suis débutant en vba. Dans mon tableau j'ai 4 colonnes en entete: Numero material, Material description, date, et numero inventaire.J'ai essayé de codé quelque chose mais qui ne marche pas très bien . Quand j'insère une nouvelle ligne elle se met en première ligne, puis quand j'en insère une autre la nouvelle écrase la ligne précédemment insérée. J'ai deux feuilles dans mon classeur, sur l'une j'ai mit un bouton qui permet d'appeler un inputbox qui permet l'insertion des données. Quand j'appuie sur le bouton, il y'a un premier inputbox qui apparait et qui me permet de saisir un Numero de material, puis un second un Material description, et enfin un troisieme un numero d'inventaire. Je voudrais pouvoir insérer autant de ligne que je veux, et que à partir du Numero material les lignes soient triés dans l'ordre dans mon tableau. Je ne sais pas si je suis assez explicite. Merci pour votre aide.
 

Pièces jointes

  • Classeur.xlsm
    20.8 KB · Affichages: 47

Caillou

XLDnaute Impliqué
Re : insertion dans un tableau par inputbox

Bonjour,

Tu écris en ligne 2 et ensuite tu insères une ligne : c'est normal que ça écrase les données. Il faut d'abord insérer et ensuite écrire
Moi, j'aurais écris dans cet ordre :
Code:
  'insertion d'un nouveau code sur la feuille mb52 inventaire
  mat = InputBox("Veuillez saisir la reference", Title:="Ajout d'un nouveau code")
  If mat = "" Then Exit Sub
  matdesc = InputBox("Veuillez saisir la description", Title:="Ajout d'un nouveau code")
  If matdesc = "" Then Exit Sub
  numinv = InputBox("Veuillez saisir le numéro d'inventaire", Title:="Ajout d'un nouveau code")
  Call insertion
  Worksheets("MB52 inventaire 2015").Cells(2, 1).Value = mat
  Worksheets("MB52 inventaire 2015").Cells(2, 2).Value = matdesc
  Worksheets("MB52 inventaire 2015").Cells(2, 4).Value = numinv
  Call tri
Caillou
 

korobo

XLDnaute Nouveau
Re : insertion dans un tableau par inputbox

Bonjour Caillou effectivement tu avais raison. Merci de m'avoir répondu. Il reste juste un hic. A chaque fois que j'ajoute un nouveau code(quand je clique sur le bouton le bouton situé sur l'autre feuille) et qui permet d’appeler le inputbox descend d'un cran. Comment remédier à ça?
 

Caillou

XLDnaute Impliqué
Re : insertion dans un tableau par inputbox

Re,

Il faut spécifier le nom des feuilles dans le code, en ajoutant les 2 lignes ci-dessous en gras
Sub nouveaucode()
Dim mat As String
Dim matdesc As String
Dim numinv As Integer

'insertion d'un nouveau code sur la feuille mb52 inventaire
mat = InputBox("Veuillez saisir la reference", Title:="Ajout d'un nouveau code")
If mat = "" Then Exit Sub
matdesc = InputBox("Veuillez saisir la description", Title:="Ajout d'un nouveau code")
If matdesc = "" Then Exit Sub
numinv = InputBox("Veuillez saisir le numéro d'inventaire", Title:="Ajout d'un nouveau code")
Call insertion
Worksheets("MB52 inventaire 2015").Cells(2, 1).Value = mat
Worksheets("MB52 inventaire 2015").Cells(2, 2).Value = matdesc
Worksheets("MB52 inventaire 2015").Cells(2, 4).Value = numinv
Call tri
Sheets("Formulaire").Select
End Sub

'
'insertion d'une nouvelle ligne
'
Sub insertion()
Sheets("MB52 inventaire 2015").Select
Rows("2:2").Select
Selection.Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Font.Bold = False
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 685
Messages
2 090 941
Membres
104 703
dernier inscrit
romla937