Poblème avec macro

Fermé
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017 - Modifié par pijaku le 10/07/2014 à 10:28
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017 - 10 juil. 2014 à 16:23
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 12116 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 442
8 juil. 2014 à 21:38
Bonjour,
Avec votre fichier comme exemple ce serait mieux pour comprendre, le mettre sur https://www.cjoint.com/ et poster le lien !
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
9 juil. 2014 à 09:13
0
Le Pingou Messages postés 12116 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 442
9 juil. 2014 à 14:45
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 ?

massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
9 juil. 2014 à 15:33
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 12116 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 442
9 juil. 2014 à 16:26
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 ?

massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
10 juil. 2014 à 08:08
Oui exactement
0
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
Modifié par pijaku le 10/07/2014 à 10:19
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 12116 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 442
10 juil. 2014 à 10:47
Bonjour,
Merci pour l'information.
Patience la réponse va suivre...!

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

Posez votre question
Le Pingou Messages postés 12116 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 442
10 juil. 2014 à 13:07
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 !

massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
10 juil. 2014 à 13:43
En fait j'ai changé le fichier. (j'ai fais trop de macros dessus)
Je vous le transmet.


http://cjoint.com/data/0GknQMDgn4E.htm
Le Pingou Messages postés 12116 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 4 juillet 2024 1 442
10 juil. 2014 à 16:16
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.

massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
10 juil. 2014 à 16:23
Tout d'abord merci pour la réactivité!!
Je vais tester et je vous dis
Merci
0