XL 2013 Vba formulaire ajout de données dans tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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...
Bonsoir F_Lyaa,
Pas tout compris.
N vous donne où se trouve FlaconNo de la feuille Inventaire.
Cela suppose que FlaconNo se trouve sur la même ligne dans la feuille Données.
Si ce n'est pas le cas alors N est Faux.

Le mieux c'est quand même un petit fichier test.
 
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

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..
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
534
Retour