Incompatibilité de type sur macro

flo2002

XLDnaute Impliqué
Re bonjour le forum,

un petit probleme depuis que j'ai adapté une macro:

Option Explicit

Sub IsolePeople()


Application.ScreenUpdating = False
Sheets('AFU').Visible = True
Sheets('Extract_AFU').Visible = True
Sheets('AFU').Select
Sheets('Extract_AFU').Select


Dim Derligne1%, Derligne2%
Dim i1%, i2%
Dim Exist
Derligne1 = Sheets('AFU').Range('B65536').End(xlUp).Row
Derligne2 = Sheets('Extract_AFU').Range('D65536').End(xlUp).Row
For i2 = 1 To Derligne2
For i1 = 1 To Derligne1
If Sheets('Extract_AFU').Range('D' & i2) = Sheets('AFU').Range('B' & i1) Then Exist = 1
GoTo Suivant
End If
Next
If Exist = 1 Then GoTo Suivant
Sheets('AFU').Range('B' & Derligne1 + 1) = Sheets('Extract_AFU').Range('D' & i2)
Derligne1 = Sheets('AFU').Range('B65536').End(xlUp).Row
Suivant:
Exist = 0
Next

Sheets('AFU').Select
Columns('B:B').Select
Range('B300').Activate
Selection.Sort Key1:=Range('B2'), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom


Sheets('Extract_AFU').Visible = False

Sheets('AFU').Visible = False
Application.ScreenUpdating = True
Sheets('Garde').Select


End Sub

En rouge ce qui lui plait pas.

Merci d'avance!

désolé Denis comme tu peux le voir j'ai encore un bug!

Message édité par: flo2002, à: 16/05/2006 10:16
 

flo2002

XLDnaute Impliqué
C'est ce que j'avais mis après correction mais le probleme reste entier.
Cependant, j'ai peut etre une piste.
Je compare des valeurs en dur sur A
mais sur B ce sont des valeurs qui viennent d'un indirect.
Le probleme n'est il pas la?
 

moustache

XLDnaute Nouveau
Bonjour à tous,

juste une question en passant : on m'a toujours dit d'éviter comme la peste les 'goto'. est-ce que le code suivant ne fait pas la même chose de façon un peu plus propre (pardon si je me trompe)
Code:
For i2 = 1 To Derligne2

    For i1 = 1 To Derligne1
        If Sheets('Extract_AFU').Range('D' & i2) = Sheets('AFU').Range('B' & i1) Then
            Exist = 1
            Exit For
        End If
    Next
    
    If Exist = 0 Then
    
        Sheets('AFU').Range('B' & Derligne1 + 1) = Sheets('Extract_AFU').Range('D' & i2)
'        Derligne1 = Sheets('AFU').Range('B65536').End(xlUp).Row
        Derligne1 = Derligne1 + 1
    End If
    
    Exist = 0

Next

Il me semble aussi qu'on peut incrémenter Derligne1 simplement sans prendre de risque ?

merci d'éclairer ma lanterne ! :)
 
D

Denis

Guest
Bonjour moustache, rebonjour le Fil et le Forum
tout à fait exact, il ce code est meilleur.
Mais le fait de mettre exit for, tu sors de la boucle, le suivant te ramène juste avant la next
Cordialement
à+ Denis B)
 
D

Denis

Guest
Bonjour Moustache et le Forum
tu as tout à fait raison
je viens de reprendre le modèle que j'avais fait
tout d'abord, on supprime carrément tout ce qui a trait à 'exist', ça sert à rien
puis ton exit for est tout à fait aproprié.
Je fatigue Lol (il est tard ici (+1h))
à +
Denis
B)
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 984
Membres
103 998
dernier inscrit
Gotteland