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 !

bernardrustrel

XLDnaute Occasionnel
Bonjour à tous
je pense qu'il est encore de vous souhaiter une excellente année 2009.

Voici mon soucis sur le ficheir joint je veux effectuer la suppression des doublons sur les deux colonnes.
A l'heure actuelle j'en effectue la suppression sur une colonne, aussi j'aimerai créer un fonction (function et non sub ) qui me permettrait d'effectuer la supression des doublons sur une colonne à partir d'une cellule donnée et qui porrait s'appeler ainsi
SupDoublons (Lig, Col) où Lig et Col sont les coordonnées de la cellule où débutera la dite supression
ex: SupDoublons (3,2) signiefierait suppression des doublons de B3 jusqu'à la dernière cellule de la colonne B.
Voici mon travail:

Sub SupDoublon() 'peux-on transformer en Function SupDoublon (Col, Lig)
'Lig et Col sont les coordonnées "C2"de la première cellule
'où débutera la suppression des doublons de la colonne 3
Dim Col As Long, Lig As Long
Lig = 2
Col = 3

Do
If Cells(Lig, Col) = Cells(Lig + 1, Col) And Not (IsEmpty(Cells(Lig, Col))) Then
Cells(Lig + 1, Col).Delete
Else
Lig = Lig + 1
End If
Loop Until Lig > 65535

End Sub
J'espère avoir été assez clair quant à ma requête, et d'avance vous remercie pour votre aide.
 
Re : Doublons

Bonjour

Ci dessous la macro modifiée en "fonction".
Code:
Function supprimerDoublons(Cellule_depart As Range)
'Application.Volatile ' voir aide VBA
Dim Col As Long, Lig As Long
Lig = Cellule_depart.Row
Col = Cellule_depart.Column
Do
If Cells(Lig, Col) = Cells(Lig + 1, Col) And Not (IsEmpty(Cells(Lig, Col))) Then
Cells(Lig + 1, Col).Delete
Else
Lig = Lig + 1
End If
Loop Until Lig > 65535

supprimerDoublons=1' retour d'une valeur

End Function

A tester en particulier au niveau l'évènement pour lancer la fonction.

JP
 
Dernière édition:
Re : Doublons

Bonjour

Ma réponse correspondait à une fonction personnalisée exploitable dans une feuille excel.

Comme la fonction est appelée par une macro il suffit d'écrire

Function supprimerDoublons(Col As Long,Lig As Long)
'Dim Col As Long, Lig As Long
'Lig = Cellule_depart.Row
'Col = Cellule_depart.Column
supprimerDoublons=0 ' généralement avec une fonction on a une information en retour

appel : a=supprimerDoublons(col:2,Lig:2)


ou sub supprimerDoublons(Col As Long,Lig As Long)
Dans ce cas pas de retour d'information

appel call supprimerDoublons(Col as Long, Lig As long)

A tester

JP
 
- 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

E
  • Question Question
Réponses
0
Affichages
764
ExcelUser21
E
Retour