Excel - 2 Listes en 1
Résolu/Fermé
A voir également:
- Excel - 2 Listes en 1
- Liste déroulante excel - Guide
- Mise en forme conditionnelle excel - Guide
- Excel liste déroulante en cascade - Guide
- Si et excel - Guide
- Word numéro de page 1/2 - Guide
5 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
5 sept. 2011 à 10:45
5 sept. 2011 à 10:45
Bonjour,
Si liste2 comprend toutes les bases de liste1 ça simplifie le programme.
Est-ce le cas ?
eric
Si liste2 comprend toutes les bases de liste1 ça simplifie le programme.
Est-ce le cas ?
eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
Modifié par eriiic le 5/09/2011 à 13:23
Modifié par eriiic le 5/09/2011 à 13:23
Re,
essaie sur une liste plus grande :
http://www.cijoint.fr/cjlink.php?file=cj201109/cijzMHC2jY.xls
eric
edit : je viens seulement de lire ton commentaire de 11:05 donc ma proposition ne va pas. Trop tard.
Je suis absent cette am, si qcq'un veut reprendre...
essaie sur une liste plus grande :
http://www.cijoint.fr/cjlink.php?file=cj201109/cijzMHC2jY.xls
eric
edit : je viens seulement de lire ton commentaire de 11:05 donc ma proposition ne va pas. Trop tard.
Je suis absent cette am, si qcq'un veut reprendre...
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
6 sept. 2011 à 07:13
6 sept. 2011 à 07:13
Bonjour,
Liste2 est supposée triée.
A tester :
http://www.cijoint.fr/cjlink.php?file=cj201109/cijSCtOK1t.xls
eric
Liste2 est supposée triée.
A tester :
http://www.cijoint.fr/cjlink.php?file=cj201109/cijSCtOK1t.xls
eric
Bcp de boulot, je testerai aujourd'hui ou plus tard et essaierai de comprendre le code. Je vous tiens au jus
bonne journée
bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vraiment superbe !
Par contre je ne comprend pas exactement la manière du procéder,
pourrais-tu me l'expliquer ? Je rappel le code que j'ai adapté à mes feuilles :
Par contre je ne comprend pas exactement la manière du procéder,
pourrais-tu me l'expliquer ? Je rappel le code que j'ai adapté à mes feuilles :
Sub Remplissage_Connecteur() '------------------------- 'Déclaration des variables Dim sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet Dim lig1 As Long, lig2 As Long, lig3 As Long, base As String, c As Range Set sh3 = Worksheets("F_connecteurs") Set sh2 = Worksheets("LIDA") Set sh1 = Worksheets("travail_temporaire") '-------------- 'Initialisation lig2 = 2: lig3 = 5: base = "vide" '---- 'Code For lig1 = 2 To sh1.[A65536].End(xlUp).Row If Left(sh2.Cells(lig2, 1), Len(base)) <> base Then lig3 = lig3 + 1 base = sh1.Cells(lig1, 1) sh3.Cells(lig3, 2) = base End If Set c = sh2.Columns(1).Find(base & "*", LookIn:=xlValues) If c Is Nothing Then lig3 = lig3 + 1 Else lig2 = c.Row While Left(sh2.Cells(lig2, 1), Len(base)) = base sh3.Cells(lig3, 3) = sh2.Cells(lig2, 1) lig2 = lig2 + 1 lig3 = lig3 + 1 Wend End If Next lig1 End Sub
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
6 sept. 2011 à 18:42
6 sept. 2011 à 18:42
Re,
N'oublie pas que ça a été fait en 3 coups suite aux compléments que tu apportais au fil du temps, donc la logique de traitement n'est sûrement pas la meilleure puisque j'adaptais le réalisé...
J'appelle 'détail' un élément de liste2. ex basexxx.yyyyy
Commenté au mieux, mais je pense que tu avais compris l'essentiel puisque tu avais adapté à ton classeur
eric
N'oublie pas que ça a été fait en 3 coups suite aux compléments que tu apportais au fil du temps, donc la logique de traitement n'est sûrement pas la meilleure puisque j'adaptais le réalisé...
J'appelle 'détail' un élément de liste2. ex basexxx.yyyyy
'Code ' pour toutes les lignes de 'base' liste1 For lig1 = 2 To sh1.[A65536].End(xlUp).Row ' si c'est une nouvelle base dans liste1 If Left(sh2.Cells(lig2, 1), Len(base)) <> base Then ' sauter des lignes dans la compil lig3 = lig3 + 1 ' mémoriser la base base = sh1.Cells(lig1, 1) ' l'inscrire en colonne B de compil sh3.Cells(lig3, 2) = base End If ' rechercher la 1ère ligne commençant par 'base' dans liste2 (celle avec base.xxxx) Set c = sh2.Columns(1).Find(base & "*", LookIn:=xlValues) If c Is Nothing Then ' s'il n'y en a pas sauter 1 ligne dans compil pour préparer base suivante lig3 = lig3 + 1 Else ' s'il y en a récupérer le n° ligne du détail dans liste2 lig2 = c.Row ' tant que détail liste2 commence par 'base' While Left(sh2.Cells(lig2, 1), Len(base)) = base ' inscrire détail dans compil colonne C sh3.Cells(lig3, 3) = sh2.Cells(lig2, 1) ' passer à la ligne suivante liste2 lig2 = lig2 + 1 ' passer à la ligne suivante compil lig3 = lig3 + 1 ' on boucle sur le while Wend End If ' base suivante liste1 Next lig1 End Sub
Commenté au mieux, mais je pense que tu avais compris l'essentiel puisque tu avais adapté à ton classeur
eric
5 sept. 2011 à 10:51
Dans ce cas, je ne met rien dans la colonne 2 et je passe à la base suivante
5 sept. 2011 à 11:05
La référence reste la liste 1