VBA- Ajouter des infos depuis un userform

Loic04

XLDnaute Nouveau
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


Sur CCM, on m'a proposé ce code comme solution:

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


Mais dans mon logiciel, ça change la valeur des titres de ma base de données, du coup c'est encore pire.

Je vous remercie par avance de votre aide et bonne journée. Si y'a besoin de joindre mon logiciel pour que vous vous fassiez une idée, je pourrai vous l'envoyer mais armez-vous d'une machette car c'est une véritable jungle :s
 

Loic04

XLDnaute Nouveau
Re : VBA- Ajouter des infos depuis un userform

Ok, j'ai procédé à quelques modifications confidentielles, là ça devrait être bon. Mais c'est une vraie galère car en plus de l'userform ajoutvehic qui plante, y'a aussi l'ajoutvehic2 qui plante car je clique sur suivant, ça me sort argument non facultatif, qq chose comme ça. J'ai l'impression de faire face à une montagne, heureusement que j 'ai pu trouver mes réponses sur le net jusqu'à maintenant.

Merci,
 

Pièces jointes

  • Logiciel GPA-version excel download.xls
    173 KB · Affichages: 91
C

Compte Supprimé 979

Guest
Re : VBA- Ajouter des infos depuis un userform

Bonjour à tous
Salut Loic04 ... dur dur le VBA ;)

Tu trouveras ci-joint ton fichier avec le code modifié

Le problème de ton message erreur, est que tu veux renvoyer une valeur d'un objet que tu sélectionnes
Code:
.Range(Adresse).Value = Me.OptionButton1.Select
Ne peut en aucun cas fonctionner ;)

A+
 

Pièces jointes

  • Loic04_Logiciel GPA-version XLD.xls
    131.5 KB · Affichages: 84
  • Loic04_Logiciel GPA-version XLD.xls
    131.5 KB · Affichages: 78
  • Loic04_Logiciel GPA-version XLD.xls
    131.5 KB · Affichages: 89
Dernière modification par un modérateur:

Loic04

XLDnaute Nouveau
Re : VBA- Ajouter des infos depuis un userform

Très dur en effet, surtout quand on commence à vouloir faire des choses un peu plus complexes que afficher ou cacher un userform. Merci de ton aide, le problème du userform ajoutvehic2 est réglé, je peux faire suivant sans que ça plante, ça m'enlève une épine du pied mais pour le premier problème, ça continu toujours de m'afficher les valeurs en haut:

ça vient remplacer les valeurs situés dans la ligne 2. Donc quand je veux ajouter par exemple une Renault Mégane, ça vientse mettre à la place de véhicule, etc etc:


a - hebergeur d'image - Casimages.com -


Alors que ce que j'aimerais, c'est qu'à chaque ajout, ça vienne se positionner sur la dernière ligne (la première ligne vide):

b - hebergeur d'image - Casimages.com -


Quand ça marchera, je me payerai le luxe de faire une modification du tableau, de l'ajout du fond gris et de la mise en gras des caractères aha.

Encore merci de l'aide et désolé pour la gêne:(
 
C

Compte Supprimé 979

Guest
Re : VBA- Ajouter des infos depuis un userform

Re,

Oups désolé :eek:, je n'ai pas fait attention ou tu allais chercher la dernière ligne vide dans ton code
Il faut remplacer
Code:
LigVide = .Range("A" & Rows.Count).End(xlUp).Row + 1
par
Code:
LigVide = .Range("C" & Rows.Count).End(xlUp).Row + 1

En effet cette instruction, fait comme au clavier :
.End(xlUp) = CTRL+Flèche haut (se positionne sur la dernière ligne remplie d'une colonne en partant de tout en bas)
Et comme on faisait ça sur la colonne "A" qui est vide, la dernière ligne remplie = aucune = 1

Voili, voilà ;)

A+
 

Statistiques des forums

Discussions
312 496
Messages
2 088 974
Membres
103 995
dernier inscrit
Flodk