[UserForm] Ajout valeur saisie dans une combobox à la dLigne d'une colonne

Bonjour,

Je souhaite ajouter dans une liste de paramètres les valeurs saisie dans une combobox. je me sers d'un bouton que j'ai appelé "Créer".

Condition 1: Ajouter la valeur saisie dans la première cellule vide de la colonne

Condition 2: J'aimerai que le contenu s'ajoute à la dernière ligne de la colonne qui a pour entête "THEME" (donc faire une recherche sur le contenu de mes entêtes, ce qui me permet d'éviter de modifier tout le code si j'ajoute/supprime une colonne dans ma feuille contenant mes listes)

J'ai fait ce code très scolaire de ma formation de VBA :D :

Private Sub Btn_Creer_Theme_Tache_Click() 'Ajouter une valeure à une Combobox

Dim dLig_Theme As Long 'Sélection de la dernière ligne de la colonne

dLig_Theme = Columns.Cells(1, 1).CurrentRegion.Rows.Count + 1
Cells(dLig_Theme, 1) = Me.Cmb_Theme_Tache.Text

End Sub

J'ajoute bien le contenu à la fin de mon tableau de liste de paramètres le problème c'est que le CurrentRegion n'est pas le bon ciblage et ne répond pas à ma condition 2 :/

P.S.: Je suis preneur de toute solution qui semblerait être plus optimisé que ce que je projette de faire :)

Merci

Bonsoir,

première cellule vide d'une colonne, par exemple la D :
on cherche la dernière cellule non vide à laquelle on ajoute 1, pour se faire afin d'éviter les "bugs" dus à des trous dans la liste de données de la colonne, on va faire la recherche à partir de la dernière cellule de la feuille dont le numéro de ligne correspond à Rows.Count, puis on remonte End(xlUp), on prend le numéro de ligne Row et on ajoute 1

PremsVide = Range("D" & Rows.Count).End(xlUp).Row + 1

Maintenant, si la ligne d'entête se trouve en ligne 3 de votre feuille vous pouvez utiliser Find afin de la trouver, FIND renvoie un objet Range, du coup à la suite de la recherche on peut avec .Column connaitre le numéro de la colonne de cette entête : on définie une variable Range qui va recevoir le résultat de la recherche, on lance la recherche sur une plage définie (ou pas) de la ligne 3 et on indique ce que l'on cherche, on test s'il y a un résultat et on fait ce que l'on a à faire :

Dim Cel As Range
Set Cel = Range("3:3").Find("Thême")
If Cel Is Nothing Then Exit Sub
PremsVide = Cells(Rows.Count, Cel.Column).End(xlUp).Row + 1

A vous d'essayer !

@ bientôt

LouReeD

Merci pour ta réponse. Petit chamboulement dans mon agenda pro, je teste ça dès que je peux :)

Bonne journée

Bonsoir,

je connais ça également les planning chamboulé ! D'ailleurs mes applications restant "en souffrance" le montre !

Bonne continuation @ vous !

@ bientôt

LouReeD

Rechercher des sujets similaires à "userform ajout valeur saisie combobox dligne colonne"