Rechercher : dans
Par :

Liste de longueur variable sous Excel

Dernière réponse le 7 mai 2007 à 19:55:31 fafeouw, le 2 mai 2007 à 22:14:51 
 Signaler ce message aux modérateurs

Bonjour à tous,

Je travail sous Excel 2003 et je rencontre un problème, étant débutant en VBA je me suis dit que quelqu'un aurait peut être une solution.

J'ai un fichier excel dont deux paramètres sont modifiables par l'utilisateur. Il s'agit de deux listes de personnes occupant des postes différents dans une entreprise.

Pour ce faire l'utilisateur remplit dans la feuille1 les cellules de E14 à E23 pour la liste 1 et de L14 à L23 pour la liste 2. Il clique ensuite sur un bouton pour valider ces 2 listes.

Je souhaite donc faire un code VBA qui me recopie ces 2 listes dans la feuille2 où se trouve l'ensemble des données que j'utilise dans mon fichier . Liste 1 dans la colonne 9 et liste 2 dans la colonne 10, un fois les données copiées tri croissant de ces dernières.

Je veux ensuite utiliser ces données dans 2 ComboBox, le problème c'est que je ne sais pas comment faire pour que les deux ComboBox s'ajuste automatiquement à la longueur des listes.

Je précise que les deux combo sont dans une troisième feuille.

J'ai déjà essyé d'adapter le code de Armojax dans le sujet "Liste déroulante de longueur variable" mais sans succès à ce jour.

Voilà j'espère avoir été assez clair.

Merci par avance pour votre aide.

Meilleures réponses pour « liste de longueur variable sous Excel » dans :
Listes déroulantes simples avec Excel VoirDans votre tableau, vous souhaitez insérer un texte ou une valeur choisi dans une liste (déroulante). vous créez votre liste, ligne aprés ligne, sur votre feuille en cours ou sur une autre feuille du classeur en cours. vous la nommez : INSERTION...
Liste déroulante avec saisie semi automatique pour EXCEL VoirC'est une procédure qui demande un investissement personnel et qui n'est pas nécessairement facile à comprendre et à réaliser dès la première fois. Afin de rendre cette astuce facile à utiliser, nous allons employer les plages et les formules...
Générer des nombres aléatoires efficacement avec rand() VoirGénérer des nombres aléatoires efficacement avec rand() Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes. Prenons un exemple, vous...

1

 fafeouw, le 7 mai 2007 à 19:55:31

C'est bon j'ai réussi à trouver un code qui fonctionne.

Je vous le donne si ça peux aider quelqu'un d'autres

Sheets("Feuil2").Select
Range("I3:I12").Select
Selection.ClearContents
Sheets("Feuil1").Select
Range("E14").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Feuil2").Select
Range("I3").Select
ActiveSheet.Paste
Range("I2").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("I2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Dim DerLig As Long
On Error Resume Next
ActiveWorkbook.Names("Liste1").Delete
On Error GoTo 0
DerLig = Worksheets("Data").Columns(9).End(xlDown).Row
ActiveWorkbook.Names.Add Name:="Liste1", RefersToR1C1:="=Data!R2C9:R" & DerLig & "C9"


Sheets("Feuil2").Select
Range("J3:J12").Select
Selection.ClearContents
Sheets("Feuil1").Select
Range("L14").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Feuil2").Select
Range("J3").Select
ActiveSheet.Paste
Range("J2").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("J2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Dim DerLig2 As Long
On Error Resume Next
ActiveWorkbook.Names("Liste2").Delete
On Error GoTo 0
DerLig2 = Worksheets("Data").Columns(10).End(xlDown).Row
ActiveWorkbook.Names.Add Name:="Liste2", RefersToR1C1:="=Data!R2C10:R" & DerLig2 & "C10"



Avec ce bout de code, les données rentrées par l'utilisateur sont bien copiées dans la feuille 2 puis trié (par ordre croissant) et enfin les deux objets (liste 1 & 2) sont bien renseigné.

Par contre je n'ai pas trouver la solution pour charger à chaque changement Liste1 dans combo 1 (qui ce trouve sur feuille 3) et Liste 2 dans combo 2 (qui ce trouve sur feuille 3 aussi). Si quelqu'un à une solution ça serai sympa de ma la communiquer.

@+

Répondre à fafeouw