Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Mettre à jour ma liste sous condition

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Meloman

XLDnaute Occasionnel
Bonjour à tous

j'ai encore un petit soucis et je viens vous demander de l'aide

j'ai une liste en feuille Liste et en colonne A
une Feuille dans Dispo en Colonne B
et une dernière dans paramètre en colonne J

peut on ajouter dans ma Liste colonne A la valeur si le nom est présent à la fois dans dispos et Paramètre

en fait si valeur est présent dans dispos et Paramètre mais non présent dans onglet liste incrémenter le nom manquant dans liste .
et au contraire si dans dispo le nom est pas présent le retiré de la feuille liste

penser vous ce soit possible svp une sorte de bouton de mise à jour pour ma liste merci d'avance
 

Pièces jointes

bonjour JHA je te remercie pour ton aide mais je recherche plus une solution par macro que j'arrive mieux à comprendre pour ce qui est du résulta c'est pas exactement cela car quand j'ajoute un nouveau nom dans dispo rien ne se passe dans liste pour rappel je souhaiterais quand un nouveau nom apparait dans dispo que ce dernier le compare dans paramètre et si il est présent il incrémente à la suite des autre nom dans liste je sais pas si j'ai été plus clair
 
Bonjour à tous,

un essai macro:
VB:
Sub MajListe()
Dim D1, D2, D3, W1 As Worksheet, W2 As Worksheet, W3 As Worksheet
Dim T1, T2, T3, i As Long, Clé
Set D1 = CreateObject("Scripting.Dictionary")
Set D2 = CreateObject("Scripting.Dictionary")
Set D3 = CreateObject("Scripting.Dictionary")
Set W1 = Worksheets("Liste")
Set W2 = Worksheets("Dispo")
Set W3 = Worksheets("Parametre")
T1 = W1.Range("A4:A" & W1.Range("A" & Rows.Count).End(xlUp).Row)
T2 = W2.Range("B3:B" & W2.Range("B" & Rows.Count).End(xlUp).Row)
T3 = W3.Range("J2:J" & W3.Range("J" & Rows.Count).End(xlUp).Row)

For i = LBound(T1) To UBound(T1)
    D1(T1(i, 1)) = ""
Next
For i = LBound(T2) To UBound(T2)
    D2(T2(i, 1)) = ""
Next
For i = LBound(T3) To UBound(T3)
    D3(T3(i, 1)) = ""
Next
For Each Clé In D1.keys
    If Not D2.Exists(Clé) Then D1.Remove (Clé)
Next

For Each Clé In D2.keys
    If D3.Exists(Clé) Then D1(Clé) = ""
Next
W1.Range("A4:A" & W1.Range("A" & Rows.Count).End(xlUp).Row).ClearContents
W1.Range("A4").Resize(D1.Count, 1) = Application.Transpose(D1.keys)
End Sub

A+
 
Bonjour PaF merci c'est presque parfait le problème avec ta macro c'est que sous les nom j'ai d'autre liste qui apparaisse et quand il m’incrémente il prend depuis la dernière valeur peut on limité cela svp merci

Alors d'apres ce que j'ai put voir le probleme se poserais que pour
cette ligne

Code:
W1.Range("A4:A" & W1.Range("A16" & Rows.Count).End(xlUp).Row).ClearContents
 

Pièces jointes

Dernière édition:
re et bonjour Lone-wolf

@ Meloman: joignez le classeur tel qu'il est avant d'exécuter la macro.

je ne vois pas comment on se retrouve avec la ligne d'entête répétée à plusieurs reprises en feuille Liste, alors qu'elle n'est pas 'sélectionnée' dans la macro !

la ligne de code que vous signalez (ligne que vous avez modifié par rapport à la proposition) n'est là que pour effacer les données en colonne A avant de copier la liste mise à jour !!

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
502
  • Question Question
XL 2016 liste
Réponses
10
Affichages
207
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…