Remplir une cell en fonction du nom de la première lig d'une col

Fermé
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 - 8 nov. 2013 à 12:10
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 - 13 nov. 2013 à 08:41
Bonjour à tous,

Tout d'abord excusez moi pour le titre, j'ai essayé d'être au plus précis.
Je travail sous excel 2007.

J'ai crée un formulaire à l'aide d'un userform dont le but est de remplir une base de donnée dans une autre page.
Les personnes qui utiliseront ce cette base de données apprécierait de pouvoir modifier l'ordre des colonnes. Ignorant cette information au départ, j'avais remplie mes champs de cette manière :
 Cells(no_ligne, 1) = Textbox1 

Ma base de donnée comporte sur sa première ligne, les libellé de mes champs.
Du coup j'aimerais savoir s'il était possible d'utiliser le Textbox1 pour remplir les lignes en fonction du nom des champs.
Un peu comme ça :
 Cells(no_ligne, Colum"Libellé"Ligne1) = Textbox1 

Merci de votre aide !


2 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
8 nov. 2013 à 13:10
Bonjour,

c'est possible mais il faut que tu fasses une boucle avec des variables.

Je prends l'exemple suivant pour que cela soit plus clair, un tableau :
col A : nom
col B : le prénom
col C : date de naissance

Pour savoir dans quelle colonne sont tes libellés :

sub libellés

dim nom, prenom, naissance as variant

col = 1
do while cells(1,col) = ""

if cells(1,col) = "Nom" then
Nom = col
end if

if cells(1,col) = "Prénom" then
Prénom = col
end if

if cells(1,col) = "Date de naissance" then
naissance = col
end if

cells(no_ligne,nom) = textbox1
cells(no_ligne, prenom) = textbox2
cells(no_ligne,naissance) = textbox3

end sub
1
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
8 nov. 2013 à 14:02
tu intègres ce code dans le code de ton userform, avant de remplir tes cellules
mais tu n'es pas obligé d'en faire une macro spécifique.
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
8 nov. 2013 à 14:27
D'accord et si je souhaite l'utiliser sur plusieurs userform, comment dois'je m'y prendre ?
Merci !
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
8 nov. 2013 à 14:51
Alors ce que je te propose c'est que tu créées une macro à part avec les variables déclarées en public.
et dans tes userforms, tu fais appelles à cette marco en mettant :

call macro_libellé
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
8 nov. 2013 à 14:56
D'accord ça marche !
Donc par exemple :
public nom, prenom, naissance as object

Et pour le userform je mets dans la fonction sub userform_initialize la fonction
call macro_libelle
Ou ce serait plutôt dans un autre endroit qu'il faudrait l'appeler ?
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
8 nov. 2013 à 15:05
C'est tout à fait ca, tu as tout compris.
Normalement,cadevrait marcher.
0
Kusco Messages postés 466 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 15 décembre 2014 336
8 nov. 2013 à 14:01
Bonjour,

Cela veut dire qu'il faut que je mette la fonction "sub libellés" en fonction public ou que je déclare mes variable de manière public ou .... comment faire ?


Merci en tous cas pour ce début de réponse qui va énormément m'aider !
0