Excel+vba code casse tete

Résolu/Fermé
thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008 - 11 févr. 2008 à 10:17
thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008 - 21 févr. 2008 à 16:38
Bonjour,

j'ai un fichier excel contenant un grand nombre de lignes. chaque ligne contient un nom, prénom et salaire

dans ce fichier j'ai créer un programme vba. quand je le lance un formulaire apparait où je recherche une personne. une fois la personne sélectionnée, je valide et un deuxième formulaire ("liste") apparait avec le détail de la personne (adresse, tel,....).

dans ce formulaire j'ai un bouton checkbox que je n'arrive pas à codifier. le checkbox se nomme "ajouter". je souhaiterais cocher "ajouter" et quand je valide le formulaire, le nom prénom et salaire de la personne soit copier sur une autre feuille Excel.

si je recommence l'operation pour une autre personne, que je coche et valide, que son nom et prénom + saliare soit mis à la suite du précédent.

avez vous une idée

merci d'avance

bonne journée
A voir également:

2 réponses

selon moi essaye d'enregistrer le nom dans une variable
ensuite fais un test dans ta base de donnée sur la colonne avec tous les noms
si le contenu de la cellule testée correspond au nom
la fonction "activecell.row" te permet te récuperer le numéro de la ligne dans une variable nommée par exemple v1
ensuite avec tu crées une autre variable v2 par exemple
le code " v2 = Range("A" & v1)" enregistre dans la variable v2
le contenu de la cellule située dans la colonne A à la ligne que tu as récupérée
de cette façon tu peux récupérer toutes les données dont tu as besoin.

pour les restituer
choisis une feuille
ensuite il faut chercher la dernière ligne remplie avec la fonction "selection.end(xldown)"
tu crées ensuite une autre variable v3 qui renvoie la ligne à laquelle tu insers tes informations :
avec le code "v3 = selection.end(xldown) + 1"

enfin " Range("A" & v3) = v2 " écrit dans la case située dans la colonne A à la premièe ligne vide la donnée récupérée dans la variable v2
ainsi tu pourras récupérer les noms prénoms et salaires pour les copier où tu veux les uns à la suite des autres.

j'esrpère avoir bien compris ton problème et que ma réponse t'aidera.
0
thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008
20 févr. 2008 à 14:54
merci pour ta réponse j'apprécie ton aide.

cependant j ai procédé d'une autre facon.

en fait dans le formulaire ou il y a les information j'ai ajouté un commandouton qui lorsque je l'active cela ouve un formulaire qui reprend le nom prénom et salaire de la personne.

tout marche mais un seul problème perdure. c'est que ca ne prend pas automatique ment le nom prénom et salaire de la personne dans le deuxième formulaire, je suis obligé de les entrer manuellement. aprés quand je valide cela fait apparaitre l information sur une autre feuille comme désiré.

si tu as une idéé cela pourrait me sauver la vie ;)

merci beaucoup

bonne journée
0
matteco Messages postés 17 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 16 décembre 2008 > thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008
21 févr. 2008 à 14:46
si ton formulaire est une "userform"

dans la procédure initialize de cette userform
tu peux reprendre des données et les afficher
il te suffit de dire où reprendre cette donnée (cellule ou variable)
0
thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008 > matteco Messages postés 17 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 16 décembre 2008
21 févr. 2008 à 14:49
merci beaucoup j'ai réussi a faire marcher tout ca.

saurais tu par hasard a l'aide d un code comment ouvrir un autre fichier excel et aller dans un onglet précis ?

merci
0
matteco Messages postés 17 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 16 décembre 2008 > thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008
21 févr. 2008 à 15:39
pour ouvrir tout le temps le meme fichier :

Workbooks.Open Filename:="C:\*.doc"
sheets("*").select


tu peux définir le nom du dossier, le nom du classeur, le nom de l'onglet par des variables :

par exemple ouvrir l'onglet "bonjour" dans le classeur "tata" dans le dossier "toto"

variable1 = toto

variable2 = tata

varaible3 = bonjour

Workbooks.Open Filename:="C:\" & variable1 & "\" & variable2 & ".xls"
sheets(variable3).select

de cette façon tu peux ouvrir le fichier correspondant à des données précises
0
thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008 > matteco Messages postés 17 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 16 décembre 2008
21 févr. 2008 à 16:14
merci parfait ca marche

j ai une dernière question. voici un code qui apparait dans un userform composé d'un combobox.


Private Sub txtIni_Click()
Sheets(txtIni.Value).Activate
End Sub


Private Sub txtIni_DropButtonClick()
txtIni.Clear
For Each vfeuille In ActiveWorkbook.Sheets
txtIni.AddItem vfeuille.Name
Next
End Sub

il me permet de charger dans la combobox les onglets de la feuille excel.

en fait je souhaiterais qu'il charge le nom des onglets d'un autre fichier excel qui s'ouvrirait en même temps.

c'est pour cela que j ai posé a la base cette question mais je me rends compte que c est plus compliqué que ca.

as tu une idée ?

merci
0
thierrymalagnou Messages postés 49 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 25 février 2008
21 févr. 2008 à 16:38
ok
0