Bonjour !
Je suis un débutant sur Excel et VBA, dans le cadre d'un stage que j'effectue en ce moment même, j'ai comme objectif de transférer des données rentrées précédemment dans un formulaire vers un tableau Excel.
J'ai travaillé sur un tableau de façon à découvrir le langage, en essayant de réaliser quelques fonctions basiques(ce tableau me servira sûrement d'exemple par la suite, je souhaite donc le faire sans erreurs).
Je n'avais encore jamais programmé en VBA, j'ai des notions de C, donc j'ai déjà une logique pour réaliser certaines choses, mais je n'arrive justement pas encore à tout faire.
Je vous explique mon problème : je souhaite que les informations occupent une ligne par personne, il me faut donc transférer ces mêmes données dans les cellules adéquates. Au début, j'avais pensé créer une variable fixe(je ne connais plus le terme exacte), qui ne bougerait pas à la fermeture du fichier, et qui s'incrémenterait à chaque nouvel adhérent.
Néammoins, j'ai ensuite vu que l'on pouvait trouver la première ligne vide d'un tableau facilement, grâce à
J'ai vérifié grâce à une MsgBox et le résultat est le bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If IsError(Range("A1").End(xlDown).Row) Then 'Si erreur avec A1, alors la NLign = 2 'première ligne vide est 2 Else NLign = Range("A1").End(xlDown).Row + 1 'Sinon première ligne vide = End If 'ligne trouvée +1
C'est là que je bloque : je n'arrive pas à séléctionner correctement via Range la cellule qui prendra la donnée, j'utilise ceci :
Comme vous pouvez le voir, j'ai ma variable "NLign" qui indique le numéro de la ligne prochaine ligne vide de disponible, c'est elle qui doit me servir pour mes coordonnées lors de l'envoie des informations vers le tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 nom = TxtNom Range("A" & NLign).Value = nom prenom = TxtPrenom Range("B" & NLign).Value = TxtPrenom daten = TxtDate Range("C" & NLign).Value = TxtDate
J'imagine que je n'utilise pas la bonne méthode puisque j'obtient le message "La méthode Range de l'objet _Global a échoué" , mais même en en essayant d'autres, ça revient au même(je le fais sûrement mal).
Je précise que je me suis aidé de ce tutoriel pour réaliser mon formulaire.
Si vous avez besoin de plus de code, du fichier ou de plus d'informations, n'hésitez pas à demander car là je bloque vraiment depuis plusieurs jours.
Merci beaucoup, Kamec.
Partager