[VBA] Ajouter des infos depuis un userform

Fermé
L01C Messages postés 322 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 17 mai 2016 - Modifié par L01C le 30/04/2012 à 09:51
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 2 mai 2012 à 09:32
Bonjour à tous

Dans le cadre de mon stage de deux mois, je dois gérer un parc automobile. J'ai donc pour projet de faire un logiciel VBA mais je dois avouer que la tâche est plutôt ardue. Quoiqu'il en soit, j'ai besoin de votre aide car là je bloque depuis plusieurs (je risque de faire souvent appel à vous ces prochaines semaines vu que j'entre dans la partie hard des macros).
Bref, j'ai un userform pour ajouter un véhicule dans la base de données du parc automobile avec diverses informations comme le carburant, le type de propriété (LLD ou propriétaire),etc. Je souhaite donc que quand je clique sur un bouton de commande "Suivant", les informations aillent se rajouter sur la première ligne vide qu'ils trouvent mais je voudrais que les infos pour un véhicule soit sur la même ligne. Le problème, c'est que la marque et le modèle viennent bien chercher la première cellule vide en 1ère colonne (colonne A par exemple) mais quand j'ajoute le carburant, il ne s'ajoute pas sur la même ligne que le modèle rajouté mais sur les nouvelles cellules vide de la colonne. Je vous donne un exemple:
Renault Megane se met en A35, première cellule vide, mais quand je rajoute le carburant, au lieu de se mettre en B35, il va en B36. Du coup ça décale. Voici les formules que j'ai écrit:

Private Sub CommandButton1_Click()

With Sheets("parc auto")
.Range("C65536").End(xlUp).Offset(1, 0).Value = TextBox1.Value
End With
With Sheets("parc auto")
.Range("E65536").End(xlUp).Offset(1, 0).Value = ComboBox2.Value
End With

Ajoutvehic.Hide

Ajoutvehic2.Show

End Sub



Je vous remercie par avance de votre aide et bonne journée.
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
30 avril 2012 à 10:29
Bonjour

With Sheets("parc auto")
     ligvide = .Range("A65536").End(xlUp).Row + 1
     .Cells(ligvide, "C") = TextBox1.Value
     .Cells(ligvide, "E") = ComboBox2.Value
End With

0
L01C Messages postés 322 Date d'inscription lundi 30 avril 2012 Statut Membre Dernière intervention 17 mai 2016 44
2 mai 2012 à 08:29
Merci de ton aide et désolé de répondre aussi tard. Quand je remplace ma macro par la tienne, ça ne se met pas à la dernière cellule mais les valeurs rentrées viennent remplacer les titres du tableau de la base de données qui sont la ligne 2, en fait.
Si vous voulez, je peux envoyer le logiciel actuel mais va falloir se munir d'une machette car c'est encore une vraie jungle.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 mai 2012 à 09:32
Désolé mais le code que je t'ai passé fonctionne. C'est d'ailleurs un grand classique archi-connu....
Au passage, les points devant les cellules ne sont pas là pour faire joli.
0