• Initiateur de la discussion Initiateur de la discussion daniel
  • Date de début Date de début

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 !

D

daniel

Guest
Bonjour le forum !

Je deviens fou :woohoo: avec ma boucle... Voilà :

J'ai deux feuilles

Feuille 1 =NouveauxCodes
Feuille2 = AnciensCodes.

Dans chacune, une colonne (disons A1:A100) comporte des codes. Certains codes sont identiques dans les deux feuilles.

Je n'arrive pas à créer une boucle qui me permettrait d'extraire et de coller dans la feuille 2 (à la suite des anciens codes existants), tous les codes de la feuille 1 qui ne sont pas dans la colonne de la feuille2...

Je ne sais pas si je suis assez clair...mais j'avoue avoir du mal avec les boucles !

Merci pour votre aide

Daniel
 
Bonjour Daniel et le forum,

Une macro qui ajoute à la colonne en feuillle 2 les codes absents par rapport à la liste en feuille 1.

Sub Ajouter()
Dim Lig As Integer, i As Integer
Dim Plage As Range, Table As Range, Cell As Range
Application.ScreenUpdating = False
Set Plage = Sheets('Feuil1').Range('A2:A' & Sheets('Feuil1').Range('A1000').End(xlUp).Row)
For Each Cell In Plage
Set Table = Sheets('Feuil1').Range('A2:A' & Sheets('Feuil2').Range('A1000').End(xlUp).Row)
If Application.CountIf(Table, Cell) = 0 Then
Sheets('Feuil2').Range('A1000').End(xlUp).Offset(1, 0) = Cell
End If
Next Cell
Sheets('Feuil2').Activate
Range('A1').Select
Application.ScreenUpdating = True
End Sub

Cordialement

CBernardT
 
Merci pour ton code...

...mais je n'arrive bien à m'en servir ! Il me copie des codes en doublon, et il en oublie certains. De plus si ma plage de données est trop grande (en fait ma colonne de codes en feuille 2 comporte près de 900 codes), il ne me trouve pas les nouveaux codes mis en feuille1...

Je vais encore essayer !

Daniel
 
Re Daniel,

Je pensais les plages assez courtes, 100 lignes, alors voici la macro modifiée :
Sub Ajouter()
Dim Lig As Integer, i As Integer
Dim Plage As Range, Table As Range, Cell As Range
Application.ScreenUpdating = False
Set Plage = Sheets('Feuil1').Range('A2:A' & Sheets('Feuil1').Range('A65000').End(xlUp).Row)
For Each Cell In Plage
Set Table = Sheets('Feuil1').Range('A2:A' & Sheets('Feuil2').Range('A65000').End(xlUp).Row)
If Application.CountIf(Table, Cell) = 0 Then
Sheets('Feuil2').Range('A65000').End(xlUp).Offset(1, 0) = Cell
End If
Next Cell
Sheets('Feuil2').Activate
Range('A1').Select
Application.ScreenUpdating = True
End Sub

Cordialement

CBernardT
 
Bonsoir,

Désolé, Bernard, mais ta macro ne fonctionne plus sur ma plage de données (j'ai quelque 900 codes !). De plus, si j'insère un code de la feuille 1 dans la liste de codes de la feuille 2, la macro ne le 'détecte' pas et le copie...du coup, j'ai des doublons.

Je vais essayer de creuser...

Merci de ton aide, en tout cas,

Bonne soirée

Daniel

PS pour patrick : comme tu l'auras compris, je cherche à faire ma boucle par macro
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
244
Didierpasdoué
D
Retour