VBA replace et range

Hervé

XLDnaute Barbatruc
Bonsoir tout le monde

je cherche a supprimer d'une plage tout les doublons.

je ne voulais pas passer par les traditionnels collection et tableau, j'ai essayé avec des range.

et ca coince :(

dans le code suivant, la ligne en commentaire provoque une erreur 13, et je ne trouve pas la bonne syntaxe.

Sub Bouton1_QuandClic()
Dim plage As Range
Dim c As Range

Set plage = Range('a1').CurrentRegion

For Each c In plage
       
If Len(c) > 0 Then
               
If WorksheetFunction.CountIf(plage, c) > 1 Then
                       
'plage = Replace(plage, c, '')'MARCHE PAS
               
End If
       
End If
Next c

Sheets('feuil2').Range('a1').Resize(plage.Rows.Count, plage.Columns.Count) = plage.Value

End Sub


End Sub

d'avance je vous en remercie.

salut
 

Jacques87

XLDnaute Accro
Bonsoir Hervé

essaie ceci

Private Sub CommandButton1_Click()
Dim plage As Range
Dim c As Range

Set plage = Range('a1').CurrentRegion

For Each c In plage
If Len(c) > 0 Then
If WorksheetFunction.CountIf(plage, c) > 1 Then
c.Value = Replace(c, c.Value, '') 'MARCHE PAS
End If
End If
Next c

Sheets('feuil2').Range('a1').Resize(plage.Rows.Count, plage.Columns.Count) = plage.Value

End Sub

Tiens moi au courant
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Hervé, le Forum,

Normalement, tu devrais t'en sortir en utilisant non pas la fonction Replace() mais la méthode de même nom :
Sub Bouton1_QuandClic()
Dim plage As Range
Dim c As Range

      Set plage = Range('a1').CurrentRegion

      For Each c In plage
            If Len(c) > 0 Then
                  If WorksheetFunction.CountIf(plage, c) > 1 Then
                        plage.Replace c.Value, ''
                  End If
            End If
      Next c

      Sheets('feuil2').Range('a1').Resize(plage.Rows.Count, plage.Columns.Count) = plage.Value
End Sub
Par contre, en utilisant ce code, d'une part tu supprimeras 'toutes' les occurences de valeurs doublons et d'autre part, la suppression sera effective aussi bien dans la feuille d'origine que dans la feuille de destination (feuil2) !

Cordialement,

PS : :sick: :eek: :unsure: ?


EDITION :
Oups.... pardon Jacques, je n'avais pas réactualisé la page avant de poster... Félicitations pour ton 500ième déjà loin visiblement... :)


Message édité par: myDearFriend!, à: 09/02/2006 21:33
 

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz