Hello Sergio
Une histoire de syntaxe...
A la base les conditions se gèrent comme ça :
1 2 3 4 5 6 7
| If toto = "léo" Then
tonton = "léon" ' instructions
ElseIf tata = "irma"
tonton = "gaston" ' instructions
Else
tonton = "personne" ' instructions
End If |
Dans le cas particulier où tu n'as qu'une seule condition à vérifier puis une seule instruction (une ligne) à passer, tu peux réduire la chose à cela :
If toto = "léo" Then tonton = "léon"
Pour le dire à l'envers : si tu passes une instruction juste après le "Then", sur la même ligne, bah ce qui suivra ne sera plus traité dans le bloc "If" !...
Le couac est donc dans ta ligne qui dit :
If Not Cel11 Is Nothing Then Cells(Cel11.Row + 1, Cel11.Column).Select
(la 7e en partant du bas dans ton bloc de code)
=> Elle n'inclut PAS ce qui suit !
Tu devrais plutôt passer un truc comme ça :
1 2 3 4 5 6 7 8 9
| If Not Cel11 Is Nothing Then
Cells(Cel11.Row + 1, Cel11.Column).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("CATALOGUE.xls").Activate
Sheets("CP ou EM").Select
Range("k" & Range("k" & Rows.Count).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
End if |
Au passage, essaie d'alléger ton code en travaillant sans les "Select" et les "Activate".
C'est un peu troublant à faire au début mais ton code tournera plus vite et tu y gagneras beaucoup en lisibilité...
Bien cordialement,
Benoît
Partager