VBA replace et range

  • Initiateur de la discussion Initiateur de la discussion Hervé
  • 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 !

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
 
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
 
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: 😱 :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
 
- 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

Discussions similaires

Réponses
4
Affichages
521
Réponses
15
Affichages
784
Retour