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

Kusco Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   -  
Kusco Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   -
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 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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   Statut Membre Dernière intervention   336
 
D'accord et si je souhaite l'utiliser sur plusieurs userform, comment dois'je m'y prendre ?
Merci !
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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   Statut Membre Dernière intervention   336
 
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 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
C'est tout à fait ca, tu as tout compris.
Normalement,cadevrait marcher.
0
Kusco Messages postés 466 Date d'inscription   Statut Membre Dernière intervention   336
 
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