Poblème avec macro

massimo888 Messages postés 209 Statut Membre -  
massimo888 Messages postés 209 Statut Membre -
Bonjour,
J'ai une macro qui fait des copier coller d'un tableau 1 à un autre (tableau 2) et elle supprime les doublons.
Je suis pas trop calé niveau Macro du coup j'ai fais avec mes moyens.
Je copie le tableau 1 une première fois selon un critère pour sélectionner les lignes voulues et je colle dans le tableau2 , ensuite je recopie encore une fois le tableau 1 j'insère une ligne vide et je colle dedans puis je supprime les doublons comme ça je garde les valeurs en un seul exemplaire.

Voici mon code.

///

Sub Macro()
    Sheets("Feuil2").Activate
    [A65536].End(xlUp).Select    'selection de la derniere céllule non vide
   ' ActiveCell.Offset(1, 0).Select  ' insertion d'une ligne en bas
    Sheets("CS").Activate
    ActiveSheet.ListObjects("Tableau_Lancer_la_requête_à_partir_de_CS").Range. _
    AutoFilter Field:=23, Criteria1:="Cloturé"
    Range("Tableau_Lancer_la_requête_à_partir_de_CS").Select
    Selection.Copy
    Sheets("Feuil2").Select
    ActiveSheet.Paste
    
    
    Sheets("Feuil2").Activate
    [A65536].End(xlUp).Select    'selection de la derniere céllule non vide
    ActiveCell.Offset(1, 0).Select  ' insertion d'une ligne en bas
    Sheets("CS").Activate
    ActiveSheet.ListObjects("Tableau_Lancer_la_requête_à_partir_de_CS").Range. _
    AutoFilter Field:=23, Criteria1:="Cloturé"
    Range("Tableau_Lancer_la_requête_à_partir_de_CS").Select
    Selection.Copy
    Sheets("Feuil2").Select
    ActiveSheet.Paste
    
    
    
     Range("Tableau2").Select
    ActiveSheet.Range("Tableau2").RemoveDuplicates Columns:=Array(1, 2, 3, 4, _
        5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23), Header:=xlYes 

end sub


Merci pour votre aide

A voir également:

7 réponses

Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Avec votre fichier comme exemple ce serait mieux pour comprendre, le mettre sur https://www.cjoint.com/ et poster le lien !
0
massimo888 Messages postés 209 Statut Membre
 
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Merci pour le fichier.
Ce que vous avez réalisé est une chose, mais que voulez-vous avoir comme résultat.... ?
En plus votre code ne si trouve pas...ou est-il ?

0
massimo888 Messages postés 209 Statut Membre
 
Si le code est dedans. Il faut juste activer le contenu ou la modification.
Ce que je veux c'est de copier les données d'un tableau 1 (pas toutes les lignes justes celles qui m'intéressent) en suite les coller dans une feuille apparentant au même classeur sous forme d'un tableau 2.
Le code que j'ai fait copie et colle sous format tableau mais à partir d'un certain nombre de copier-coller il cache toutes les lignes du tableau 1 et en plus il me colle tout le tableau sans faire de tri.
Merci
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Vous avez sur le tableau 1 toutes les données et lorsqu'un enregistrement est clôturée vous voulez le supprimer du tableau 1 et le mettre dans l'archive [Tableau 2] ....est-ce bien cela que vous désirez ?

0
massimo888 Messages postés 209 Statut Membre
 
Oui exactement
0
massimo888 Messages postés 209 Statut Membre
 
J'ai fait ce code mais j'ai quelques erreurs.

Sub Copier()

Range("Tableau1").Select
Selection.Copy
Sheets("Feuil2").Select
[A65536].End(xlUp).Select
' ActiveCell.Offset(-1, 0).Select
Selection.EntireRow.Insert



'boucle 1 supprimer lignes

Dim i As Long
For i = Range("B65536").End(xlUp).Row To 1 Step -1
If Not UCase(Cells(i, 2).Value) Like UCase("*ordinateur*") Then Rows(i).Delete
Next i


'Boucle 2 supprimer doublons

Range("Tableau2").Select
ActiveSheet.Range("Tableau2").RemoveDuplicates Columns:=Array(1, 2, 3, 4, _
5), Header:=xlYes


End Sub



Pour la boucle 1, la macro se bloque une fois qu'elle n'a plus de lignes à supprimer.

Merci pour votre aide
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Merci pour l'information.
Patience la réponse va suivre...!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Votre code ne fonctionne pas avec le fichier exemple mis à disposition qui à 8 colonnes et sur la feuille 2 il recopie sur 16384 colonnes ce qui est faux.
Dans la boucle de suppression vous faite référence à : Like UCase("*ordinateur*") qui n'existe pas dans l'exemple.... !
Je ne sais pas quoi faire !

0
massimo888 Messages postés 209 Statut Membre
 
En fait j'ai changé le fichier. (j'ai fais trop de macros dessus)
Je vous le transmet.

http://cjoint.com/data/0GknQMDgn4E.htm
0
Le Pingou Messages postés 12714 Date d'inscription   Statut Contributeur Dernière intervention   1 467
 
Bonjour,
Mais le nombre de macros n'a pas d'influence sur le fichier.... !
Il suffit que ce soit le bon... !
Dans votre code. La boucle pour supprimer les lignes vous ne devez pas supprimer la ligne des titres. Donc vos données commences en ligne 2 de ce fait remplacer le 1 par 2 dans [For,...] et profitiez de modifier votre code comme suit :

For i = Cells(Rows.Count, 2).End(xlUp).Row To 2 Step -1

Note : [Cells(Rows.Count, 2).] tient compte automatiquement du nombre de ligne maximum de la feuille selon la version Excel utilisée.

0
massimo888 Messages postés 209 Statut Membre
 
Tout d'abord merci pour la réactivité!!
Je vais tester et je vous dis
Merci
0