Vba doublons et cellules vides [résolu]

eideal44

XLDnaute Junior
Bonjour,

j'aurais besoin de vos lumières car je n'arrive pas à trouver la solution à mon problème malgré tous mes essais et tous les forums que j'ai lus.

J'ai un fichier avec 2 feuilles : 1 "onglet" commandes ou je colle les commandes extraites du mois et 1 onglet "categorie".

J'aimerais copier/coller sans doublons et sans cellules vides les colonnes E ("UNIVERS" et F("CATEGORIE") en cliquant sur un bouton "MAJ". Pour le copier/coller, j'ai trouvé une soluce mais pour le faire sans doublons et sans blancs, aucune solution ne fonctionne et j'en ai testé pas mal.

Voici le code que j'ai mis :

Option Explicit

Private Sub MAJ_click()

'VIDER LES COLONNES A ET B DE LA FEUILLE CATEGORIE
Worksheets("CATEGORIE").Range("A2:A65000").Clear
Worksheets("CATEGORIE").Range("B2:B65000").Clear

'REMPLIR LA COLONNE UNIVERS PAR LA COLONNE E DE LA FEUILLE COMMANDES
Worksheets("COMMANDES").Range("E2:E65000").Copy Worksheets("CATEGORIE").Range("A2")


'REMPLIR LA COLONNE CATEGORIE PAR LA COLONNE E DE LA FEUILLE COMMANDES
Worksheets("COMMANDES").Range("F2:F65000").Copy Worksheets("CATEGORIE").Range("B2")

'TRIER
Range("A2:B65000").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
True, Orientation:=xlTopToBottom

End Sub


Si vous pouviez m'aider sur cette affaire, ça serait vraiment sympa de votre part.

Dans l'attente de vos retours, n'hésitez pas si vous avez du question.

Merci à vous tous.

Eideal

PS : je vous joint un fichier
 

Pièces jointes

  • VENTE PAR SEMAINE BIS.xls
    226.5 KB · Affichages: 64
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Vba doublons et cellules vides

Bonsoir eideal44,

En l'état, on ne peut qu'imaginer la structure réelle de ton fichier ... et tenter de le reconstituer, pour faire des tests avant de proposer quoi que ce soit.
Il vaudrait mieux déposer un extrait de ton fichier, sans données confidentielles, ce qui permettra à ceux qui répondent, de proposer des pistes adaptées à ta situation.
Les filtres élaborés ou les macros en sont deux, mais quelques formulistes de génie ont déjà proposé des solutions aussi.
 

Papou-net

XLDnaute Barbatruc
Re : Vba doublons et cellules vides

Bonsoir eideal44, Modeste,

Tout-à-fait d'accord avec toi, Modeste.

Mais pour aider notre ami, je pense que la solution consisterait à effectuer le transfert des données au moyen d'une boucle, en testant si les données existent déjà dans la feuille de destination. J'ai donc créé un petit fichier exemple pour lui permettre d'adapter la macro à son fichier.

Cordialement.
 

Pièces jointes

  • eideal44.xls
    27 KB · Affichages: 86

gbinforme

XLDnaute Impliqué
Re : Vba doublons et cellules vides

Bonjour,

Pour supprimer les doublons et simplifier un peu tu peux utiliser ceci :
Code:
Public Sub MAJ_click()
'VIDER LES COLONNES A ET B DE LA FEUILLE CATEGORIE
With Worksheets("CATEGORIE")
    .Cells(2, 1).Resize(.UsedRange.Rows.Count, 2).ClearContents
'REMPLIR LA COLONNE UNIVERS PAR LA COLONNE E DE LA FEUILLE COMMANDES
'REMPLIR LA COLONNE CATEGORIE PAR LA COLONNE E DE LA FEUILLE COMMANDES
    Worksheets("COMMANDES").Range("E2:F65000").Copy .Range("A2")

'TRIER
    .Cells(2, 1).Resize(.UsedRange.Rows.Count, 2).Sort _
        Key1:=.Range("A2"), Order1:=xlAscending, Key2:=.Range("B2"), _
         Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
            True, Orientation:=xlTopToBottom
Dim lig As Long
    For lig = .UsedRange.Rows.Count To 2 Step -1
        If .Cells(lig, 1).Value & .Cells(lig, 2).Value = _
            .Cells(lig - 1, 1).Value & .Cells(lig - 1, 2).Value Then
                .Rows(lig).Delete
        End If
    Next lig
End With
End Sub
Pour les blancs il faudrait préciser sur quelle colonne tu veux les enlever.
 

Modeste

XLDnaute Barbatruc
Re : Vba doublons et cellules vides

re-bonsoir,
salut Papou-net, gbinforme,

Juste pour ajouter une proposition et pour varier les plaisirs, ce code dans un module standard semble fonctionner, chez moi:
VB:
Sub SansDoublons()
Sheets("CATEGORIE").Range("A2:B5000").ClearContents
With Sheets("COMMANDES")
    .Range("E1:E" & .Range("E65000").End(xlUp).Row).AdvancedFilter _
        Action:=xlFilterCopy, CopyToRange:=Sheets("CATEGORIE").Range("A1"), Unique:=True
    .Range("F1:F" & .Range("F65000").End(xlUp).Row).AdvancedFilter _
        Action:=xlFilterCopy, CopyToRange:=Sheets("CATEGORIE").Range("B1"), Unique:=True
End With
End Sub

... Dormez bien :)
 

eideal44

XLDnaute Junior
Re : Vba doublons et cellules vides

bonjour a vous tous.
Tout d'abord un grand merci pour vos nombreux retours, ils fonctionnent mais j'ai trouvé mon bonheur avec :

Option Explicit

Private Sub MAJ_click()

'VIDER LES COLONNES A ET B DE LA FEUILLE CATEGORIE
Worksheets("CATEGORIE").Range("A2:A65000").Clear
Worksheets("CATEGORIE").Range("B2:B65000").Clear

'REMPLIR LA COLONNE UNIVERS PAR LA COLONNE E DE LA FEUILLE COMMANDES
Sheets("COMMANDES").Range("E2:E65000").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("CATEGORIE").Range("A2"), Unique:=True

'REMPLIR LA COLONNE CATEGORIE PAR LA COLONNE E DE LA FEUILLE COMMANDES
Sheets("COMMANDES").Range("F2:F65000").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("CATEGORIE").Range("B2"), Unique:=True

'TRIER
Range("A2:A65000").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=True, Orientation:=xlTopToBottom

Range("B2:B65000").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=True, Orientation:=xlTopToBottom

End Sub

Grace au site de boisgontier mais merci à tous
 

Staple1600

XLDnaute Barbatruc
Re : Vba doublons et cellules vides [résolu]

Bonsoir


Tu peux écrire simplement
'VIDER LES COLONNES A ET B DE LA FEUILLE CATEGORIE
Worksheets("CATEGORIE").Range("A2:B65000").Clear

EDITION: Comme te l'indiquait déjà Modeste ;) plus bas dans le fil ...
 

Discussions similaires

Réponses
7
Affichages
367