Bouléen ressort faux d'une fonction

Bonjour à tous, je me permets de poster une question par rapport à un problème sous vba

Le but de ma macro est que quand j'ai deux tableau mon but est d'effacer les doublons du tableau 2 et de mettre ce qui n'est pas en double en bas de l'autre tableau le truc c'est que mon programme efface tout le tableau de droite et le réécrit en bas de l'autre tableau
Il doit y avoir un problème avec ma fonction comparateur qui est censé dire true si il y a un doublon.

Un ami m'a dit que mon programme marchait sous python.

Je joins le code de ma fonction et une photo de ma macro

1

Function Comparateur(u As Integer, p As String, n As String, i1 As Integer) As Boolean

 Comparateur = False

 Do While IsEmpty(Cells(u, i1)) <> True

 If p <> n Then

 u = u + 1

 Else Comparateur = True

 Exit Function

 End If

 Loop

 End Function

bonsoir,

C'est assez compliqué pour quelque chose facile, n'est-ce pas ?

Avez vous un fichier examplaire ?

Je fais mes tests sur ce fichier:

10test-va2macro.xlsm (15.43 Ko)

Re,

Il est trop tard et trop compliqué pour moi,

Bonjour BsAlv,

Bonjour Ottema et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum

Ainsi que sur les fonctionnalités (Nouveau Forum au bas de page notamment)

Merci de votre participation

Concernant votre problématique et si j'ai bien compris, voici un code qui devrait faire l'affaire

' Utilisation d'une collection pour éviter les doublons
Sub SuppressionDoublon()
  Dim dLig As Long, Lig As Long
  Dim MaCol As Collection
  Dim sKey As String
  Dim MonTab() As String
  Dim Ind As Long
  '
  Set MaCol = New Collection
  ' Dernière ligne remplie de la colonne A
  dLig = Range("A" & Rows.Count).End(xlUp).Row
  ' Parcourir les lignes
  For Lig = 2 To dLig
    sKey = Range("A" & Lig) & "_" & Range("B" & Lig)
    MaCol.Add sKey, sKey
  Next Lig
  ' Dernière ligne remplie de la colonne D
  dLig = Range("D" & Rows.Count).End(xlUp).Row
  ' Parcourir les lignes, ne permet pas les doublons
  On Error Resume Next
  For Lig = 2 To dLig
    sKey = Range("D" & Lig) & "_" & Range("E" & Lig)
    MaCol.Add sKey, sKey
  Next Lig
  On Error GoTo 0
  ' retour des valeurs
  Dim sTmp As String
  For Ind = 1 To MaCol.Count
    ReDim Preserve MonTab(1, Ind)
    sTmp = Left(MaCol.Item(Ind), InStr(1, MaCol.Item(Ind), "_") - 1)
    MonTab(0, Ind) = sTmp
    sTmp = Mid(MaCol.Item(Ind), InStr(1, MaCol.Item(Ind), "_") + 1)
    MonTab(1, Ind) = sTmp
  Next Ind
  ' Effacer les colonnes D et E
  ' Range("D:E").ClearContents
  ' Inscrire le nouveau tableau en G1 pour exemple et test
  Range("G1").Resize(Ind, 2) = Application.Transpose(MonTab)
End Sub

En revanche dans votre fichier vous avez des espaces à supprimer à la fin de certains termes

A+

Edit modo : propos déplacé... a bon entendeur

Merci beaucoup pour vos réponses. Je vais me présenter dans la partie consacré.

Rechercher des sujets similaires à "bouleen ressort faux fonction"