XL 2013 Vba formulaire ajout de données dans tableau

F

F_Lyaa

Guest
Bonjour,

Je suis en train de faire une formulaire basique pour 'utilisateurs'
Ma donnée d'entrée est le numéro de flacon contenu dans la colonne A, j'ai fais une liste afin que l'utilisateur puisse choisir le numéro de flacon.
J'ai ensuite 1 donnée : Nom Utilisateur.
J'essaie de faire un code qui suit la logique suivante :
Choix numéro flacon (liste déroulante) -> Remplissage Date utilisation + Nom Utilisateur -> Bouton commande permettant l'ajout de ces informations dans les colonnes et ligne dédiées.

Exemple :
Private Sub CommandButton1_Click()
With Sheets("Données")
N = Application.Match(Val(FlaconNo), Sheets("Inventaire").Range("A2:A1000"), 0)
.Cells(N, 19) = Utilisateurs
End With
End Sub


Quand je teste ce code,
le nom d'utilisateur et la date d’utilisation apparaissent dans la 1ere ligne de la feuille excel, or j'aimerai qu'elles apparaissent dans la ligne ou se trouve le n° de flacon et colonne associée.

Bien que ça paraisse simple pour certains, je sèche complétement..
Merci pour vos retours
 
Solution
Bonjour F_Lyaa,
Pas mal d'erreurs de codage :
1- La virgule est une erreur, à la limite Sheets("Feuil1").Range("A2:A7") avec un point.
mais comme vous avez déclaré With Sheets("Feuil1"), le Sheets("Feuil1") est superflu.
VB:
N = Application.Match(Val(NoFlacon), Sheets("Feuil1"), Range("A2:A7"), O)
à remplacer par :
N = 1 + Application.Match(Val(NoFlacon), .Range("A2:A7"), O)
Le +1 pour obtenir la bonne ligne, car ensuite Cells commence à 1 alors que le tableau commence à 2.
2- La syntaxe est Range("A1") ou cells(1,1), mais dès qu'il y a des guillemets alors ce qu'il y a à l'intérieur est considéré comme une chaine de caractères.
Code:
Range(".Cells(N , 6)") = Utilisateurs
à remplacer par :
.Cells(N, 6) = Utilisateurs

Par contre...
F

F_Lyaa

Guest
Bonjour Sylvanu,

Voici le fichier test pour mon problème de remplissage tableau..
Je pense que le souci est basique mais je bloque dessus...

Merci de vous intéresser à mon problème !
 

Pièces jointes

  • TEST STOCK REMPLISSAGE TABLEAU VIA FORMULAIRE.xlsm
    72.2 KB · Affichages: 21

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour F_Lyaa,
Pas mal d'erreurs de codage :
1- La virgule est une erreur, à la limite Sheets("Feuil1").Range("A2:A7") avec un point.
mais comme vous avez déclaré With Sheets("Feuil1"), le Sheets("Feuil1") est superflu.
VB:
N = Application.Match(Val(NoFlacon), Sheets("Feuil1"), Range("A2:A7"), O)
à remplacer par :
N = 1 + Application.Match(Val(NoFlacon), .Range("A2:A7"), O)
Le +1 pour obtenir la bonne ligne, car ensuite Cells commence à 1 alors que le tableau commence à 2.
2- La syntaxe est Range("A1") ou cells(1,1), mais dès qu'il y a des guillemets alors ce qu'il y a à l'intérieur est considéré comme une chaine de caractères.
Code:
Range(".Cells(N , 6)") = Utilisateurs
à remplacer par :
.Cells(N, 6) = Utilisateurs

Par contre, tel qu'écrit, si vous faites deux Utilisations successives avec le même N°Flacon alors les données précédentes seront écrasées.
 

Pièces jointes

  • TEST STOCK REMPLISSAGE TABLEAU VIA FORMULAIRE.xlsm
    66.3 KB · Affichages: 13
F

F_Lyaa

Guest
J’ai une petite question.
J’ai un formulaire réception qui consiste à ajouter un flacon :
- Macro insertion du nouvelle ligne 2
- le numéro de ce flacon cellule A2 est déterminé par le dernier numéro de flacon qui se trouve en A3+1.
J’aimerai modifier le calcul de ce numéro de flacon en optant pour la méthode suivante : recherche de la valeur Max dans la colonne « Numéro » + 1.
Sauf que je n’arrive pas à trouver comment coder cela..
 

Discussions similaires

Réponses
3
Affichages
201

Statistiques des forums

Discussions
312 198
Messages
2 086 145
Membres
103 130
dernier inscrit
FRCRUNGR